diff --git a/BUILD.md b/BUILD.md
index c8d4785d08..db81ecb30d 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -21,8 +21,8 @@
 These dependencies need not be installed manually. They are automatically downloaded on the platforms where they are required.
 - [Bullet Physics Engine](https://github.com/bulletphysics/bullet3/releases):  2.83  
 - [glm](https://glm.g-truc.net/0.9.8/index.html):  0.9.8  
-- [Oculus SDK](https://developer.oculus.com/downloads/):   1.11 (Win32) / 0.5 (Mac)  
-- [OpenVR](https://github.com/ValveSoftware/openvr):   1.11.11 (Win32 only)  
+- [Oculus SDK](https://developer.oculus.com/downloads/):   1.11 (Windows) / 0.5 (Mac)  
+- [OpenVR](https://github.com/ValveSoftware/openvr):   1.11.11 (Windows, Linux)  
 - [Polyvox](http://www.volumesoffun.com/):   0.2.1  
 - [QuaZip](https://sourceforge.net/projects/quazip/files/quazip/):   0.7.3  
 - [SDL2](https://www.libsdl.org/download-2.0.php):   2.0.3  
diff --git a/BUILD_LINUX.md b/BUILD_LINUX.md
index f88e7173c8..f6287846ed 100644
--- a/BUILD_LINUX.md
+++ b/BUILD_LINUX.md
@@ -1,6 +1,6 @@
 # Build Linux
 
-*Last Updated on January 20, 2020*
+*Last Updated on April 11, 2020*
 
 Please read the [general build guide](BUILD.md) for information on dependencies required for all platforms. Only Linux specific instructions are found in this file.
 
diff --git a/BUILD_OSX.md b/BUILD_OSX.md
index b39aadb287..2f9246f6a6 100644
--- a/BUILD_OSX.md
+++ b/BUILD_OSX.md
@@ -1,6 +1,6 @@
 # Build OSX
 
-*Last Updated on April 30, 2019*
+*Last Updated on July 13, 2020*
 
 Please read the [general build guide](BUILD.md) for information on dependencies required for all platforms. Only macOS specific instructions are found in this document.
 
@@ -8,24 +8,29 @@ Please read the [general build guide](BUILD.md) for information on dependencies
 
 [Homebrew](https://brew.sh/) is an excellent package manager for macOS. It makes install of some Vircadia dependencies very simple.
 
-    brew install cmake openssl
+    brew install cmake openssl npm
 
 ### Python 3
 
 Download an install Python 3.6.6 or higher from [here](https://www.python.org/downloads/).  
 Execute the `Update Shell Profile.command` script that is provided with the installer.
 
+### OSX SDK
+
+You will need the OSX SDK for building. The easiest way to get this is to install Xcode from the App Store.
+
 ### OpenSSL
 
 Assuming you've installed OpenSSL using the homebrew instructions above, you'll need to set OPENSSL_ROOT_DIR so CMake can find your installations.  
-For OpenSSL installed via homebrew, set OPENSSL_ROOT_DIR:
+For OpenSSL installed via homebrew, set OPENSSL_ROOT_DIR via
+    `export OPENSSL_ROOT_DIR=/usr/local/opt/openssl`
+    or by appending `-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl` to `cmake`
 
-    export OPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2l
-
-Note that this uses the version from the homebrew formula at the time of this writing, and the version in the path will likely change.
 ### Xcode
 
-If Xcode is your editor of choice, you can ask CMake to generate Xcode project files instead of Unix Makefiles.
+If Xcode is your editor of choice, you can ask CMake to generate Xcode project files instead of Unix Makefiles. You will need to select the Xcode installation in the terminal first if you have not done so already.
+    
+    sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
 
     cmake .. -G Xcode
 
@@ -34,3 +39,7 @@ If `cmake` complains about Python 3 being missing, you may need to update your C
 After running cmake, you will have the make files or Xcode project file necessary to build all of the components. Open the hifi.xcodeproj file, choose ALL_BUILD from the Product > Scheme menu (or target drop down), and click Run.
 
 If the build completes successfully, you will have built targets for all components located in the `build/${target_name}/Debug` directories.
+
+### make
+
+If you build with make rather than Xcode, you can append `-j4`for assigning more threads. The number indicates the number of threads, e.g. 4.
diff --git a/INSTALL.md b/INSTALL.md
index bbaaafd6ef..af398ee6b3 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -9,7 +9,7 @@ This variable is set by the `project(hifi)` command in `CMakeLists.txt` to `C:/P
 
 ### Packaging
 
-To produce an installer, run the `package` target.
+To produce an installer, run the `package` target. However you will want to follow the steps specific to your platform below.
 
 #### Windows
 
@@ -62,7 +62,6 @@ To produce an executable installer on Windows, the following are required:
 1.  Perform a clean cmake from a new terminal.
 1.  Open the `vircadia.sln` solution with elevated (administrator) permissions on Visual Studio and select the **Release** configuration.
 1.  Build the solution.
-1.  Build CMakeTargets->INSTALL
 1.  Build `packaged-server-console-npm-install` (found under **hidden/Server Console**)
 1.  Build `packaged-server-console` (found under **Server Console**)  
     This will add 2 folders to `build\server-console\` -  
diff --git a/assignment-client/src/Agent.cpp b/assignment-client/src/Agent.cpp
index ad68b07bb1..59e53bb2cb 100644
--- a/assignment-client/src/Agent.cpp
+++ b/assignment-client/src/Agent.cpp
@@ -615,6 +615,10 @@ void Agent::setIsAvatar(bool isAvatar) {
             delete _avatarQueryTimer;
             _avatarQueryTimer = nullptr;
 
+            // Clear the skeleton model so that if agent is set to an avatar again the skeleton model is (re)loaded.
+            auto scriptedAvatar = DependencyManager::get<ScriptableAvatar>();
+            scriptedAvatar->setSkeletonModelURL(QUrl());
+
             // The avatar mixer never times out a connection (e.g., based on identity or data packets)
             // but rather keeps avatars in its list as long as "connected". As a result, clients timeout
             // when we stop sending identity, but then get woken up again by the mixer itself, which sends
diff --git a/assignment-client/src/avatars/ScriptableAvatar.cpp b/assignment-client/src/avatars/ScriptableAvatar.cpp
index 529ad4b387..cbf6ff4eaf 100644
--- a/assignment-client/src/avatars/ScriptableAvatar.cpp
+++ b/assignment-client/src/avatars/ScriptableAvatar.cpp
@@ -23,6 +23,7 @@
 #include <AvatarLogging.h>
 #include <EntityItem.h>
 #include <EntityItemProperties.h>
+#include <NetworkingConstants.h>
 
 
 ScriptableAvatar::ScriptableAvatar() {
@@ -221,7 +222,7 @@ void ScriptableAvatar::updateJointMappings() {
         QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
         QNetworkRequest networkRequest = QNetworkRequest(_skeletonModelURL);
         networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-        networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+        networkRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
         DependencyManager::get<ResourceRequestObserver>()->update(
             _skeletonModelURL, -1, "AvatarData::updateJointMappings");
         QNetworkReply* networkReply = networkAccessManager.get(networkRequest);
diff --git a/assignment-client/src/entities/EntityServer.cpp b/assignment-client/src/entities/EntityServer.cpp
index a6ab382781..4c4fcbf2dd 100644
--- a/assignment-client/src/entities/EntityServer.cpp
+++ b/assignment-client/src/entities/EntityServer.cpp
@@ -370,16 +370,18 @@ void EntityServer::entityFilterAdded(EntityItemID id, bool success) {
 
 void EntityServer::nodeAdded(SharedNodePointer node) {
     EntityTreePointer tree = std::static_pointer_cast<EntityTree>(_tree);
-    tree->knowAvatarID(node->getUUID());
+    if (tree) {
+        tree->knowAvatarID(node->getUUID());
+    }
     OctreeServer::nodeAdded(node);
 }
 
 void EntityServer::nodeKilled(SharedNodePointer node) {
     EntityTreePointer tree = std::static_pointer_cast<EntityTree>(_tree);
-    tree->withWriteLock([&] {
+    if (tree) {
         tree->deleteDescendantsOfAvatar(node->getUUID());
-    });
-    tree->forgetAvatarID(node->getUUID());
+        tree->forgetAvatarID(node->getUUID());
+    }
     OctreeServer::nodeKilled(node);
 }
 
diff --git a/cmake/ports/hifi-client-deps/CONTROL b/cmake/ports/hifi-client-deps/CONTROL
index 7070cb6fb9..4a8a2bc44e 100644
--- a/cmake/ports/hifi-client-deps/CONTROL
+++ b/cmake/ports/hifi-client-deps/CONTROL
@@ -1,4 +1,4 @@
 Source: hifi-client-deps
 Version: 0.1
 Description: Collected dependencies for High Fidelity applications
-Build-Depends: hifi-deps, aristo (windows), glslang, liblo (windows), nlohmann-json, openvr (windows), quazip (!android), sdl2 (!android), spirv-cross (!android), spirv-tools (!android), sranipal (windows), vulkanmemoryallocator
+Build-Depends: hifi-deps, aristo (windows), glslang, liblo (windows), nlohmann-json, openvr (linux|windows), quazip (!android), sdl2 (!android), spirv-cross (!android), spirv-tools (!android), sranipal (windows), vulkanmemoryallocator
diff --git a/cmake/ports/openvr/portfile.cmake b/cmake/ports/openvr/portfile.cmake
index b91bdd1d54..bcbac8613a 100644
--- a/cmake/ports/openvr/portfile.cmake
+++ b/cmake/ports/openvr/portfile.cmake
@@ -11,15 +11,23 @@ vcpkg_from_github(
 set(VCPKG_LIBRARY_LINKAGE dynamic)
 
 if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
-    set(ARCH_PATH "win64")
+    if(WIN32)
+        set(ARCH_PATH "win64")
+    else()
+        set(ARCH_PATH "linux64")
+    endif()
 elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
-    set(ARCH_PATH "win32")
+    if(WIN32)
+        set(ARCH_PATH "win32")
+    else()
+        set(ARCH_PATH "linux32")
+    endif()
 else()
-    message(FATAL_ERROR "Package only supports x64 and x86 windows.")
+    message(FATAL_ERROR "Package only supports x64 and x86 Windows and Linux.")
 endif()
 
-if(VCPKG_CMAKE_SYSTEM_NAME)
-    message(FATAL_ERROR "Package only supports windows desktop.")
+if(VCPKG_CMAKE_SYSTEM_NAME AND NOT (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux"))
+    message(FATAL_ERROR "Package only supports Windows or Linux desktop.")
 endif()
 
 file(MAKE_DIRECTORY
@@ -28,18 +36,35 @@ file(MAKE_DIRECTORY
     ${CURRENT_PACKAGES_DIR}/debug/lib
     ${CURRENT_PACKAGES_DIR}/debug/bin
 )
-file(COPY ${SOURCE_PATH}/lib/${ARCH_PATH}/openvr_api.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
-file(COPY ${SOURCE_PATH}/lib/${ARCH_PATH}/openvr_api.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
-file(COPY
-    ${SOURCE_PATH}/bin/${ARCH_PATH}/openvr_api.dll
-    ${SOURCE_PATH}/bin/${ARCH_PATH}/openvr_api.pdb
-    DESTINATION ${CURRENT_PACKAGES_DIR}/bin
-)
-file(COPY
-    ${SOURCE_PATH}/bin/${ARCH_PATH}/openvr_api.dll
-    ${SOURCE_PATH}/bin/${ARCH_PATH}/openvr_api.pdb
-    DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
-)
+
+if(WIN32)
+    file(COPY ${SOURCE_PATH}/lib/${ARCH_PATH}/openvr_api.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+    file(COPY ${SOURCE_PATH}/lib/${ARCH_PATH}/openvr_api.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+    file(COPY
+        ${SOURCE_PATH}/bin/${ARCH_PATH}/openvr_api.dll
+        ${SOURCE_PATH}/bin/${ARCH_PATH}/openvr_api.pdb
+        DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+    )
+    file(COPY
+        ${SOURCE_PATH}/bin/${ARCH_PATH}/openvr_api.dll
+        ${SOURCE_PATH}/bin/${ARCH_PATH}/openvr_api.pdb
+        DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+    )
+else()
+    file(COPY ${SOURCE_PATH}/lib/${ARCH_PATH}/libopenvr_api.so DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+    file(COPY ${SOURCE_PATH}/lib/${ARCH_PATH}/libopenvr_api.so DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+    file(COPY
+        ${SOURCE_PATH}/bin/${ARCH_PATH}/libopenvr_api.so
+        ${SOURCE_PATH}/bin/${ARCH_PATH}/libopenvr_api.so.dbg
+        DESTINATION ${CURRENT_PACKAGES_DIR}/bin
+    )
+    file(COPY
+        ${SOURCE_PATH}/bin/${ARCH_PATH}/libopenvr_api.so
+        ${SOURCE_PATH}/bin/${ARCH_PATH}/libopenvr_api.so.dbg
+        DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
+    )
+endif()
+
 file(COPY ${SOURCE_PATH}/headers DESTINATION ${CURRENT_PACKAGES_DIR})
 file(RENAME ${CURRENT_PACKAGES_DIR}/headers ${CURRENT_PACKAGES_DIR}/include)
 
diff --git a/cmake/ports/sranipal/portfile.cmake b/cmake/ports/sranipal/portfile.cmake
index 2e6acea361..4c4d88e567 100644
--- a/cmake/ports/sranipal/portfile.cmake
+++ b/cmake/ports/sranipal/portfile.cmake
@@ -7,9 +7,9 @@ file(READ "${VCPKG_ROOT_DIR}/_env/EXTERNAL_BUILD_ASSETS.txt" EXTERNAL_BUILD_ASSE
 if (WIN32)
     vcpkg_download_distfile(
         SRANIPAL_SOURCE_ARCHIVE
-        URLS "${EXTERNAL_BUILD_ASSETS}/seth/sranipal-1.1.0.1-windows.zip"
-        SHA512 b09ce012abe4e3c71e8e69626bdd7823ff6576601a821ab365275f2764406a3e5f7b65fcf2eb1d0962eff31eb5958a148b00901f67c229dc6ace56eb5e6c9e1b
-        FILENAME sranipal-1.1.0.1-windows.zip
+        URLS "${EXTERNAL_BUILD_ASSETS}/seth/sranipal-1.1.0.1-2-windows.zip"
+        SHA512 f1f68f6beef52ae5e034bc3f44932ae0800ee187b75d80e76ae7b17b8ddd7bc54c039ce5594d231035e3caf3a61fed36f38621a860b4fb20170cb0176d9c28f0
+        FILENAME sranipal-1.1.0.1-2-windows.zip
     )
 
     vcpkg_extract_source_archive(${SRANIPAL_SOURCE_ARCHIVE})
diff --git a/cmake/templates/NSIS.template.in b/cmake/templates/NSIS.template.in
index 8e621b8f2d..fe0d95e8b1 100644
--- a/cmake/templates/NSIS.template.in
+++ b/cmake/templates/NSIS.template.in
@@ -871,7 +871,7 @@ Function PostInstallOptionsPage
   Pop $LaunchConsoleNowCheckbox
 
   ; set the checkbox state depending on what is present in the registry
-  !insertmacro SetInstallOption $LaunchConsoleNowCheckbox @SERVER_LAUNCH_NOW_REG_KEY@ ${BST_CHECKED}
+  !insertmacro SetInstallOption $LaunchConsoleNowCheckbox @SERVER_LAUNCH_NOW_REG_KEY@ ${BST_UNCHECKED}
   ${StrContains} $substringResult "/forceNoLaunchServer" $CMDLINE
   ${IfNot} $substringResult == ""
       ${NSD_SetState} $LaunchConsoleNowCheckbox ${BST_UNCHECKED}
@@ -887,7 +887,7 @@ Function PostInstallOptionsPage
   IntOp $CurrentOffset $CurrentOffset + 15
 
   ; set the checkbox state depending on what is present in the registry
-  !insertmacro SetInstallOption $ConsoleStartupCheckbox @CONSOLE_STARTUP_REG_KEY@ ${BST_CHECKED}
+  !insertmacro SetInstallOption $ConsoleStartupCheckbox @CONSOLE_STARTUP_REG_KEY@ ${BST_UNCHECKED}
 
   ${NSD_CreateCheckbox} 0 $CurrentOffset$OffsetUnits 100% 10u "&Perform a clean install (Delete older settings and content)"
   Pop $CleanInstallCheckbox
@@ -940,8 +940,8 @@ Function ReadInstallTypes
     StrCpy $Express "1"
 
     StrCpy $DesktopClientState ${BST_CHECKED}
-    StrCpy $ConsoleStartupState ${BST_CHECKED}
-    StrCpy $LaunchConsoleNowState ${BST_CHECKED}
+    StrCpy $ConsoleStartupState ${BST_UNCHECKED}
+    StrCpy $LaunchConsoleNowState ${BST_UNCHECKED}
     StrCpy $LaunchClientNowState ${BST_CHECKED}
     StrCpy $CleanInstallState ${BST_UNCHECKED}
     StrCpy $DesktopConsoleState ${BST_UNCHECKED}
diff --git a/domain-server/resources/describe-settings.json b/domain-server/resources/describe-settings.json
index be40611f14..9b3b716a4a 100644
--- a/domain-server/resources/describe-settings.json
+++ b/domain-server/resources/describe-settings.json
@@ -3,7 +3,7 @@
   "settings": [
     {
       "name": "metaverse",
-      "label": "Metaverse / Networking",
+      "label": "Networking / Metaverse",
       "settings": [
         {
           "name": "access_token",
@@ -73,6 +73,39 @@
         }
       ]
     },
+    {
+      "name": "authentication",
+      "label": "Networking / WordPress OAuth2",
+      "settings": [
+        {
+            "name": "enable_oauth2",
+            "label": "Enable OAuth2 Authentication",
+            "help": "Allow a WordPress-based (miniOrange) OAuth2 service to assign users to groups based on their role with the service.",
+            "default": false,
+            "type": "checkbox",
+            "advanced": true
+        },
+        {
+            "name": "oauth2_url_path",
+            "label": "Authentication URL",
+            "help": "The URL that the Interface will use to login via OAuth2.",
+            "advanced": true
+        },
+        {
+            "name": "wordpress_url_base",
+            "label": "WordPress API URL Base",
+            "help": "The URL base that the domain server will use to make WordPress API calls. Typically \"https://oursite.com/wp-json/\". However, if using non-pretty permalinks or otherwise get a 404 error then try \"https://oursite.com/?rest_route=/\".",
+            "advanced": true
+        },
+        {
+            "name": "plugin_client_id",
+            "label": "WordPress Plugin Client ID",
+            "help": "This is the client ID from the WordPress plugin configuration.",
+            "advanced": true,
+            "backup": false
+        }
+      ]
+    },
     {
       "label": "Monitoring",
       "name": "monitoring",
@@ -271,7 +304,7 @@
           "name": "standard_permissions",
           "type": "table",
           "label": "Domain-Wide User Permissions",
-          "help": "Indicate which types of users can have which <a data-toggle='tooltip' data-html=true title='<p><strong>Domain-Wide User Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether a user can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether a user change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether a user can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether a user can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether a user can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether a user can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether a user can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether a user can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Rez Certified</strong><br />Sets whether a user can create new certified entities.</li><li><strong>Can Get and Set Private User Data</strong><br>Sets whether a user can get and set the Private User Data entity property</li></ul><p>Note that permissions assigned to a specific user will supersede any parameter-level permissions that might otherwise apply to that user. Additionally, if more than one parameter is applicable to a given user, the permissions given to that user will be the sum of all applicable parameters. For example, let&rsquo;s say only localhost users can connect and only logged in users can lock and unlock entities. If a user is both logged in and on localhost then they will be able to both connect and lock/unlock entities.</p>'>domain-wide permissions</a>.",
+          "help": "Indicate which types of users can have which <a data-toggle='tooltip' data-html=true title='<p><strong>Domain-Wide User Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether a user can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether a user change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether a user can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether a user can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether a user can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether a user can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether a user can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether a user can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Rez Certified</strong><br />Sets whether a user can create new certified entities.</li><li><strong>Get and Set Private User Data</strong><br>Sets whether a user can get and set the privateUserData entity property.</li></ul><p>Note that permissions assigned to a specific user will supersede any parameter-level permissions that might otherwise apply to that user. Additionally, if more than one parameter is applicable to a given user, the permissions given to that user will be the sum of all applicable parameters. For example, let&rsquo;s say only localhost users can connect and only logged in users can lock and unlock entities. If a user is both logged in and on localhost then they will be able to both connect and lock/unlock entities.</p>'>domain-wide permissions</a>.",
           "caption": "Standard Permissions",
           "can_add_new_rows": false,
           "groups": [
@@ -280,7 +313,7 @@
               "span": 1
             },
             {
-               "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide User Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether a user can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether a user change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether a user can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether a user can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether a user can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether a user can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether a user can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether a user can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether a user can replace entire content sets by wiping existing domain content.</li><li><strong>Can Get and Set Private User Data</strong><br>Sets whether a user can get and set the Private User Data entity property</li></ul><p>Note that permissions assigned to a specific user will supersede any parameter-level permissions that might otherwise apply to that user. Additionally, if more than one parameter is applicable to a given user, the permissions given to that user will be the sum of all applicable parameters. For example, let&rsquo;s say only localhost users can connect and only logged in users can lock and unlock entities. If a user is both logged in and on localhost then they will be able to both connect and lock/unlock entities.</p>'>?</a>",
+               "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide User Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether a user can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether a user change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether a user can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether a user can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether a user can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether a user can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether a user can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether a user can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether a user can replace entire content sets by wiping existing domain content.</li><li><strong>Get and Set Private User Data</strong><br>Sets whether a user can get and set the privateUserData entity property.</li></ul><p>Note that permissions assigned to a specific user will supersede any parameter-level permissions that might otherwise apply to that user. Additionally, if more than one parameter is applicable to a given user, the permissions given to that user will be the sum of all applicable parameters. For example, let&rsquo;s say only localhost users can connect and only logged in users can lock and unlock entities. If a user is both logged in and on localhost then they will be able to both connect and lock/unlock entities.</p>'>?</a>",
                "span": 11
             }
           ],
@@ -361,7 +394,7 @@
             },
             {
               "name": "id_can_get_and_set_private_user_data",
-              "label": "Can Get and Set Private User Data",
+              "label": "Get and Set Private User Data",
               "type": "checkbox",
               "editable": true,
               "default": false
@@ -405,6 +438,7 @@
           "name": "group_permissions",
           "type": "table",
           "caption": "Permissions for Users in Groups",
+          "help": "For groups that are provided from WordPress you need to denote them by putting an \"@\" symbol in front of each item, e.g., \"@silver\".",
           "categorize_by_key": "permissions_id",
           "can_add_new_categories": true,
           "can_add_new_rows": false,
@@ -416,7 +450,7 @@
               "span": 1
             },
             {
-              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide User Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether users in specific groups can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether users in specific groups can change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether users in specific groups can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether users in specific groups can create new entities with a finite lifetime.</li><li><strong>Rez Temporary</strong><br />Sets whether users in specific groups can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether a users in specific groups can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether a user can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether users in specific groups can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether user in specific groups can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether a user can replace entire content sets by wiping existing domain content.</li><li><strong>Can Get and Set Private User Data</strong><br>Sets whether a user can get and set the Private User Data entity property</li></ul><p>Permissions granted to a specific user will be a union of the permissions granted to the groups they are in, as well as permissions from the previous section.  Group permissions are only granted if the user doesn&rsquo;t have their own row in the per-account section, below.</p>'>?</a>",
+              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide User Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether users in specific groups can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether users in specific groups can change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether users in specific groups can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether users in specific groups can create new entities with a finite lifetime.</li><li><strong>Rez Temporary</strong><br />Sets whether users in specific groups can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether a users in specific groups can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether a user can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether users in specific groups can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether user in specific groups can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether a user can replace entire content sets by wiping existing domain content.</li><li><strong>Get and Set Private User Data</strong><br>Sets whether a user can get and set the privateUserData entity property.</li></ul><p>Permissions granted to a specific user will be a union of the permissions granted to the groups they are in, as well as permissions from the previous section.  Group permissions are only granted if the user doesn&rsquo;t have their own row in the per-account section, below.</p>'>?</a>",
               "span": 11
             }
           ],
@@ -522,7 +556,7 @@
             },
             {
               "name": "id_can_get_and_set_private_user_data",
-              "label": "Can Get and Set Private User Data",
+              "label": "Get and Set Private User Data",
               "type": "checkbox",
               "editable": true,
               "default": false
@@ -533,6 +567,7 @@
           "name": "group_forbiddens",
           "type": "table",
           "caption": "Permissions Denied to Users in Groups",
+          "help": "For groups that are provided from WordPress you need to denote them by putting an \"@\" symbol in front of each item, e.g., \"@silver\".",
           "categorize_by_key": "permissions_id",
           "can_add_new_categories": true,
           "can_add_new_rows": false,
@@ -544,7 +579,7 @@
               "span": 1
             },
             {
-              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide User Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether users in specific groups can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether users in specific groups can change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether users in specific groups can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether users in specific groups can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether a users in specific groups can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether a user can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether users in specific groups can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether user in specific groups can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether users in specific groups can replace entire content sets by wiping existing domain content.</li><li><strong>Can Get and Set Private User Data</strong><br>Sets whether a user can get and set the Private User Data entity property</li></ul><p>Permissions granted to a specific user will be a union of the permissions granted to the groups they are in.  Group permissions are only granted if the user doesn&rsquo;t have their own row in the per-account section, below.</p>'>?</a>",
+              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide User Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether users in specific groups can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether users in specific groups can change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether users in specific groups can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether users in specific groups can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether a users in specific groups can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether a user can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether users in specific groups can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether user in specific groups can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether users in specific groups can replace entire content sets by wiping existing domain content.</li><li><strong>Get and Set Private User Data</strong><br>Sets whether a user can get and set the privateUserData entity property</li></ul><p>Permissions granted to a specific user will be a union of the permissions granted to the groups they are in.  Group permissions are only granted if the user doesn&rsquo;t have their own row in the per-account section, below.</p>'>?</a>",
               "span": 11
             }
           ],
@@ -647,7 +682,7 @@
             },
             {
               "name": "id_can_get_and_set_private_user_data",
-              "label": "Can Get and Set Private User Data",
+              "label": "Get and Set Private User Data",
               "type": "checkbox",
               "editable": true,
               "default": false
@@ -665,7 +700,7 @@
               "span": 1
             },
             {
-              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide User Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether a user can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether a user change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether a user can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether a user can create new entities with a finite lifetime.</li><li><strong>Rez Temporary</strong><br />Sets whether a user can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether a user can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether a user can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether a user can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether a user can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether a user can replace entire content sets by wiping existing domain content.</li><li><strong>Can Get and Set Private User Data</strong><br>Sets whether a user can get and set the Private User Data entity property</li></ul><p>Note that permissions assigned to a specific user will supersede any parameter-level or group permissions that might otherwise apply to that user.</p>'>?</a>",
+              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide User Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether a user can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether a user change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether a user can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether a user can create new entities with a finite lifetime.</li><li><strong>Rez Temporary</strong><br />Sets whether a user can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether a user can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether a user can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether a user can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether a user can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether a user can replace entire content sets by wiping existing domain content.</li><li><strong>Get and Set Private User Data</strong><br>Sets whether a user can get and set the privateUserData entity property.</li></ul><p>Note that permissions assigned to a specific user will supersede any parameter-level or group permissions that might otherwise apply to that user.</p>'>?</a>",
               "span": 11
             }
           ],
@@ -746,7 +781,7 @@
             },
             {
               "name": "id_can_get_and_set_private_user_data",
-              "label": "Can Get and Set Private User Data",
+              "label": "Get and Set Private User Data",
               "type": "checkbox",
               "editable": true,
               "default": false
@@ -764,7 +799,7 @@
               "span": 1
             },
             {
-              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide IP Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether users from specific IPs can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether users from specific IPs can change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether users from specific IPs can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether users from specific IPs can create new entities with a finite lifetime.</li><li><strong>Rez Temporary</strong><br />Sets whether a user can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether users from specific IPs can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether users from specific IPs can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether users from specific IPs can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether users from specific IPs can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether users from specific IPs can replace entire content sets by wiping existing domain content.</li><li><strong>Can Get and Set Private User Data</strong><br>Sets whether a user can get and set the Private User Data entity property</li></ul><p>Note that permissions assigned to a specific IP will supersede any parameter-level permissions that might otherwise apply to that user (from groups or standard permissions above). IP address permissions are overriden if the user has their own row in the users section.</p>'>?</a>",
+              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide IP Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether users from specific IPs can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether users from specific IPs can change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether users from specific IPs can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether users from specific IPs can create new entities with a finite lifetime.</li><li><strong>Rez Temporary</strong><br />Sets whether a user can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether users from specific IPs can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether users from specific IPs can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether users from specific IPs can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether users from specific IPs can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether users from specific IPs can replace entire content sets by wiping existing domain content.</li><li><strong>Get and Set Private User Data</strong><br>Sets whether a user can get and set the privateUserData entity property.</li></ul><p>Note that permissions assigned to a specific IP will supersede any parameter-level permissions that might otherwise apply to that user (from groups or standard permissions above). IP address permissions are overriden if the user has their own row in the users section.</p>'>?</a>",
               "span": 11
             }
           ],
@@ -845,7 +880,7 @@
             },
             {
               "name": "id_can_get_and_set_private_user_data",
-              "label": "Can Get and Set Private User Data",
+              "label": "Get and Set Private User Data",
               "type": "checkbox",
               "editable": true,
               "default": false
@@ -863,7 +898,7 @@
               "span": 1
             },
             {
-              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide MAC Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether users with specific MACs can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether users from specific MACs can change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether users with specific MACs can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether users with specific MACs can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether users with specific MACs can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether users with specific MACs can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether users with specific MACs can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether users with specific MACs can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether users with specific MACs can replace entire content sets by wiping existing domain content.</li><li><strong>Can Get and Set Private User Data</strong><br>Sets whether a user can get and set the Private User Data entity property</li></ul><p>Note that permissions assigned to a specific MAC will supersede any parameter-level permissions that might otherwise apply to that user (from groups or standard permissions above). MAC address permissions are overriden if the user has their own row in the users section.</p>'>?</a>",
+              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide MAC Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether users with specific MACs can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether users from specific MACs can change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether users with specific MACs can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether users with specific MACs can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether users with specific MACs can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether users with specific MACs can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether users with specific MACs can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether users with specific MACs can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether users with specific MACs can replace entire content sets by wiping existing domain content.</li><li><strong>Get and Set Private User Data</strong><br>Sets whether a user can get and set the privateUserData entity property.</li></ul><p>Note that permissions assigned to a specific MAC will supersede any parameter-level permissions that might otherwise apply to that user (from groups or standard permissions above). MAC address permissions are overriden if the user has their own row in the users section.</p>'>?</a>",
               "span": 11
             }
           ],
@@ -944,7 +979,7 @@
             },
               {
                 "name": "id_can_get_and_set_private_user_data",
-                "label": "Can Get and Set Private User Data",
+                "label": "Get and Set Private User Data",
                 "type": "checkbox",
                 "editable": true,
                 "default": false
@@ -962,7 +997,7 @@
               "span": 1
             },
             {
-              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide Machine Fingerprint Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether users with specific Machine Fingerprints can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether users from specific Machine Fingerprints can change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether users with specific Machine Fingerprints can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether users with specific Machine Fingerprints can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether users with specific Machine Fingerprints can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether users with specific Machine Fingerprints can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether users with specific Machine Fingerprints can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether users with specific Machine Fingerprints can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether users with specific Machine Fingerprints can replace entire content sets by wiping existing domain content.</li><li><strong>Can Get and Set Private User Data</strong><br>Sets whether a user can get and set the Private User Data entity property</li></ul><p>Note that permissions assigned to a specific Machine Fingerprint will supersede any parameter-level permissions that might otherwise apply to that user (from groups or standard permissions above). Machine Fingerprint address permissions are overriden if the user has their own row in the users section.</p>'>?</a>",
+              "label": "Permissions <a data-toggle='tooltip' data-html='true' title='<p><strong>Domain-Wide Machine Fingerprint Permissions</strong></p><ul><li><strong>Connect</strong><br />Sets whether users with specific Machine Fingerprints can connect to the domain.</li><li><strong>Lock / Unlock</strong><br />Sets whether users from specific Machine Fingerprints can change the &ldquo;locked&rdquo; property of an entity (either from on to off or off to on).</li><li><strong>Rez</strong><br />Sets whether users with specific Machine Fingerprints can create new entities.</li><li><strong>Rez Temporary</strong><br />Sets whether users with specific Machine Fingerprints can create new entities with a finite lifetime.</li><li><strong>Rez Certified</strong><br />Sets whether users with specific Machine Fingerprints can create new certified entities.</li><li><strong>Rez Temporary Certified</strong><br />Sets whether users with specific Machine Fingerprints can create new certified entities with a finite lifetime.</li><li><strong>Write Assets</strong><br />Sets whether users with specific Machine Fingerprints can make changes to the domain&rsquo;s asset-server assets.</li><li><strong>Ignore Max Capacity</strong><br />Sets whether users with specific Machine Fingerprints can connect even if the domain has reached or exceeded its maximum allowed agents.</li><li><strong>Replace Content</strong><br>Sets whether users with specific Machine Fingerprints can replace entire content sets by wiping existing domain content.</li><li><strong>Get and Set Private User Data</strong><br>Sets whether a user can get and set the privateUserData entity property.</li></ul><p>Note that permissions assigned to a specific Machine Fingerprint will supersede any parameter-level permissions that might otherwise apply to that user (from groups or standard permissions above). Machine Fingerprint address permissions are overriden if the user has their own row in the users section.</p>'>?</a>",
               "span": 11
             }
           ],
@@ -1043,7 +1078,7 @@
             },
             {
               "name": "id_can_get_and_set_private_user_data",
-              "label": "Can Get and Set Private User Data",
+              "label": "Get and Set Private User Data",
               "type": "checkbox",
               "editable": true,
               "default": false
diff --git a/domain-server/src/DomainGatekeeper.cpp b/domain-server/src/DomainGatekeeper.cpp
index 09a0446468..ead4002334 100644
--- a/domain-server/src/DomainGatekeeper.cpp
+++ b/domain-server/src/DomainGatekeeper.cpp
@@ -4,6 +4,7 @@
 //
 //  Created by Stephen Birarda on 2015-08-24.
 //  Copyright 2015 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -94,6 +95,9 @@ void DomainGatekeeper::processConnectRequestPacket(QSharedPointer<ReceivedMessag
     } else if (!STATICALLY_ASSIGNED_NODES.contains(nodeConnection.nodeType)) {
         QByteArray usernameSignature;
 
+        QString domainUsername;
+        QStringList domainTokens;
+
         if (message->getBytesLeftToRead() > 0) {
             // read username from packet
             packetStream >> username;
@@ -101,10 +105,25 @@ void DomainGatekeeper::processConnectRequestPacket(QSharedPointer<ReceivedMessag
             if (message->getBytesLeftToRead() > 0) {
                 // read user signature from packet
                 packetStream >> usernameSignature;
+
+                if (message->getBytesLeftToRead() > 0) {
+                    // Read domain username from packet.
+                    packetStream >> domainUsername;
+                    domainUsername = domainUsername.toLower();  // Domain usernames are case-insensitive; internally lower-case.
+
+                    if (message->getBytesLeftToRead() > 0) {
+                        // Read domain tokens from packet.
+
+                        QString domainTokensString;
+                        packetStream >> domainTokensString;
+                        domainTokens = domainTokensString.split(":");
+                    }
+                }
             }
         }
 
-        node = processAgentConnectRequest(nodeConnection, username, usernameSignature);
+        node = processAgentConnectRequest(nodeConnection, username, usernameSignature, 
+                                          domainUsername, domainTokens.value(0), domainTokens.value(1));
     }
 
     if (node) {
@@ -142,7 +161,8 @@ void DomainGatekeeper::processConnectRequestPacket(QSharedPointer<ReceivedMessag
     }
 }
 
-NodePermissions DomainGatekeeper::setPermissionsForUser(bool isLocalUser, QString verifiedUsername, const QHostAddress& senderAddress,
+NodePermissions DomainGatekeeper::setPermissionsForUser(bool isLocalUser, QString verifiedUsername,
+                                                        QString verifiedDomainUserName, const QHostAddress& senderAddress, 
                                                         const QString& hardwareAddress, const QUuid& machineFingerprint) {
     NodePermissions userPerms;
 
@@ -155,6 +175,27 @@ NodePermissions DomainGatekeeper::setPermissionsForUser(bool isLocalUser, QStrin
 #endif
     }
 
+    // If this user is a known member of a domain group, give them the implied permissions.
+    // Do before processing verifiedUsername in case user is logged into the metaverse and is a member of a blacklist group.
+    if (!verifiedDomainUserName.isEmpty()) {
+        auto userGroups = _domainGroupMemberships[verifiedDomainUserName];
+        foreach (QString userGroup, userGroups) {
+            // A domain group is signified by a leading special character, "@".
+            // Multiple domain groups may be specified in one domain server setting as a comma- and/or space-separated lists of 
+            // domain group names. For example, "@silver @Gold, @platinum".
+            auto domainGroups = _server->_settingsManager.getDomainServerGroupNames()
+                .filter(QRegularExpression("^(.*[\\s,])?" + QRegularExpression::escape(userGroup) + "([\\s,].*)?$",
+                    QRegularExpression::CaseInsensitiveOption));
+            foreach(QString domainGroup, domainGroups) {
+                userPerms |= _server->_settingsManager.getPermissionsForGroup(domainGroup, QUuid()); // No rank for domain groups.
+#ifdef WANT_DEBUG
+                qDebug() << "|  user-permissions: domain user " << verifiedDomainUserName << "is in group:" << domainGroup
+                    << "so:" << userPerms;
+#endif
+            }
+        }
+    }
+
     if (verifiedUsername.isEmpty()) {
         userPerms |= _server->_settingsManager.getStandardPermissionsForName(NodePermissions::standardNameAnonymous);
 #ifdef WANT_DEBUG
@@ -256,6 +297,27 @@ NodePermissions DomainGatekeeper::setPermissionsForUser(bool isLocalUser, QStrin
         userPerms.setVerifiedUserName(verifiedUsername);
     }
 
+    // If this user is a known member of an domain group that is blacklisted, remove the implied permissions.
+    if (!verifiedDomainUserName.isEmpty()) {
+        auto userGroups = _domainGroupMemberships[verifiedDomainUserName];
+        foreach(QString userGroup, userGroups) {
+            // A domain group is signified by a leading special character, "@".
+            // Multiple domain groups may be specified in one domain server setting as a comma- and/or space-separated lists of 
+            // domain group names. For example, "@silver @Gold, @platinum".
+            auto domainGroups = _server->_settingsManager.getDomainServerBlacklistGroupNames()
+                .filter(QRegularExpression("^(.*[\\s,])?" + QRegularExpression::escape(userGroup) + "([\\s,].*)?$",
+                    QRegularExpression::CaseInsensitiveOption));
+            foreach(QString domainGroup, domainGroups) {
+                userPerms &= ~_server->_settingsManager.getForbiddensForGroup(domainGroup, QUuid());
+#ifdef WANT_DEBUG
+                qDebug() << "|  user-permissions: domain user is in blacklist group:" << domainGroup << "so:" << userPerms;
+#endif
+            }
+        }
+
+        userPerms.setVerifiedDomainUserName(verifiedDomainUserName);
+    }
+
 #ifdef WANT_DEBUG
     qDebug() << "|  user-permissions: final:" << userPerms;
 #endif
@@ -275,6 +337,7 @@ void DomainGatekeeper::updateNodePermissions() {
         // the id and the username in NodePermissions will often be the same, but id is set before
         // authentication and verifiedUsername is only set once they user's key has been confirmed.
         QString verifiedUsername = node->getPermissions().getVerifiedUserName();
+        QString verifiedDomainUserName = node->getPermissions().getVerifiedDomainUserName();
         NodePermissions userPerms(NodePermissionsKey(verifiedUsername, 0));
 
         if (node->getPermissions().isAssignment) {
@@ -309,7 +372,8 @@ void DomainGatekeeper::updateNodePermissions() {
                                sendingAddress == QHostAddress::LocalHost);
             }
 
-            userPerms = setPermissionsForUser(isLocalUser, verifiedUsername, connectingAddr.getAddress(), hardwareAddress, machineFingerprint);
+            userPerms = setPermissionsForUser(isLocalUser, verifiedUsername, verifiedDomainUserName, 
+                                              connectingAddr.getAddress(), hardwareAddress, machineFingerprint);
         }
 
         node->setPermissions(userPerms);
@@ -387,12 +451,19 @@ SharedNodePointer DomainGatekeeper::processAssignmentConnectRequest(const NodeCo
     return newNode;
 }
 
+const QString AUTHENTICATION_ENABLE_OAUTH2 = "authentication.enable_oauth2";
+const QString AUTHENTICATION_OAUTH2_URL_PATH = "authentication.oauth2_url_path";
+const QString AUTHENTICATION_WORDPRESS_URL_BASE = "authentication.wordpress_url_base";
+const QString AUTHENTICATION_PLUGIN_CLIENT_ID = "authentication.plugin_client_id";
 const QString MAXIMUM_USER_CAPACITY = "security.maximum_user_capacity";
 const QString MAXIMUM_USER_CAPACITY_REDIRECT_LOCATION = "security.maximum_user_capacity_redirect_location";
 
 SharedNodePointer DomainGatekeeper::processAgentConnectRequest(const NodeConnectionData& nodeConnection,
                                                                const QString& username,
-                                                               const QByteArray& usernameSignature) {
+                                                               const QByteArray& usernameSignature,
+                                                               const QString& domainUsername,
+                                                               const QString& domainAccessToken,
+                                                               const QString& domainRefreshToken) {
 
     auto limitedNodeList = DependencyManager::get<LimitedNodeList>();
 
@@ -419,7 +490,9 @@ SharedNodePointer DomainGatekeeper::processAgentConnectRequest(const NodeConnect
 #ifdef WANT_DEBUG
             qDebug() << "stalling login because we have no username-signature:" << username;
 #endif
-            return SharedNodePointer();
+            if (!domainHasLogin() || domainUsername.isEmpty()) {
+                return SharedNodePointer();
+            }
         } else if (verifyUserSignature(username, usernameSignature, nodeConnection.senderSockAddr)) {
             // they sent us a username and the signature verifies it
             getGroupMemberships(username);
@@ -430,16 +503,70 @@ SharedNodePointer DomainGatekeeper::processAgentConnectRequest(const NodeConnect
 #ifdef WANT_DEBUG
             qDebug() << "stalling login because signature verification failed:" << username;
 #endif
-            return SharedNodePointer();
+            if (!domainHasLogin() || domainUsername.isEmpty()) {
+                return SharedNodePointer();
+            }
         }
     }
 
-    userPerms = setPermissionsForUser(isLocalUser, verifiedUsername, nodeConnection.senderSockAddr.getAddress(),
-                                      nodeConnection.hardwareAddress, nodeConnection.machineFingerprint);
+    // The domain may have its own users and groups.
+    QString verifiedDomainUsername;
+    QStringList verifiedDomainUserGroups;
+    if (domainHasLogin() && !domainUsername.isEmpty()) {
+
+        if (domainAccessToken.isEmpty()) {
+            // User is attempting to prove their domain identity.
+#ifdef WANT_DEBUG
+            qDebug() << "Stalling login because we have no domain OAuth2 tokens:" << domainUsername;
+#endif
+            return SharedNodePointer();
+
+        } else if (needToVerifyDomainUserIdentity(domainUsername, domainAccessToken, domainRefreshToken)) {
+            // User's domain identity needs to be confirmed.
+            requestDomainUser(domainUsername, domainAccessToken, domainRefreshToken);
+#ifdef WANT_DEBUG
+            qDebug() << "Stalling login because we haven't authenticated user yet:" << domainUsername;
+#endif
+
+        } else if (verifyDomainUserIdentity(domainUsername, domainAccessToken, domainRefreshToken, 
+                                            nodeConnection.senderSockAddr)) {
+            // User's domain identity is confirmed.
+            verifiedDomainUsername = domainUsername;
+
+        } else {
+            // User's domain identity didn't check out.
+#ifdef WANT_DEBUG
+            qDebug() << "Stalling login because domain user verification failed:" << domainUsername;
+#endif
+            return SharedNodePointer();
+
+        }
+    }
+
+    userPerms = setPermissionsForUser(isLocalUser, verifiedUsername, verifiedDomainUsername,
+                                      nodeConnection.senderSockAddr.getAddress(), nodeConnection.hardwareAddress,
+                                      nodeConnection.machineFingerprint);
 
     if (!userPerms.can(NodePermissions::Permission::canConnectToDomain)) {
-        sendConnectionDeniedPacket("You lack the required permissions to connect to this domain.",
-                nodeConnection.senderSockAddr, DomainHandler::ConnectionRefusedReason::NotAuthorized);
+        if (domainHasLogin()) {
+            QString domainAuthURL;
+            auto domainAuthURLVariant = _server->_settingsManager.valueForKeyPath(AUTHENTICATION_OAUTH2_URL_PATH);
+            if (domainAuthURLVariant.canConvert<QString>()) {
+                domainAuthURL = domainAuthURLVariant.toString();
+            }
+            QString domainAuthClientID;
+            auto domainAuthClientIDVariant = _server->_settingsManager.valueForKeyPath(AUTHENTICATION_PLUGIN_CLIENT_ID);
+            if (domainAuthClientIDVariant.canConvert<QString>()) {
+                domainAuthClientID = domainAuthClientIDVariant.toString();
+            }
+
+            sendConnectionDeniedPacket("You lack the required domain permissions to connect to this domain.",
+                nodeConnection.senderSockAddr, DomainHandler::ConnectionRefusedReason::NotAuthorizedDomain, 
+                    domainAuthURL + "|" + domainAuthClientID);
+        } else {
+            sendConnectionDeniedPacket("You lack the required metaverse permissions to connect to this domain.",
+                nodeConnection.senderSockAddr, DomainHandler::ConnectionRefusedReason::NotAuthorizedMetaverse);
+        }
 #ifdef WANT_DEBUG
         qDebug() << "stalling login due to permissions:" << username;
 #endif
@@ -600,15 +727,15 @@ bool DomainGatekeeper::verifyUserSignature(const QString& username,
                 return true;
 
             } else {
-                // we only send back a LoginError if this wasn't an "optimistic" key
+                // we only send back a LoginErrorMetaverse if this wasn't an "optimistic" key
                 // (a key that we hoped would work but is probably stale)
 
                 if (!senderSockAddr.isNull() && !isOptimisticKey) {
-                    qDebug() << "Error decrypting username signature for" << username << "- denying connection.";
+                    qDebug() << "Error decrypting metaverse username signature for" << username << "- denying connection.";
                     sendConnectionDeniedPacket("Error decrypting username signature.", senderSockAddr,
-                        DomainHandler::ConnectionRefusedReason::LoginError);
+                        DomainHandler::ConnectionRefusedReason::LoginErrorMetaverse);
                 } else if (!senderSockAddr.isNull()) {
-                    qDebug() << "Error decrypting username signature for" << username << "with optimisitic key -"
+                    qDebug() << "Error decrypting metaverse username signature for" << username << "with optimistic key -"
                         << "re-requesting public key and delaying connection";
                 }
 
@@ -622,7 +749,7 @@ bool DomainGatekeeper::verifyUserSignature(const QString& username,
             if (!senderSockAddr.isNull()) {
                 qDebug() << "Couldn't convert data to RSA key for" << username << "- denying connection.";
                 sendConnectionDeniedPacket("Couldn't convert data to RSA key.", senderSockAddr,
-                    DomainHandler::ConnectionRefusedReason::LoginError);
+                    DomainHandler::ConnectionRefusedReason::LoginErrorMetaverse);
             }
         }
     } else {
@@ -635,6 +762,25 @@ bool DomainGatekeeper::verifyUserSignature(const QString& username,
     return false;
 }
 
+
+bool DomainGatekeeper::needToVerifyDomainUserIdentity(const QString& username, const QString& accessToken, 
+                                                      const QString& refreshToken) {
+    return !_verifiedDomainUserIdentities.contains(username)
+        || _verifiedDomainUserIdentities.value(username) != QPair<QString, QString>(accessToken, refreshToken);
+}
+
+bool DomainGatekeeper::verifyDomainUserIdentity(const QString& username, const QString& accessToken,
+                                                const QString& refreshToken, const HifiSockAddr& senderSockAddr) {
+    if (_verifiedDomainUserIdentities.contains(username)
+            && _verifiedDomainUserIdentities.value(username) == QPair<QString, QString>(accessToken, refreshToken)) {
+        return true;
+    }
+
+    sendConnectionDeniedPacket("Error verifying domain user.", senderSockAddr,
+        DomainHandler::ConnectionRefusedReason::LoginErrorDomain);
+    return false;
+}
+
 bool DomainGatekeeper::isWithinMaxCapacity() {
     // find out what our maximum capacity is
     QVariant maximumUserCapacityVariant =
@@ -907,7 +1053,6 @@ void DomainGatekeeper::getGroupMemberships(const QString& username) {
                                                           AccountManagerAuth::Required,
                                                           QNetworkAccessManager::PostOperation, callbackParams,
                                                           QJsonDocument(json).toJson());
-
 }
 
 QString extractUsernameFromGroupMembershipsReply(QNetworkReply* requestReply) {
@@ -962,6 +1107,7 @@ void DomainGatekeeper::getIsGroupMemberErrorCallback(QNetworkReply* requestReply
     _inFlightGroupMembershipsRequests.remove(extractUsernameFromGroupMembershipsReply(requestReply));
 }
 
+
 void DomainGatekeeper::getDomainOwnerFriendsList() {
     JSONCallbackParameters callbackParams;
     callbackParams.callbackReceiver = this;
@@ -1010,6 +1156,7 @@ void DomainGatekeeper::getDomainOwnerFriendsListErrorCallback(QNetworkReply* req
     qDebug() << "getDomainOwnerFriendsList api call failed:" << requestReply->error();
 }
 
+// ####### TODO: Domain equivalent or addition
 void DomainGatekeeper::refreshGroupsCache() {
     // if agents are connected to this domain, refresh our cached information about groups and memberships in such.
     getDomainOwnerFriendsList();
@@ -1029,7 +1176,7 @@ void DomainGatekeeper::refreshGroupsCache() {
 
     updateNodePermissions();
 
-#if WANT_DEBUG
+#ifdef WANT_DEBUG
     _server->_settingsManager.debugDumpGroupsState();
 #endif
 }
@@ -1061,3 +1208,91 @@ Node::LocalID DomainGatekeeper::findOrCreateLocalID(const QUuid& uuid) {
     _localIDs.insert(newLocalID);
     return newLocalID;
 }
+
+
+bool DomainGatekeeper::domainHasLogin() {
+    // The domain may have its own users and groups in a WordPress site.
+    return _server->_settingsManager.valueForKeyPath(AUTHENTICATION_ENABLE_OAUTH2).toBool()
+        && !_server->_settingsManager.valueForKeyPath(AUTHENTICATION_OAUTH2_URL_PATH).toString().isEmpty()
+        && !_server->_settingsManager.valueForKeyPath(AUTHENTICATION_WORDPRESS_URL_BASE).toString().isEmpty()
+        && !_server->_settingsManager.valueForKeyPath(AUTHENTICATION_PLUGIN_CLIENT_ID).toString().isEmpty();
+}
+
+void DomainGatekeeper::requestDomainUser(const QString& username, const QString& accessToken, const QString& refreshToken) {
+
+    if (_inFlightDomainUserIdentityRequests.contains(username)) {
+        // Domain identify request for this username is already in progress.
+        return;
+    }
+    _inFlightDomainUserIdentityRequests.insert(username, QPair<QString, QString>(accessToken, refreshToken));
+
+    if (_verifiedDomainUserIdentities.contains(username)) {
+        _verifiedDomainUserIdentities.remove(username);
+    }
+
+    QString apiBase = _server->_settingsManager.valueForKeyPath(AUTHENTICATION_WORDPRESS_URL_BASE).toString();
+    if (!apiBase.endsWith("/")) {
+        apiBase += "/";
+    }
+
+    // Get data pertaining to "me", the user who generated the access token.
+    const QString WORDPRESS_USER_ROUTE = "wp/v2/users/me";
+    const QString WORDPRESS_USER_QUERY = "_fields=username,roles";
+    QUrl domainUserURL = apiBase + WORDPRESS_USER_ROUTE + (apiBase.contains("?") ? "&" : "?") + WORDPRESS_USER_QUERY;
+
+    QNetworkRequest request;
+
+    request.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
+    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
+    request.setRawHeader(QByteArray("Authorization"), QString("Bearer " + accessToken).toUtf8());
+
+    QByteArray formData;  // No data to send.
+
+    request.setUrl(domainUserURL);
+
+    request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
+
+    QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
+    QNetworkReply* requestReply = networkAccessManager.post(request, formData);
+    connect(requestReply, &QNetworkReply::finished, this, &DomainGatekeeper::requestDomainUserFinished);
+}
+
+void DomainGatekeeper::requestDomainUserFinished() {
+
+    QNetworkReply* requestReply = reinterpret_cast<QNetworkReply*>(sender());
+
+    QJsonDocument jsonResponse = QJsonDocument::fromJson(requestReply->readAll());
+    const QJsonObject& rootObject = jsonResponse.object();
+
+    auto httpStatus = requestReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
+
+    if (200 <= httpStatus && httpStatus < 300) {
+
+        QString username = rootObject.value("username").toString().toLower();
+        if (_inFlightDomainUserIdentityRequests.contains(username)) {
+            // Success! Verified user.
+            _verifiedDomainUserIdentities.insert(username, _inFlightDomainUserIdentityRequests.value(username));
+            _inFlightDomainUserIdentityRequests.remove(username);
+
+            // User user's WordPress roles as domain groups.
+            QStringList domainUserGroups;
+            auto userRoles = rootObject.value("roles").toArray();
+            foreach (auto role, userRoles) {
+                // Distinguish domain groups from metaverse groups by adding a leading special character.
+                domainUserGroups.append(DOMAIN_GROUP_CHAR + role.toString().toLower());
+            }
+            _domainGroupMemberships[username] = domainUserGroups;
+
+        } else {
+            // Failure.
+            qDebug() << "Unexpected username in response for user details -" << username;
+        }
+
+    } else {
+        // Failure.
+        qDebug() << "Error in response for user details -" << httpStatus << requestReply->error() 
+            << "-" << rootObject["error"].toString() << rootObject["error_description"].toString();
+
+        _inFlightDomainUserIdentityRequests.clear();
+    }
+}
diff --git a/domain-server/src/DomainGatekeeper.h b/domain-server/src/DomainGatekeeper.h
index 92b400882e..cb42baa7e3 100644
--- a/domain-server/src/DomainGatekeeper.h
+++ b/domain-server/src/DomainGatekeeper.h
@@ -4,6 +4,7 @@
 //
 //  Created by Stephen Birarda on 2015-08-24.
 //  Copyright 2015 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -29,6 +30,8 @@
 #include "NodeConnectionData.h"
 #include "PendingAssignedNodeData.h"
 
+const QString DOMAIN_GROUP_CHAR = "@";
+
 class DomainServer;
 
 class DomainGatekeeper : public QObject {
@@ -71,16 +74,28 @@ public slots:
 
 private slots:
     void handlePeerPingTimeout();
+
+    // Login and groups for domain, separate from metaverse.
+    void requestDomainUserFinished();
+
 private:
     SharedNodePointer processAssignmentConnectRequest(const NodeConnectionData& nodeConnection,
                                                       const PendingAssignedNodeData& pendingAssignment);
     SharedNodePointer processAgentConnectRequest(const NodeConnectionData& nodeConnection,
                                                  const QString& username,
-                                                 const QByteArray& usernameSignature);
+                                                 const QByteArray& usernameSignature,
+                                                 const QString& domainUsername,
+                                                 const QString& domainAccessToken,
+                                                 const QString& domainRefreshToken);
     SharedNodePointer addVerifiedNodeFromConnectRequest(const NodeConnectionData& nodeConnection);
     
     bool verifyUserSignature(const QString& username, const QByteArray& usernameSignature,
                              const HifiSockAddr& senderSockAddr);
+    
+    bool needToVerifyDomainUserIdentity(const QString& username, const QString& accessToken, const QString& refreshToken);
+    bool verifyDomainUserIdentity(const QString& username, const QString& accessToken, const QString& refreshToken,
+                                  const HifiSockAddr& senderSockAddr);
+
     bool isWithinMaxCapacity();
     
     bool shouldAllowConnectionFromNode(const QString& username, const QByteArray& usernameSignature,
@@ -120,8 +135,9 @@ private:
     QSet<QString> _domainOwnerFriends; // keep track of friends of the domain owner
     QSet<QString> _inFlightGroupMembershipsRequests; // keep track of which we've already asked for
 
-    NodePermissions setPermissionsForUser(bool isLocalUser, QString verifiedUsername, const QHostAddress& senderAddress, 
-                                          const QString& hardwareAddress, const QUuid& machineFingerprint);
+    NodePermissions setPermissionsForUser(bool isLocalUser, QString verifiedUsername, QString verifiedDomainUsername,
+                                          const QHostAddress& senderAddress, const QString& hardwareAddress, 
+                                          const QUuid& machineFingerprint);
 
     void getGroupMemberships(const QString& username);
     // void getIsGroupMember(const QString& username, const QUuid groupID);
@@ -133,9 +149,18 @@ private:
     using LocalIDs = std::unordered_set<Node::LocalID>;
     LocalIDs _localIDs;
     UUIDToLocalID _uuidToLocalID;
-
     Node::LocalID _currentLocalID;
     Node::LocalID _idIncrement;
+
+    // Login and groups for domain, separate from metaverse.
+    bool domainHasLogin();
+    void requestDomainUser(const QString& username, const QString& accessToken, const QString& refreshToken);
+    
+    typedef QHash<QString, QPair<QString, QString>> DomainUserIdentities; // <domainUserName, <access_token, refresh_token>>
+    DomainUserIdentities _inFlightDomainUserIdentityRequests;  // Domain user identity requests currently in progress.
+    DomainUserIdentities _verifiedDomainUserIdentities;  // Verified domain users.
+
+    QHash<QString, QStringList> _domainGroupMemberships;  // <domainUserName, [domainGroupName]>
 };
 
 
diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp
index d7b813dd7d..ec0a8ff45d 100644
--- a/domain-server/src/DomainServer.cpp
+++ b/domain-server/src/DomainServer.cpp
@@ -121,7 +121,7 @@ bool DomainServer::forwardMetaverseAPIRequest(HTTPConnection* connection,
     QUrl url{ MetaverseAPI::getCurrentMetaverseServerURL().toString() + metaversePath };
 
     QNetworkRequest req(url);
-    req.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+    req.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
     req.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
 
     if (accessTokenVariant.isValid()) {
@@ -2470,7 +2470,7 @@ bool DomainServer::handleHTTPRequest(HTTPConnection* connection, const QUrl& url
             url.setQuery("access_token=" + accessTokenVariant.toString());
 
             QNetworkRequest req(url);
-            req.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+            req.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
             req.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
             QNetworkReply* reply = NetworkAccessManager::getInstance().put(req, doc.toJson());
 
@@ -2571,7 +2571,7 @@ bool DomainServer::handleHTTPSRequest(HTTPSConnection* connection, const QUrl &u
 
             QNetworkRequest tokenRequest(tokenRequestUrl);
             tokenRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-            tokenRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+            tokenRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
             tokenRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
 
             QNetworkReply* tokenReply = NetworkAccessManager::getInstance().post(tokenRequest, tokenPostBody.toLocal8Bit());
@@ -2883,7 +2883,7 @@ QNetworkReply* DomainServer::profileRequestGivenTokenReply(QNetworkReply* tokenR
 
     QNetworkRequest profileRequest(profileURL);
     profileRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-    profileRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+    profileRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
     return NetworkAccessManager::getInstance().get(profileRequest);
 }
 
diff --git a/domain-server/src/DomainServerSettingsManager.cpp b/domain-server/src/DomainServerSettingsManager.cpp
index 73d78a5c70..95bf4adc65 100644
--- a/domain-server/src/DomainServerSettingsManager.cpp
+++ b/domain-server/src/DomainServerSettingsManager.cpp
@@ -1966,6 +1966,10 @@ void DomainServerSettingsManager::apiRefreshGroupInformation() {
     QStringList groupNames = getAllKnownGroupNames();
     foreach (QString groupName, groupNames) {
         QString lowerGroupName = groupName.toLower();
+        if (lowerGroupName.startsWith(DOMAIN_GROUP_CHAR)) {
+            // Ignore domain groups. (Assumption: metaverse group names can't start with a "@".)
+            return;
+        }
         if (_groupIDs.contains(lowerGroupName)) {
             // we already know about this one.  recall setGroupID in case the group has been
             // added to another section (the same group is found in both groups and blacklists).
@@ -2185,6 +2189,24 @@ QList<QUuid> DomainServerSettingsManager::getBlacklistGroupIDs() {
     return result.toList();
 }
 
+QStringList DomainServerSettingsManager::getDomainServerGroupNames() {
+    // All names as listed in the domain server settings; both metaverse groups and domain groups
+    QSet<QString> result;
+    foreach(NodePermissionsKey groupKey, _groupPermissions.keys()) {
+        result += _groupPermissions[groupKey]->getID();
+    }
+    return result.toList();
+}
+
+QStringList DomainServerSettingsManager::getDomainServerBlacklistGroupNames() {
+    // All names as listed in the domain server settings; not necessarily mnetaverse groups.
+    QSet<QString> result;
+    foreach (NodePermissionsKey groupKey, _groupForbiddens.keys()) {
+        result += _groupForbiddens[groupKey]->getID();
+    }
+    return result.toList();
+}
+
 void DomainServerSettingsManager::debugDumpGroupsState() {
     qDebug() << "--------- GROUPS ---------";
 
diff --git a/domain-server/src/DomainServerSettingsManager.h b/domain-server/src/DomainServerSettingsManager.h
index e28b9f6cd1..294e441ba4 100644
--- a/domain-server/src/DomainServerSettingsManager.h
+++ b/domain-server/src/DomainServerSettingsManager.h
@@ -19,11 +19,11 @@
 
 #include <HifiConfigVariantMap.h>
 #include <HTTPManager.h>
-
-#include <ReceivedMessage.h>
-#include "NodePermissions.h"
-
 #include <Node.h>
+#include <ReceivedMessage.h>
+
+#include "DomainGatekeeper.h"
+#include "NodePermissions.h"
 
 const QString SETTINGS_PATHS_KEY = "paths";
 
@@ -105,6 +105,9 @@ public:
     QList<QUuid> getGroupIDs();
     QList<QUuid> getBlacklistGroupIDs();
 
+    QStringList getDomainServerGroupNames();
+    QStringList getDomainServerBlacklistGroupNames();
+
     // these are used to locally cache the result of calling "api/v1/groups/.../is_member/..." on metaverse's api
     void clearGroupMemberships(const QString& name) { _groupMembership[name.toLower()].clear(); }
     void recordGroupMembership(const QString& name, const QUuid groupID, QUuid rankID);
diff --git a/hifi_android.py b/hifi_android.py
index 0c2ea07cc7..a8fec01035 100644
--- a/hifi_android.py
+++ b/hifi_android.py
@@ -10,87 +10,74 @@ import zipfile
 
 print = functools.partial(print, flush=True)
 
-ANDROID_PACKAGE_URL = 'https://hifi-public.s3.amazonaws.com/dependencies/android/'
+ANDROID_PACKAGE_URL = 'https://content.vircadia.com/eu-c-1/vircadia-public/dependencies/android/'
 
 ANDROID_PACKAGES = {
     'qt' : {
         'file': 'qt-5.11.1_linux_armv8-libcpp_openssl_patched.tgz',
-        'versionId': '3S97HBM5G5Xw9EfE52sikmgdN3t6C2MN',
         'checksum': 'aa449d4bfa963f3bc9a9dfe558ba29df',
     },
     'bullet': {
         'file': 'bullet-2.88_armv8-libcpp.tgz',
-        'versionId': 'S8YaoED0Cl8sSb8fSV7Q2G1lQJSNDxqg',
         'checksum': '81642779ccb110f8c7338e8739ac38a0',
     },            
     'draco': {
         'file': 'draco_armv8-libcpp.tgz',
-        'versionId': '3.B.uBj31kWlgND3_R2xwQzT_TP6Dz_8',
         'checksum': '617a80d213a5ec69fbfa21a1f2f738cd',
     },
     'glad': {
         'file': 'glad_armv8-libcpp.zip',
-        'versionId': 'r5Zran.JSCtvrrB6Q4KaqfIoALPw3lYY',
         'checksum': 'a8ee8584cf1ccd34766c7ddd9d5e5449',
     },
     'gvr': {
         'file': 'gvrsdk_v1.101.0.tgz',
-        'versionId': 'nqBV_j81Uc31rC7bKIrlya_Hah4v3y5r',
         'checksum': '57fd02baa069176ba18597a29b6b4fc7',
     },
     'nvtt': {
         'file': 'nvtt_armv8-libcpp.zip',
-        'versionId': 'lmkBVR5t4UF1UUwMwEirnk9H_8Nt90IO',
         'checksum': 'eb46d0b683e66987190ed124aabf8910',
         'sharedLibFolder': 'lib',
         'includeLibs': ['libnvtt.so', 'libnvmath.so', 'libnvimage.so', 'libnvcore.so']
     },
     'oculus_1.22': {
         'file': 'ovr_sdk_mobile_1.22.zip',
-        'versionId': 'InhomR5gwkzyiLAelH3X9k4nvV3iIpA_',
         'checksum': '1ac3c5b0521e5406f287f351015daff8',
         'sharedLibFolder': 'VrApi/Libs/Android/arm64-v8a/Release',
         'includeLibs': ['libvrapi.so']
     },
     'oculusPlatform': {
         'file': 'OVRPlatformSDK_v1.34.0.zip',
-        'versionId': 'vbRUkkyzUAXfTGSEtuiUr_7.Fm5h5BZk',
         'checksum': '16e4c5f39520f122bc49cb6d5bb88289',
         'sharedLibFolder': 'Android/libs/arm64-v8a',
         'includeLibs': ['libovrplatformloader.so']
     },
     'openssl': {
         'file': 'openssl-1.1.0g_armv8.tgz',
-        'versionId': 'AiiPjmgUZTgNj7YV1EEx2lL47aDvvvAW',
         'checksum': 'cabb681fbccd79594f65fcc266e02f32'
     },
     'polyvox': {
         'file': 'polyvox_armv8-libcpp.tgz',
-        'versionId': 'A2kbKiNhpIenGq23bKRRzg7IMAI5BI92',
         'checksum': 'dba88b3a098747af4bb169e9eb9af57e',
         'sharedLibFolder': 'lib',
         'includeLibs': ['Release/libPolyVoxCore.so', 'libPolyVoxUtil.so'],
     },
     'tbb': {
         'file': 'tbb-2018_U1_armv8_libcpp.tgz',
-        'versionId': 'mrRbWnv4O4evcM1quRH43RJqimlRtaKB',
         'checksum': '20768f298f53b195e71b414b0ae240c4',
         'sharedLibFolder': 'lib/release',
         'includeLibs': ['libtbb.so', 'libtbbmalloc.so'],
     },
     'hifiAC': {
-        'baseUrl': 'http://s3.amazonaws.com/hifi-public/dependencies/',
+        'baseUrl': 'https://content.vircadia.com/eu-c-1/vircadia-public/dependencies/',
         'file': 'codecSDK-android_armv8-2.0.zip',
         'checksum': '1cbef929675818fc64c4101b72f84a6a'
     },
     'etc2comp': {
         'file': 'etc2comp-patched-armv8-libcpp.tgz',
-        'versionId': 'bHhGECRAQR1vkpshBcK6ByNc1BQIM8gU',
         'checksum': '14b02795d774457a33bbc60e00a786bc'
     },
     'breakpad': {
         'file': 'breakpad.tgz',
-        'versionId': '8VrYXz7oyc.QBxNia0BVJOUBvrFO61jI',
         'checksum': 'ddcb23df336b08017042ba4786db1d9e',
         'sharedLibFolder': 'lib',
         'includeLibs': {'libbreakpad_client.a'}
@@ -105,14 +92,12 @@ ANDROID_PLATFORM_PACKAGES = {
     'Darwin' : {
         'qt': {
             'file': 'qt-5.11.1_osx_armv8-libcpp_openssl_patched.tgz',
-            'versionId': 'OxBD7iKINv1HbyOXmAmDrBb8AF3N.Kup',
             'checksum': 'c83cc477c08a892e00c71764dca051a0'
         },
     },
     'Windows' : {
         'qt': {
             'file': 'qt-5.11.1_win_armv8-libcpp_openssl_patched.tgz',
-            'versionId': 'JfWM0P_Mz5Qp0LwpzhrsRwN3fqlLSFeT',
             'checksum': '0582191cc55431aa4f660848a542883e'
         },
     }
diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt
index 1a0e279674..608bbb19cc 100644
--- a/interface/CMakeLists.txt
+++ b/interface/CMakeLists.txt
@@ -121,14 +121,14 @@ if (APPLE)
   # configure CMake to use a custom Info.plist
   set_target_properties(${this_target} PROPERTIES MACOSX_BUNDLE_INFO_PLIST MacOSXBundleInfo.plist.in)
 
-  set(MACOSX_BUNDLE_BUNDLE_NAME "High Fidelity")
+  set(MACOSX_BUNDLE_BUNDLE_NAME "Vircadia")
   if (PRODUCTION_BUILD)
-    set(MACOSX_BUNDLE_GUI_IDENTIFIER com.highfidelity.interface)
+    set(MACOSX_BUNDLE_GUI_IDENTIFIER com.vircadia.interface)
   else ()
     if (DEV_BUILD)
-      set(MACOSX_BUNDLE_GUI_IDENTIFIER com.highfidelity.interface-dev)
+      set(MACOSX_BUNDLE_GUI_IDENTIFIER com.vircadia.interface-dev)
     elseif (PR_BUILD)
-      set(MACOSX_BUNDLE_GUI_IDENTIFIER com.highfidelity.interface-pr)
+      set(MACOSX_BUNDLE_GUI_IDENTIFIER com.vircadia.interface-pr)
     endif ()
   endif ()
 
diff --git a/interface/resources/qml/ConnectionFailureDialog.qml b/interface/resources/qml/ConnectionFailureDialog.qml
index 0d5bdfd38d..ab1e7a096c 100644
--- a/interface/resources/qml/ConnectionFailureDialog.qml
+++ b/interface/resources/qml/ConnectionFailureDialog.qml
@@ -7,7 +7,7 @@ MessageDialog {
     objectName: "ConnectionFailureDialog"
 
     title: "No Connection"
-    text: "Unable to connect to this domain. Click the 'GO TO' button on the toolbar to visit another domain."
+    text: "Unable to connect to this domain. Click the 'EXPLORE' button on the toolbar to visit another domain."
     buttons: OriginalDialogs.StandardButton.Ok
     icon: OriginalDialogs.StandardIcon.Warning
     defaultButton: OriginalDialogs.StandardButton.NoButton;
diff --git a/interface/resources/qml/LoginDialog/LinkAccountBody.qml b/interface/resources/qml/LoginDialog/LinkAccountBody.qml
index 571b7e074c..694fd6158f 100644
--- a/interface/resources/qml/LoginDialog/LinkAccountBody.qml
+++ b/interface/resources/qml/LoginDialog/LinkAccountBody.qml
@@ -45,6 +45,9 @@ Item {
     property bool lostFocus: false
 
     readonly property bool loginDialogPoppedUp: loginDialog.getLoginDialogPoppedUp()
+    // If not logging into domain, then we must be logging into the metaverse...
+    readonly property bool isLoggingInToDomain: loginDialog.getDomainLoginRequested()
+    readonly property string domainLoginDomain: loginDialog.getDomainLoginDomain()
 
     QtObject {
         id: d
@@ -71,7 +74,12 @@ Item {
     }
 
     function login() {
-        loginDialog.login(emailField.text, passwordField.text);
+        if (!isLoggingInToDomain) {
+            loginDialog.login(emailField.text, passwordField.text);
+        } else {
+            loginDialog.loginDomain(emailField.text, passwordField.text);
+        }
+        
         if (linkAccountBody.loginDialogPoppedUp) {
             var data;
             if (linkAccountBody.linkSteam) {
@@ -87,7 +95,7 @@ Item {
         }
         bodyLoader.setSource("LoggingInBody.qml", { "loginDialog": loginDialog, "root": root, "bodyLoader": bodyLoader, "withSteam": linkAccountBody.withSteam,
             "withOculus": linkAccountBody.withOculus, "linkSteam": linkAccountBody.linkSteam, "linkOculus": linkAccountBody.linkOculus,
-            "displayName":displayNameField.text });
+            "displayName":displayNameField.text, "isLoggingInToDomain": linkAccountBody.isLoggingInToDomain, "domainLoginDomain": linkAccountBody.domainLoginDomain });
     }
 
     function init() {
@@ -98,14 +106,22 @@ Item {
             loginErrorMessage.wrapMode = Text.WordWrap;
             errorContainer.height = (loginErrorMessageTextMetrics.width / displayNameField.width) * loginErrorMessageTextMetrics.height;
         }
+        var domainLoginText = "Log In to Domain\n" + domainLoginDomain;
+        loginDialogText.text = (!isLoggingInToDomain) ? "Log In to Metaverse" : domainLoginText;
         loginButton.text = (!linkAccountBody.linkSteam && !linkAccountBody.linkOculus) ? "Log In" : "Link Account";
+        loginButton.text = (!isLoggingInToDomain) ? "Log In to Metaverse" : "Log In to Domain";
         loginButton.color = hifi.buttons.blue;
         displayNameField.placeholderText = "Display Name (optional)";
         var savedDisplayName = Settings.getValue("Avatar/displayName", "");
         displayNameField.text = savedDisplayName;
-        emailField.placeholderText = "Username or Email";
-        var savedUsername = Settings.getValue("keepMeLoggedIn/savedUsername", "");
-        emailField.text = keepMeLoggedInCheckbox.checked ? savedUsername === "Unknown user" ? "" : savedUsername : "";
+        emailField.placeholderText = (!isLoggingInToDomain) ? "Username or Email" : "Username";
+        if (!isLoggingInToDomain) {
+            var savedUsername = Settings.getValue("keepMeLoggedIn/savedUsername", "");
+            emailField.text = keepMeLoggedInCheckbox.checked ? savedUsername === "Unknown user" ? "" : savedUsername : "";
+        } else {
+            // ####### TODO
+        }
+
         if (linkAccountBody.linkSteam || linkAccountBody.linkOculus) {
             loginButton.width = (passwordField.width - hifi.dimensions.contentSpacing.x) / 2;
             loginButton.anchors.right = displayNameField.right;
@@ -131,7 +147,7 @@ Item {
         Item {
             id: loginContainer
             width: displayNameField.width
-            height: errorContainer.height + displayNameField.height + emailField.height + passwordField.height + 5.5 * hifi.dimensions.contentSpacing.y +
+            height: errorContainer.height + loginDialogTextContainer.height + displayNameField.height + emailField.height + passwordField.height + 5.5 * hifi.dimensions.contentSpacing.y +
                 keepMeLoggedInCheckbox.height + loginButton.height + cantAccessTextMetrics.height + continueButton.height
             anchors {
                 top: parent.top
@@ -145,9 +161,10 @@ Item {
                 width: parent.width
                 height: loginErrorMessageTextMetrics.height
                 anchors {
-                    bottom: displayNameField.top;
-                    bottomMargin: hifi.dimensions.contentSpacing.y;
-                    left: displayNameField.left;
+                    bottom: loginDialogTextContainer.top
+                    bottomMargin: hifi.dimensions.contentSpacing.y
+                    left: loginDialogTextContainer.left
+                    right: loginDialogTextContainer.right
                 }
                 TextMetrics {
                     id: loginErrorMessageTextMetrics
@@ -160,12 +177,45 @@ Item {
                     font.family: linkAccountBody.fontFamily
                     font.pixelSize: linkAccountBody.textFieldFontSize
                     font.bold: linkAccountBody.fontBold
+                    anchors {
+                        top: parent.top
+                        left: parent.left
+                        right: parent.right
+                    }
                     verticalAlignment: Text.AlignVCenter
                     horizontalAlignment: Text.AlignHCenter
                     text: ""
                     visible: false
                 }
             }
+            
+            Item {
+                id: loginDialogTextContainer
+                height: 56
+                anchors {
+                    top: parent.top
+                    left: parent.left
+                    right: parent.right
+                    topMargin: 1.5 * hifi.dimensions.contentSpacing.y
+                }
+            
+                Text {
+                    id: loginDialogText
+                    text: qsTr("Log In")
+                    lineHeight: 1
+                    color: "white"
+                    anchors {
+                        top: parent.top
+                        left: parent.left
+                        right: parent.right
+                    }
+                    font.family: linkAccountBody.fontFamily
+                    font.pixelSize: 24
+                    font.bold: linkAccountBody.fontBold
+                    verticalAlignment: Text.AlignVCenter
+                    horizontalAlignment: Text.AlignHCenter
+                }
+            }
 
             HifiControlsUit.TextField {
                 id: displayNameField
@@ -174,8 +224,8 @@ Item {
                 font.pixelSize: linkAccountBody.textFieldFontSize
                 styleRenderType: Text.QtRendering
                 anchors {
-                    top: parent.top
-                    topMargin: errorContainer.height
+                    top: loginDialogTextContainer.bottom
+                    topMargin: 1.5 * hifi.dimensions.contentSpacing.y
                 }
                 placeholderText: "Display Name (optional)"
                 activeFocusOnPress: true
@@ -193,7 +243,11 @@ Item {
                         case Qt.Key_Return:
                             event.accepted = true;
                             if (keepMeLoggedInCheckbox.checked) {
-                                Settings.setValue("keepMeLoggedIn/savedUsername", emailField.text);
+                                if (!isLoggingInToDomain) {
+                                    Settings.setValue("keepMeLoggedIn/savedUsername", emailField.text);
+                                } else {
+                                    // ####### TODO
+                                }
                             }
                             linkAccountBody.login();
                             break;
@@ -232,7 +286,11 @@ Item {
                         case Qt.Key_Return:
                             event.accepted = true;
                             if (keepMeLoggedInCheckbox.checked) {
-                                Settings.setValue("keepMeLoggedIn/savedUsername", emailField.text);
+                                if (!isLoggingInToDomain) {
+                                    Settings.setValue("keepMeLoggedIn/savedUsername", emailField.text);
+                                } else {
+                                    // ####### TODO
+                                }
                             }
                             linkAccountBody.login();
                             break;
@@ -312,7 +370,11 @@ Item {
                         case Qt.Key_Return:
                             event.accepted = true;
                             if (keepMeLoggedInCheckbox.checked) {
-                                Settings.setValue("keepMeLoggedIn/savedUsername", emailField.text);
+                                if (!isLoggingInToDomain) {
+                                    Settings.setValue("keepMeLoggedIn/savedUsername", emailField.text);
+                                } else {
+                                    // ####### TODO
+                                }
                             }
                             linkAccountBody.login();
                             break;
@@ -321,12 +383,13 @@ Item {
             }
             HifiControlsUit.CheckBox {
                 id: keepMeLoggedInCheckbox
-                checked: Settings.getValue("keepMeLoggedIn", false);
+                checked: !isLoggingInToDomain ? Settings.getValue("keepMeLoggedIn", false) : false;  // ####### TODO
                 text: qsTr("Keep Me Logged In");
                 boxSize: 18;
                 labelFontFamily: linkAccountBody.fontFamily
                 labelFontSize: 18;
                 color: hifi.colors.white;
+                visible: !isLoggingInToDomain
                 anchors {
                     top: passwordField.bottom;
                     topMargin: hifi.dimensions.contentSpacing.y;
@@ -334,14 +397,22 @@ Item {
                 }
                 onCheckedChanged: {
                     Settings.setValue("keepMeLoggedIn", checked);
-                    if (keepMeLoggedInCheckbox.checked) {
-                        Settings.setValue("keepMeLoggedIn/savedUsername", emailField.text);
+                    if (!isLoggingInToDomain) {
+                        if (keepMeLoggedInCheckbox.checked) {
+                            Settings.setValue("keepMeLoggedIn/savedUsername", emailField.text);
+                        } else {
+                            Settings.setValue("keepMeLoggedIn/savedUsername", "");
+                        }
                     } else {
-                        Settings.setValue("keepMeLoggedIn/savedUsername", "");
+                        // ####### TODO
                     }
                 }
                 Component.onCompleted: {
-                    keepMeLoggedInCheckbox.checked = !Account.loggedIn;
+                    if (!isLoggingInToDomain) {
+                        keepMeLoggedInCheckbox.checked = !Account.loggedIn;
+                    } else {
+                        // ####### TODO
+                    }
                 }
             }
             HifiControlsUit.Button {
@@ -393,7 +464,7 @@ Item {
             HifiStylesUit.ShortcutText {
                 id: cantAccessText
                 z: 10
-                visible: !linkAccountBody.linkSteam && !linkAccountBody.linkOculus
+                visible: !linkAccountBody.linkSteam && !linkAccountBody.linkOculus && !linkAccountBody.isLoggingInToDomain
                 anchors {
                     top: loginButton.bottom
                     topMargin: hifi.dimensions.contentSpacing.y
@@ -403,7 +474,7 @@ Item {
                 font.pixelSize: linkAccountBody.textFieldFontSize
                 font.bold: linkAccountBody.fontBold
 
-                text: "<a href='metaverse.vircadia.com/users/password/new'> Can't access your account?</a>"
+                text: "<a href='https://metaverse.vircadia.com/users/password/new'> Can't access your account?</a>"
 
                 verticalAlignment: Text.AlignVCenter
                 horizontalAlignment: Text.AlignHCenter
@@ -492,7 +563,7 @@ Item {
             id: signUpContainer
             width: loginContainer.width
             height: signUpTextMetrics.height
-            visible: !linkAccountBody.linkSteam && !linkAccountBody.linkOculus
+            visible: !linkAccountBody.linkSteam && !linkAccountBody.linkOculus && !linkAccountBody.isLoggingInToDomain
             anchors {
                 left: loginContainer.left
                 top: loginContainer.bottom
@@ -529,7 +600,7 @@ Item {
                      leftMargin: hifi.dimensions.contentSpacing.x
                 }
 
-                text: "<a href='metaverse.vircadia.com/users/register'>Sign Up</a>"
+                text: "<a href='https://metaverse.vircadia.com/users/register'>Sign Up</a>"
 
                 linkColor: hifi.colors.blueAccent
                 onLinkActivated: {
diff --git a/interface/resources/qml/LoginDialog/LoggingInBody.qml b/interface/resources/qml/LoginDialog/LoggingInBody.qml
index a0029dc40b..757c8b7449 100644
--- a/interface/resources/qml/LoginDialog/LoggingInBody.qml
+++ b/interface/resources/qml/LoginDialog/LoggingInBody.qml
@@ -3,6 +3,7 @@
 //
 //  Created by Wayne Chen on 10/18/18
 //  Copyright 2018 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -31,6 +32,8 @@ Item {
     property bool linkSteam: linkSteam
     property bool linkOculus: linkOculus
     property bool createOculus: createOculus
+    property bool isLoggingInToDomain: isLoggingInToDomain
+    property string domainLoginDomain: domainLoginDomain
     property string displayName: ""
 
     readonly property bool loginDialogPoppedUp: loginDialog.getLoginDialogPoppedUp()
@@ -106,6 +109,9 @@ Item {
             loggingInGlyph.visible = true;
             loggingInText.text = "Logging in to Oculus";
             loggingInText.x = loggingInHeader.width/2 - loggingInTextMetrics.width/2 + loggingInGlyphTextMetrics.width/2;
+        } else if (loggingInBody.isLoggingInToDomain) {
+            loggingInText.text = "Logging in to " + domainLoginDomain;
+            loggingInText.anchors.centerIn = loggingInHeader;
         } else {
             loggingInText.text = "Logging in";
             loggingInText.anchors.centerIn = loggingInHeader;
diff --git a/interface/resources/qml/controls/+webengine/FlickableWebViewCore.qml b/interface/resources/qml/controls/+webengine/FlickableWebViewCore.qml
index a36b6791a4..e9546748c0 100644
--- a/interface/resources/qml/controls/+webengine/FlickableWebViewCore.qml
+++ b/interface/resources/qml/controls/+webengine/FlickableWebViewCore.qml
@@ -137,7 +137,7 @@ Item {
             if (webViewCoreUserAgent !== undefined) {
                 webViewCore.profile.httpUserAgent = webViewCoreUserAgent
             } else {
-                webViewCore.profile.httpUserAgent += " (HighFidelityInterface)";
+                webViewCore.profile.httpUserAgent += " (VircadiaInterface)";
             }
             // Ensure the JS from the web-engine makes it to our logging
             webViewCore.javaScriptConsoleMessage.connect(function(level, message, lineNumber, sourceID) {
diff --git a/interface/resources/qml/dialogs/TabletConnectionFailureDialog.qml b/interface/resources/qml/dialogs/TabletConnectionFailureDialog.qml
index 544824135e..17292d2923 100644
--- a/interface/resources/qml/dialogs/TabletConnectionFailureDialog.qml
+++ b/interface/resources/qml/dialogs/TabletConnectionFailureDialog.qml
@@ -19,7 +19,7 @@ Item {
                                             buttons: OriginalDialogs.StandardButton.Ok,
                                             defaultButton: OriginalDialogs.StandardButton.NoButton,
                                             title: "No Connection",
-                                            text: "Unable to connect to this domain. Click the 'GO TO' button on the toolbar to visit another domain."
+                                            text: "Unable to connect to this domain. Click the 'EXPLORE' button on the toolbar to visit another domain."
                                         });
         object.selected.connect(function(button) {
             if (button === OriginalDialogs.StandardButton.Ok) {
diff --git a/interface/resources/qml/hifi/audio/Audio.qml b/interface/resources/qml/hifi/audio/Audio.qml
index 963a3246fc..31f3ee44df 100644
--- a/interface/resources/qml/hifi/audio/Audio.qml
+++ b/interface/resources/qml/hifi/audio/Audio.qml
@@ -6,6 +6,7 @@
 //
 //  Created by Vlad Stelmahovsky on 03/22/2017
 //  Copyright 2017 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -325,178 +326,14 @@ Rectangle {
                 size: 16;
 
                 text: (bar.currentIndex === 0) ? qsTr("Press and hold the button \"T\" to talk.") :
-                                qsTr("Press and hold grip triggers on both of your controllers to talk.");
-            }
-        }
-
-        Separator {
-            id: secondSeparator;
-            anchors.top: pttTextContainer.visible ? pttTextContainer.bottom : switchesContainer.bottom;
-            anchors.topMargin: 10;
-        }
-
-        Item {
-            id: inputDeviceHeader
-            x: margins.paddings;
-            width: parent.width - margins.paddings*2;
-            height: 36;
-            anchors.top: secondSeparator.bottom;
-            anchors.topMargin: 10;
-
-            HiFiGlyphs {
-                width: margins.sizeCheckBox;
-                text: hifi.glyphs.mic;
-                color: hifi.colors.white;
-                anchors.left: parent.left;
-                anchors.leftMargin: -size/4; //the glyph has empty space at left about 25%
-                anchors.verticalCenter: parent.verticalCenter;
-                size: 30;
-            }
-            RalewayRegular {
-                anchors.verticalCenter: parent.verticalCenter;
-                width: margins.sizeText + margins.sizeLevel;
-                anchors.left: parent.left;
-                anchors.leftMargin: margins.sizeCheckBox;
-                size: 22;
-                color: hifi.colors.white;
-                text: qsTr("Choose input device");
-            }
-        }
-
-        ListView {
-            id: inputView;
-            width: rightMostInputLevelPos;
-            anchors.top: inputDeviceHeader.bottom;
-            anchors.topMargin: 10;
-            x: margins.paddings
-            interactive: false;
-            height: contentHeight;
-            
-            clip: true;
-            model: AudioScriptingInterface.devices.input;
-            delegate: Item {
-                width: rightMostInputLevelPos - margins.paddings*2
-                height: ((type != "hmd" && bar.currentIndex === 0) || (type != "desktop" && bar.currentIndex === 1)) ?  
-                        (margins.sizeCheckBox > checkBoxInput.implicitHeight ? margins.sizeCheckBox + 4 : checkBoxInput.implicitHeight + 4) : 0
-                visible: (type != "hmd" && bar.currentIndex === 0) || (type != "desktop" && bar.currentIndex === 1) 
-                AudioControls.CheckBox {
-                    id: checkBoxInput
-                    anchors.left: parent.left
-                    spacing: margins.sizeCheckBox - boxSize
-                    anchors.verticalCenter: parent.verticalCenter
-                    width: parent.width - inputLevel.width
-                    clip: true
-                    checkable: !checked
-                    checked: bar.currentIndex === 0 ? selectedDesktop : selectedHMD;
-                    boxSize: margins.sizeCheckBox / 2
-                    isRound: true
-                    text: devicename
-                    fontSize: 16;
-                    onPressed: {
-                        if (!checked) {
-                            stereoInput.checked = false;
-                            AudioScriptingInterface.setStereoInput(false); // the next selected audio device might not support stereo
-                            AudioScriptingInterface.setInputDevice(info, bar.currentIndex === 1);
-                        }
-                    }
-                }
-                AudioControls.InputPeak {
-                    id: inputLevel
-                    anchors.right: parent.right
-                    peak: model.peak;
-                    anchors.verticalCenter: parent.verticalCenter
-                    visible: ((bar.currentIndex === 1 && isVR) ||
-                             (bar.currentIndex === 0 && !isVR)) &&
-                             AudioScriptingInterface.devices.input.peakValuesAvailable;
-                }
-            }
-        }
-
-        AudioControls.LoopbackAudio {
-            id: loopbackAudio
-            x: margins.paddings
-            anchors.top: inputView.bottom;
-            anchors.topMargin: 10;
-
-            visible: (bar.currentIndex === 1 && isVR) ||
-                (bar.currentIndex === 0 && !isVR);
-            anchors { left: parent.left; leftMargin: margins.paddings }
-        }
-
-        Separator {
-            id: thirdSeparator;
-            anchors.top: loopbackAudio.visible ? loopbackAudio.bottom : inputView.bottom;
-            anchors.topMargin: 10;
-        }
-
-        Item {
-            id: outputDeviceHeader;
-            anchors.topMargin: 10;
-            anchors.top: thirdSeparator.bottom;
-            x: margins.paddings;
-            width: parent.width - margins.paddings*2
-            height: 36
-
-            HiFiGlyphs {
-                anchors.left: parent.left
-                anchors.leftMargin: -size/4 //the glyph has empty space at left about 25%
-                anchors.verticalCenter: parent.verticalCenter;
-                width: margins.sizeCheckBox
-                text: hifi.glyphs.unmuted;
-                color: hifi.colors.white;
-                size: 36;
-            }
-
-            RalewayRegular {
-                width: margins.sizeText + margins.sizeLevel
-                anchors.left: parent.left
-                anchors.leftMargin: margins.sizeCheckBox
-                anchors.verticalCenter: parent.verticalCenter;
-                size: 22;
-                color: hifi.colors.white;
-                text: qsTr("Choose output device");
-            }
-        }
-
-        ListView {
-            id: outputView
-            width: parent.width - margins.paddings*2
-            x: margins.paddings;
-            interactive: false;
-            height: contentHeight;
-            anchors.top: outputDeviceHeader.bottom;
-            anchors.topMargin: 10;
-            clip: true;
-            model: AudioScriptingInterface.devices.output;
-            delegate: Item {
-                width: rightMostInputLevelPos
-                height: ((type != "hmd" && bar.currentIndex === 0) || (type != "desktop" && bar.currentIndex === 1)) ? 
-                        (margins.sizeCheckBox > checkBoxOutput.implicitHeight ? margins.sizeCheckBox + 4 : checkBoxOutput.implicitHeight + 4) : 0
-                visible: (type != "hmd" && bar.currentIndex === 0) || (type != "desktop" && bar.currentIndex === 1) 
-
-                AudioControls.CheckBox {
-                    id: checkBoxOutput
-                    width: parent.width
-                    spacing: margins.sizeCheckBox - boxSize
-                    boxSize: margins.sizeCheckBox / 2
-                    isRound: true
-                    checked: bar.currentIndex === 0 ? selectedDesktop :  selectedHMD;
-                    checkable: !checked
-                    text: devicename
-                    fontSize: 16
-                    onPressed: {
-                        if (!checked) {
-                            AudioScriptingInterface.setOutputDevice(info, bar.currentIndex === 1);
-                        }
-                    }
-                }
+                                qsTr("Press and hold grip triggers on both controllers to talk.");
             }
         }
 
         Item {
             id: avatarGainContainer
             x: margins.paddings;
-            anchors.top: outputView.bottom;
+            anchors.top: pttTextContainer.bottom;
             anchors.topMargin: 10;
             width: parent.width - margins.paddings*2
             height: avatarGainSliderTextMetrics.height
@@ -677,12 +514,174 @@ Rectangle {
             }
         }
 
-        AudioControls.PlaySampleSound {
-            id: playSampleSound
-            x: margins.paddings
+        Separator {
+            id: secondSeparator;
             anchors.top: systemInjectorGainContainer.bottom;
             anchors.topMargin: 10;
         }
-    }
 
-}
+        Item {
+            id: inputDeviceHeader
+            x: margins.paddings;
+            width: parent.width - margins.paddings*2;
+            height: 36;
+            anchors.top: secondSeparator.bottom;
+            anchors.topMargin: 10;
+
+            HiFiGlyphs {
+                width: margins.sizeCheckBox;
+                text: hifi.glyphs.mic;
+                color: hifi.colors.white;
+                anchors.left: parent.left;
+                anchors.leftMargin: -size/4; //the glyph has empty space at left about 25%
+                anchors.verticalCenter: parent.verticalCenter;
+                size: 30;
+            }
+
+            RalewayRegular {
+                anchors.verticalCenter: parent.verticalCenter;
+                width: margins.sizeText + margins.sizeLevel;
+                anchors.left: parent.left;
+                anchors.leftMargin: margins.sizeCheckBox;
+                size: 22;
+                color: hifi.colors.white;
+                text: qsTr("Choose input device");
+            }
+        }
+
+        AudioControls.LoopbackAudio {
+            id: loopbackAudio
+            x: margins.paddings
+            anchors.top: inputDeviceHeader.bottom;
+            anchors.topMargin: 10;
+            visible: (bar.currentIndex === 1 && isVR) ||
+                (bar.currentIndex === 0 && !isVR);
+            anchors { left: parent.left; leftMargin: margins.paddings }
+        }
+
+        ListView {
+            id: inputView;
+            width: rightMostInputLevelPos;
+            anchors.top: loopbackAudio.visible ? loopbackAudio.bottom : inputDeviceHeader.bottom;
+            anchors.topMargin: 10;
+            x: margins.paddings
+            interactive: false;
+            height: contentHeight;
+
+            clip: true;
+            model: AudioScriptingInterface.devices.input;
+            delegate: Item {
+                width: rightMostInputLevelPos - margins.paddings*2
+                height: ((type != "hmd" && bar.currentIndex === 0) || (type != "desktop" && bar.currentIndex === 1)) ?
+                        (margins.sizeCheckBox > checkBoxInput.implicitHeight ? margins.sizeCheckBox + 4 : checkBoxInput.implicitHeight + 4) : 0
+                visible: (type != "hmd" && bar.currentIndex === 0) || (type != "desktop" && bar.currentIndex === 1)
+                AudioControls.CheckBox {
+                    id: checkBoxInput
+                    anchors.left: parent.left
+                    spacing: margins.sizeCheckBox - boxSize
+                    anchors.verticalCenter: parent.verticalCenter
+                    width: parent.width - inputLevel.width
+                    clip: true
+                    checkable: !checked
+                    checked: bar.currentIndex === 0 ? selectedDesktop : selectedHMD;
+                    boxSize: margins.sizeCheckBox / 2
+                    isRound: true
+                    text: devicename
+                    fontSize: 16;
+                    onPressed: {
+                        if (!checked) {
+                            stereoInput.checked = false;
+                            AudioScriptingInterface.setStereoInput(false); // the next selected audio device might not support stereo
+                            AudioScriptingInterface.setInputDevice(info, bar.currentIndex === 1);
+                        }
+                    }
+                }
+                AudioControls.InputPeak {
+                id: inputLevel
+                anchors.right: parent.right
+                peak: model.peak;
+                anchors.verticalCenter: parent.verticalCenter
+                visible: ((bar.currentIndex === 1 && isVR) ||
+                         (bar.currentIndex === 0 && !isVR)) &&
+                         AudioScriptingInterface.devices.input.peakValuesAvailable;
+                }
+            }
+        }
+
+        Separator {
+            id: thirdSeparator;
+            anchors.top: inputView.bottom;
+            anchors.topMargin: 10;
+        }
+
+        Item {
+            id: outputDeviceHeader;
+            anchors.topMargin: 10;
+            anchors.top: thirdSeparator.bottom;
+            x: margins.paddings;
+            width: parent.width - margins.paddings*2
+            height: 36
+
+            HiFiGlyphs {
+                anchors.left: parent.left
+                anchors.leftMargin: -size/4 //the glyph has empty space at left about 25%
+                anchors.verticalCenter: parent.verticalCenter;
+                width: margins.sizeCheckBox
+                text: hifi.glyphs.unmuted;
+                color: hifi.colors.white;
+                size: 36;
+            }
+
+            RalewayRegular {
+                width: margins.sizeText + margins.sizeLevel
+                anchors.left: parent.left
+                anchors.leftMargin: margins.sizeCheckBox
+                anchors.verticalCenter: parent.verticalCenter;
+                size: 22;
+                color: hifi.colors.white;
+                text: qsTr("Choose output device");
+            }
+        }
+
+        AudioControls.PlaySampleSound {
+            id: playSampleSound
+            x: margins.paddings
+            anchors.top: outputDeviceHeader.bottom;
+            anchors.topMargin: 10;
+        }
+
+        ListView {
+            id: outputView
+            width: parent.width - margins.paddings*2
+            x: margins.paddings;
+            interactive: false;
+            height: contentHeight + 10;
+            anchors.top: playSampleSound.bottom;
+            anchors.topMargin: 10;
+            clip: true;
+            model: AudioScriptingInterface.devices.output;
+            delegate: Item {
+                width: rightMostInputLevelPos
+                height: ((type != "hmd" && bar.currentIndex === 0) || (type != "desktop" && bar.currentIndex === 1)) ?
+                        (margins.sizeCheckBox > checkBoxOutput.implicitHeight ? margins.sizeCheckBox + 4 : checkBoxOutput.implicitHeight + 4) : 0
+                visible: (type != "hmd" && bar.currentIndex === 0) || (type != "desktop" && bar.currentIndex === 1)
+                AudioControls.CheckBox {
+                    id: checkBoxOutput
+                    width: parent.width
+                    spacing: margins.sizeCheckBox - boxSize
+                    boxSize: margins.sizeCheckBox / 2
+                    isRound: true
+                    checked: bar.currentIndex === 0 ? selectedDesktop :  selectedHMD;
+                    checkable: !checked
+                    text: devicename
+                    fontSize: 16
+                    onPressed: {
+                        if (!checked) {
+                            AudioScriptingInterface.setOutputDevice(info, bar.currentIndex === 1);
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/interface/resources/qml/hifi/dialogs/graphics/GraphicsSettings.qml b/interface/resources/qml/hifi/dialogs/graphics/GraphicsSettings.qml
index 3b6502cc98..6e345caaf7 100644
--- a/interface/resources/qml/hifi/dialogs/graphics/GraphicsSettings.qml
+++ b/interface/resources/qml/hifi/dialogs/graphics/GraphicsSettings.qml
@@ -336,8 +336,8 @@ Item {
                         height: parent.height
                         colorScheme: hifi.colorSchemes.dark
                         minimumValue: 0.25
-                        maximumValue: 1.0
-                        stepSize: 0.02
+                        maximumValue: 2.0
+                        stepSize: 0.05
                         value: Render.viewportResolutionScale
                         live: true
 
diff --git a/interface/resources/qml/hifi/tablet/ControllerSettings.qml b/interface/resources/qml/hifi/tablet/ControllerSettings.qml
index 5db784789e..ea694ae2d7 100644
--- a/interface/resources/qml/hifi/tablet/ControllerSettings.qml
+++ b/interface/resources/qml/hifi/tablet/ControllerSettings.qml
@@ -1,6 +1,7 @@
 //
 //  Created by Dante Ruiz on 6/1/17.
 //  Copyright 2017 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -96,7 +97,8 @@ Item {
 
                 HifiControls.ImageMessageBox {
                     id: imageMessageBox
-                    anchors.fill: parent
+                    anchors.top: parent.top
+                    anchors.topMargin: 444
                     z: 2000
                     imageWidth: 442
                     imageHeight: 670
@@ -179,7 +181,7 @@ Item {
                     HifiControls.CheckBox {
                         id: checkBox
                         colorScheme: hifi.colorSchemes.dark
-                        text: "show all input devices"
+                        text: "Show all input devices"
 
                         onClicked: {
                             box.model = inputPlugins();
diff --git a/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml b/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml
index a9d67fec35..f1275a39fb 100644
--- a/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml
+++ b/interface/resources/qml/hifi/tablet/OpenVrConfiguration.qml
@@ -1,6 +1,7 @@
 //
 //  Created by Dante Ruiz on 6/5/17.
 //  Copyright 2017 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -71,6 +72,7 @@ Flickable {
 
             property int state: buttonState.disabled
             property var lastConfiguration:  null
+            property bool isConfiguring: false
 
             HifiConstants { id: hifi }
 
@@ -360,9 +362,9 @@ Flickable {
             RalewayRegular {
                 id: info
 
-                text: "See Recommended Tracker Placement"
+                text: "See Recommended Placement"
                 color: hifi.colors.blueHighlight
-                size: 10
+                size: 12
                 anchors {
                     left: additional.right
                     leftMargin: 10
@@ -415,7 +417,6 @@ Flickable {
                     id: feetBox
                     width: 15
                     height: 15
-                    boxRadius: 7
 
                     onClicked: {
                         if (!checked) {
@@ -446,7 +447,6 @@ Flickable {
                     id: hipBox
                     width: 15
                     height: 15
-                    boxRadius: 7
 
                     onClicked: {
                         if (checked) {
@@ -486,7 +486,6 @@ Flickable {
                     id: chestBox
                     width: 15
                     height: 15
-                    boxRadius: 7
 
                     onClicked: {
                         if (checked) {
@@ -524,7 +523,6 @@ Flickable {
                     id: shoulderBox
                     width: 15
                     height: 15
-                    boxRadius: 7
 
                     onClicked: {
                         if (checked) {
@@ -823,7 +821,6 @@ Flickable {
                 id: viveInDesktop
                 width: 15
                 height: 15
-                boxRadius: 7
 
                 anchors.top: advanceSettings.bottom
                 anchors.topMargin: 5
@@ -840,9 +837,71 @@ Flickable {
                 }
             }
 
+
+            HifiControls.CheckBox {
+                id: eyeTracking
+                width: 15
+                height: 15
+
+                anchors.top: viveInDesktop.bottom
+                anchors.topMargin: 5
+                anchors.left: openVrConfiguration.left
+                anchors.leftMargin: leftMargin + 10
+
+                onClicked: {
+                    sendConfigurationSettings();
+                }
+            }
+
+            RalewayBold {
+                id: eyeTrackingLabel
+                size: 12
+                text: "Use eye tracking (if available)."
+                color: hifi.colors.lightGrayText
+                anchors {
+                    left: eyeTracking.right
+                    leftMargin: 5
+                    verticalCenter: eyeTracking.verticalCenter
+                }
+            }
+
+            RalewayRegular {
+                id: privacyPolicy
+                text: "Privacy Policy"
+                color: hifi.colors.blueHighlight
+                size: 12
+                anchors {
+                    left: eyeTrackingLabel.right
+                    leftMargin: 10
+                    verticalCenter: eyeTrackingLabel.verticalCenter
+                }
+
+                Rectangle {
+                    id: privacyPolicyUnderline
+                    color: hifi.colors.blueHighlight
+                    width: privacyPolicy.width
+                    height: 1
+                    anchors {
+                        top: privacyPolicy.bottom
+                        topMargin: 1
+                        left: privacyPolicy.left
+                    }
+                    visible: false
+                }
+
+                MouseArea {
+                    anchors.fill: parent;
+                    hoverEnabled: true
+                    onEntered: privacyPolicyUnderline.visible = true;
+                    onExited: privacyPolicyUnderline.visible = false;
+                    onClicked: HiFiAbout.openUrl("https://vircadia.com/privacy-policy");
+                }
+            }
+
+
             Row {
                 id: outOfRangeDataStrategyRow
-                anchors.top: viveInDesktop.bottom
+                anchors.top: eyeTracking.bottom
                 anchors.topMargin: 5
                 anchors.left: openVrConfiguration.left
                 anchors.leftMargin: leftMargin + 10
@@ -966,6 +1025,8 @@ Flickable {
             }
 
             function displayConfiguration() {
+                isConfiguring = true;
+
                 var settings = InputConfiguration.configurationSettings(openVrConfiguration.pluginName);
                 var configurationType = settings["trackerConfiguration"];
                 displayTrackerConfiguration(configurationType);
@@ -982,6 +1043,7 @@ Flickable {
                 var viveController = settings["handController"];
                 var desktopMode = settings["desktopMode"];
                 var hmdDesktopPosition = settings["hmdDesktopTracking"];
+                var eyeTrackingEnabled = settings["eyeTrackingEnabled"];
 
                 armCircumference.realValue = settings.armCircumference;
                 shoulderWidth.realValue = settings.shoulderWidth;
@@ -1004,6 +1066,7 @@ Flickable {
 
                 viveInDesktop.checked = desktopMode;
                 hmdInDesktop.checked = hmdDesktopPosition;
+                eyeTracking.checked = eyeTrackingEnabled;
                 outOfRangeDataStrategyComboBox.currentIndex = outOfRangeDataStrategyComboBox.model.indexOf(settings.outOfRangeDataStrategy);
 
                 initializeButtonState();
@@ -1014,6 +1077,8 @@ Flickable {
                 };
 
                 UserActivityLogger.logAction("mocap_ui_open_dialog", data);
+
+                isConfiguring = false;
             }
 
             function displayTrackerConfiguration(type) {
@@ -1170,6 +1235,7 @@ Flickable {
                     "shoulderWidth": shoulderWidth.realValue,
                     "desktopMode": viveInDesktop.checked,
                     "hmdDesktopTracking": hmdInDesktop.checked,
+                    "eyeTrackingEnabled": eyeTracking.checked,
                     "outOfRangeDataStrategy": outOfRangeDataStrategyComboBox.model[outOfRangeDataStrategyComboBox.currentIndex]
                 }
 
@@ -1177,6 +1243,10 @@ Flickable {
             }
 
             function sendConfigurationSettings() {
+                if (isConfiguring) {
+                    // Ignore control value changes during dialog initialization.
+                    return;
+                }
                 var settings = composeConfigurationSettings();
                 InputConfiguration.setConfigurationSettings(settings, openVrConfiguration.pluginName);
                 updateCalibrationButton();
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index 05ddcd5bd3..cc2aed7f53 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -4,6 +4,7 @@
 //
 //  Created by Andrzej Kapolka on 5/10/13.
 //  Copyright 2013 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -65,6 +66,7 @@
 #include <Trace.h>
 #include <ResourceScriptingInterface.h>
 #include <AccountManager.h>
+#include <DomainAccountManager.h>
 #include <AddressManager.h>
 #include <AnimDebugDraw.h>
 #include <BuildInfo.h>
@@ -852,6 +854,7 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) {
 #else
     DependencyManager::set<AccountManager>(true, std::bind(&Application::getUserAgent, qApp));
 #endif
+    DependencyManager::set<DomainAccountManager>();
     DependencyManager::set<StatTracker>();
     DependencyManager::set<ScriptEngines>(ScriptEngine::CLIENT_SCRIPT, defaultScriptsOverrideOption);
     DependencyManager::set<Preferences>();
@@ -1348,6 +1351,13 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
 #endif
     connect(accountManager.data(), &AccountManager::usernameChanged, this, &Application::updateWindowTitle);
 
+    auto domainAccountManager = DependencyManager::get<DomainAccountManager>();
+    connect(domainAccountManager.data(), &DomainAccountManager::authRequired, dialogsManager.data(), 
+        &DialogsManager::showDomainLoginDialog);
+    connect(domainAccountManager.data(), &DomainAccountManager::loginComplete, this, 
+        &Application::updateWindowTitle);
+    // ####### TODO: Connect any other signals from domainAccountManager.
+
     // use our MyAvatar position and quat for address manager path
     addressManager->setPositionGetter([] {
         auto avatarManager = DependencyManager::get<AvatarManager>();
@@ -1571,7 +1581,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
         // Do not show login dialog if requested not to on the command line
         QString hifiNoLoginCommandLineKey = QString("--").append(HIFI_NO_LOGIN_COMMAND_LINE_KEY);
         int index = arguments().indexOf(hifiNoLoginCommandLineKey);
-        if (index != -1) {
+        if (index != -1 || _disableLoginScreen) {
             resumeAfterLoginDialogActionTaken();
             return;
         }
@@ -2614,7 +2624,7 @@ QString Application::getUserAgent() {
         return userAgent;
     }
 
-    QString userAgent = "Mozilla/5.0 (HighFidelityInterface/" + BuildInfo::VERSION + "; "
+    QString userAgent = NetworkingConstants::VIRCADIA_USER_AGENT + "/" + BuildInfo::VERSION + "; "
         + QSysInfo::productType() + " " + QSysInfo::productVersion() + ")";
 
     auto formatPluginName = [](QString name) -> QString { return name.trimmed().replace(" ", "-");  };
@@ -2801,6 +2811,7 @@ void Application::cleanupBeforeQuit() {
     if (!keepMeLoggedIn) {
         DependencyManager::get<AccountManager>()->removeAccountFromFile();
     }
+    // ####### TODO
 
     _displayPlugin.reset();
     PluginManager::getInstance()->shutdown();
@@ -3150,6 +3161,7 @@ extern void setupPreferences();
 static void addDisplayPluginToMenu(const DisplayPluginPointer& displayPlugin, int index, bool active = false);
 #endif
 
+// ####### TODO
 void Application::showLoginScreen() {
 #if !defined(DISABLE_QML)
     auto accountManager = DependencyManager::get<AccountManager>();
@@ -3857,6 +3869,11 @@ void Application::showHelp() {
     //InfoView::show(INFO_HELP_PATH, false, queryString.toString());
 }
 
+void Application::gotoTutorial() {
+    const QString TUTORIAL_ADDRESS = "file:///~/serverless/tutorial.json";
+    DependencyManager::get<AddressManager>()->handleLookupString(TUTORIAL_ADDRESS);
+}
+
 void Application::resizeEvent(QResizeEvent* event) {
     resizeGL();
 }
@@ -3934,12 +3951,15 @@ void Application::handleSandboxStatus(QNetworkReply* reply) {
 
     qCDebug(interfaceapp) << "HMD:" << hasHMD << ", Hand Controllers: " << hasHandControllers << ", Using HMD: " << isUsingHMDAndHandControllers;
 
-    // when --url in command line, teleport to location
-    const QString HIFI_URL_COMMAND_LINE_KEY = "--url";
-    int urlIndex = arguments().indexOf(HIFI_URL_COMMAND_LINE_KEY);
     QString addressLookupString;
-    if (urlIndex != -1) {
-        QUrl url(arguments().value(urlIndex + 1));
+
+    // when --url in command line, teleport to location
+    QCommandLineParser parser;
+    QCommandLineOption urlOption("url", "", "value");
+    parser.addOption(urlOption);
+    parser.parse(arguments());
+    if (parser.isSet(urlOption)) {
+        QUrl url = QUrl(parser.value(urlOption));
         if (url.scheme() == URL_SCHEME_HIFIAPP) {
             Setting::Handle<QVariant>("startUpApp").set(url.path());
         } else {
@@ -4065,7 +4085,7 @@ std::map<QString, QString> Application::prepareServerlessDomainContents(QUrl dom
     bool success = tmpTree->readFromByteArray(domainURL.toString(), data);
     if (success) {
         tmpTree->reaverageOctreeElements();
-        tmpTree->sendEntities(&_entityEditSender, getEntities()->getTree(), 0, 0, 0);
+        tmpTree->sendEntities(&_entityEditSender, getEntities()->getTree(), "domain", 0, 0, 0);
     }
     std::map<QString, QString> namedPaths = tmpTree->getNamedPaths();
 
@@ -5537,7 +5557,7 @@ bool Application::importEntities(const QString& urlOrFilename, const bool isObse
 
         // FIXME: readFromURL() can take over the main event loop which may cause problems, especially if downloading the JSON
         // from the Web.
-        success = _entityClipboard->readFromURL(urlOrFilename, isObservable, callerId);
+        success = _entityClipboard->readFromURL(urlOrFilename, isObservable, callerId, true);
         if (success) {
             _entityClipboard->reaverageOctreeElements();
         }
@@ -5545,8 +5565,8 @@ bool Application::importEntities(const QString& urlOrFilename, const bool isObse
     return success;
 }
 
-QVector<EntityItemID> Application::pasteEntities(float x, float y, float z) {
-    return _entityClipboard->sendEntities(&_entityEditSender, getEntities()->getTree(), x, y, z);
+QVector<EntityItemID> Application::pasteEntities(const QString& entityHostType, float x, float y, float z) {
+    return _entityClipboard->sendEntities(&_entityEditSender, getEntities()->getTree(), entityHostType, x, y, z);
 }
 
 void Application::init() {
@@ -7061,19 +7081,23 @@ void Application::updateWindowTitle() const {
 
     auto nodeList = DependencyManager::get<NodeList>();
     auto accountManager = DependencyManager::get<AccountManager>();
+    auto domainAccountManager = DependencyManager::get<DomainAccountManager>();
     auto isInErrorState = nodeList->getDomainHandler().isInErrorState();
+    bool isMetaverseLoggedIn = accountManager->isLoggedIn();
+    bool isDomainLoggedIn = domainAccountManager->isLoggedIn();
+    QString authedDomain = domainAccountManager->getAuthedDomain();
 
     QString buildVersion = " - Vircadia - "
         + (BuildInfo::BUILD_TYPE == BuildInfo::BuildType::Stable ? QString("Version") : QString("Build"))
         + " " + applicationVersion();
 
-    QString loginStatus = accountManager->isLoggedIn() ? "" : " (NOT LOGGED IN)";
-
     QString connectionStatus = isInErrorState ? " (ERROR CONNECTING)" :
         nodeList->getDomainHandler().isConnected() ? "" : " (NOT CONNECTED)";
-    QString username = accountManager->getAccountInfo().getUsername();
 
-    setCrashAnnotation("sentry[user][username]", username.toStdString());
+    QString metaverseUsername = accountManager->getAccountInfo().getUsername();
+    QString domainUsername = domainAccountManager->getUsername();
+
+    setCrashAnnotation("sentry[user][username]", metaverseUsername.toStdString());
 
     QString currentPlaceName;
     if (isServerlessMode()) {
@@ -7089,8 +7113,22 @@ void Application::updateWindowTitle() const {
         }
     }
 
-    QString title = QString() + (!username.isEmpty() ? username + " @ " : QString())
-        + currentPlaceName + connectionStatus + loginStatus + buildVersion;
+    QString metaverseDetails;
+    if (isMetaverseLoggedIn) {
+        metaverseDetails = "Metaverse: Logged in as " + metaverseUsername;
+    } else {
+        metaverseDetails = "Metaverse: Not Logged In";
+    }
+
+    QString domainDetails;
+    if (currentPlaceName == authedDomain && isDomainLoggedIn) {
+        domainDetails = "Domain: Logged in as " + domainUsername;
+    } else {
+        domainDetails = "Domain: Not Logged In";
+    }
+
+    QString title = QString() + currentPlaceName + connectionStatus + " (" + metaverseDetails + ") (" + domainDetails + ")" 
+        + buildVersion;
 
 #ifndef WIN32
     // crashes with vs2013/win32
@@ -7650,7 +7688,7 @@ bool Application::askToWearAvatarAttachmentUrl(const QString& url) {
     QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
     QNetworkRequest networkRequest = QNetworkRequest(url);
     networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-    networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+    networkRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
     QNetworkReply* reply = networkAccessManager.get(networkRequest);
     int requestNumber = ++_avatarAttachmentRequest;
     connect(reply, &QNetworkReply::finished, [this, reply, url, requestNumber]() {
diff --git a/interface/src/Application.h b/interface/src/Application.h
index 684ff6bdaa..f42696cda0 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -375,7 +375,7 @@ signals:
     void awayStateWhenFocusLostInVRChanged(bool enabled);
 
 public slots:
-    QVector<EntityItemID> pasteEntities(float x, float y, float z);
+    QVector<EntityItemID> pasteEntities(const QString& entityHostType, float x, float y, float z);
     bool exportEntities(const QString& filename, const QVector<QUuid>& entityIDs, const glm::vec3* givenOffset = nullptr);
     bool exportEntities(const QString& filename, float x, float y, float z, float scale);
     bool importEntities(const QString& url, const bool isObservable = true, const qint64 callerId = -1);
@@ -425,6 +425,7 @@ public slots:
 #endif
 
     static void showHelp();
+    static void gotoTutorial();
 
     void cycleCamera();
     void cameraModeChanged();
@@ -732,6 +733,7 @@ private:
     GraphicsEngine _graphicsEngine;
     void updateRenderArgs(float deltaTime);
 
+    bool _disableLoginScreen { true };
 
     Overlays _overlays;
     ApplicationOverlay _applicationOverlay;
diff --git a/interface/src/ConnectionMonitor.cpp b/interface/src/ConnectionMonitor.cpp
index 33d9fddc1b..070015f05b 100644
--- a/interface/src/ConnectionMonitor.cpp
+++ b/interface/src/ConnectionMonitor.cpp
@@ -14,8 +14,10 @@
 #include "Application.h"
 #include "ui/DialogsManager.h"
 
+#include <AccountManager.h>
 #include <DependencyManager.h>
 #include <DomainHandler.h>
+#include <DomainAccountManager.h>
 #include <AddressManager.h>
 #include <NodeList.h>
 
@@ -34,6 +36,10 @@ void ConnectionMonitor::init() {
     connect(&domainHandler, &DomainHandler::domainConnectionRefused, this, &ConnectionMonitor::stopTimer);
     connect(&domainHandler, &DomainHandler::redirectToErrorDomainURL, this, &ConnectionMonitor::stopTimer);
     connect(this, &ConnectionMonitor::setRedirectErrorState, &domainHandler, &DomainHandler::setRedirectErrorState);
+    auto accountManager = DependencyManager::get<AccountManager>();
+    connect(accountManager.data(), &AccountManager::loginComplete, this, &ConnectionMonitor::startTimer);
+    auto domainAccountManager = DependencyManager::get<DomainAccountManager>();
+    connect(domainAccountManager.data(), &DomainAccountManager::loginComplete, this, &ConnectionMonitor::startTimer);
 
     _timer.setSingleShot(true);
     if (!domainHandler.isConnected()) {
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index a1bb670837..64cdf98239 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -9,6 +9,10 @@
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
 //
 
+// For happ(ier) development of QML, use these two things:
+// This forces QML files to be pulled from the source as you edit it: set environment variable HIFI_USE_SOURCE_TREE_RESOURCES=1
+// Use this to live reload: DependencyManager::get<OffscreenUi>()->clearCache();
+
 #include "Menu.h"
 #include <QDesktopServices>
 #include <QFileDialog>
@@ -84,6 +88,13 @@ Menu::Menu() {
                 dialogsManager.data(), &DialogsManager::toggleLoginDialog);
     }
 
+    auto domainLogin = addActionToQMenuAndActionHash(fileMenu, "Domain: Log In");
+    connect(domainLogin, &QAction::triggered, [] {
+        auto dialogsManager = DependencyManager::get<DialogsManager>();
+        dialogsManager->setDomainLoginState();
+        dialogsManager->showDomainLoginDialog();
+    });
+
     // File > Quit
     addActionToQMenuAndActionHash(fileMenu, MenuOption::Quit, Qt::CTRL | Qt::Key_Q, qApp, SLOT(quit()), QAction::QuitRole);
 
@@ -816,6 +827,8 @@ Menu::Menu() {
 
     addActionToQMenuAndActionHash(helpMenu, "Controls Reference", 0, qApp, SLOT(showHelp()));
 
+    addActionToQMenuAndActionHash(helpMenu, "Tutorial", 0, qApp, SLOT(gotoTutorial()));
+
     helpMenu->addSeparator();
 
     // Help > Release Notes
diff --git a/interface/src/ModelPackager.cpp b/interface/src/ModelPackager.cpp
index db74b34d91..c145d40549 100644
--- a/interface/src/ModelPackager.cpp
+++ b/interface/src/ModelPackager.cpp
@@ -24,7 +24,7 @@
 #include "ModelPropertiesDialog.h"
 #include "InterfaceLogging.h"
 
-static const int MAX_TEXTURE_SIZE = 1024;
+static const int MAX_TEXTURE_SIZE = 8192;
 
 void copyDirectoryContent(QDir& from, QDir& to) {
     for (auto entry : from.entryInfoList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot |
diff --git a/interface/src/PerformanceManager.cpp b/interface/src/PerformanceManager.cpp
index a7b9eff7cc..47e4f0612b 100644
--- a/interface/src/PerformanceManager.cpp
+++ b/interface/src/PerformanceManager.cpp
@@ -27,7 +27,7 @@ void PerformanceManager::setupPerformancePresetSettings(bool evaluatePlatformTie
         // If evaluatePlatformTier, evalute the Platform Tier and assign the matching Performance profile by default.
         // A bunch of Performance, Simulation and Render settings will be set to a matching default value from this
 
-        // Here is the mapping between pelatformTIer and performance profile
+        // Here is the mapping between platformTier and performance profile
         const std::array<PerformanceManager::PerformancePreset, platform::Profiler::NumTiers> platformToPerformancePresetMap = { {
             PerformanceManager::PerformancePreset::MID,  // platform::Profiler::UNKNOWN
             PerformanceManager::PerformancePreset::LOW,  // platform::Profiler::LOW
diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h
index 98008583a4..3140c68f88 100644
--- a/interface/src/avatar/MyAvatar.h
+++ b/interface/src/avatar/MyAvatar.h
@@ -722,7 +722,7 @@ public:
      * @function MyAvatar.restoreHandAnimation
      * @param isLeft {boolean} Set to true if using the left hand
      * @example <caption> Override left hand animation for three seconds. </caption>
-     * var ANIM_URL = "https://apidocs.projectathena.dev/models/ClapHands_Standing.fbx";
+     * var ANIM_URL = "https://apidocs.vircadia.dev/models/ClapHands_Standing.fbx";
      * MyAvatar.overrideHandAnimation(isLeft, ANIM_URL, 30, true, 0, 53);
      * Script.setTimeout(function () {
      *     MyAvatar.restoreHandAnimation();
@@ -780,7 +780,7 @@ public:
      * hanging at its sides when it is not moving, the avatar will stand and clap its hands. Note that just as it did before, as soon as the avatar
      * starts to move, the animation will smoothly blend into the walk animation used by the "walkFwd" animation role.</caption>
      * // An animation of the avatar clapping its hands while standing. Restore default after 30s.
-     * var ANIM_URL = "https://apidocs.projectathena.dev/models/ClapHands_Standing.fbx";
+     * var ANIM_URL = "https://apidocs.vircadia.dev/models/ClapHands_Standing.fbx";
      * MyAvatar.overrideRoleAnimation("idleStand", ANIM_URL, 30, true, 0, 53);
      * Script.setTimeout(function () {
      *     MyAvatar.restoreRoleAnimation();
diff --git a/interface/src/avatar/MyCharacterController.cpp b/interface/src/avatar/MyCharacterController.cpp
index 3a25721528..997dcfe685 100755
--- a/interface/src/avatar/MyCharacterController.cpp
+++ b/interface/src/avatar/MyCharacterController.cpp
@@ -407,13 +407,13 @@ void MyCharacterController::clearDetailedMotionStates() {
 }
 
 void MyCharacterController::buildPhysicsTransaction(PhysicsEngine::Transaction& transaction) {
-    for (size_t i = 0; i < _detailedMotionStates.size(); i++) {
-        _detailedMotionStates[i]->forceActive();
+    for (auto& detailedMotionState : _detailedMotionStates) {
+        detailedMotionState->forceActive();
     }
     if (_pendingFlags & PENDING_FLAG_REMOVE_DETAILED_FROM_SIMULATION) {
         _pendingFlags &= ~PENDING_FLAG_REMOVE_DETAILED_FROM_SIMULATION;
-        for (size_t i = 0; i < _detailedMotionStates.size(); i++) {
-            transaction.objectsToRemove.push_back(_detailedMotionStates[i]);
+        for (auto& detailedMotionState : _detailedMotionStates) {
+            transaction.objectsToRemove.push_back(detailedMotionState);
         }
         // NOTE: the DetailedMotionStates are deleted after being added to PhysicsEngine::Transaction::_objectsToRemove
         // See AvatarManager::handleProcessedPhysicsTransaction()
diff --git a/interface/src/avatar/OtherAvatar.cpp b/interface/src/avatar/OtherAvatar.cpp
index aa6c074d08..ae453d5b00 100755
--- a/interface/src/avatar/OtherAvatar.cpp
+++ b/interface/src/avatar/OtherAvatar.cpp
@@ -116,10 +116,10 @@ void OtherAvatar::updateSpaceProxy(workload::Transaction& transaction) const {
 
 int OtherAvatar::parseDataFromBuffer(const QByteArray& buffer) {
     int32_t bytesRead = Avatar::parseDataFromBuffer(buffer);
-    for (size_t i = 0; i < _detailedMotionStates.size(); i++) {
+    for (auto& detailedMotionState : _detailedMotionStates) {
         // NOTE: we activate _detailedMotionStates is because they are KINEMATIC
         // and Bullet will automagically call DetailedMotionState::getWorldTransform() when active.
-        _detailedMotionStates[i]->forceActive();
+        detailedMotionState->forceActive();
     }
     if (_moving && _motionState) {
         _motionState->addDirtyFlags(Simulation::DIRTY_POSITION);
diff --git a/interface/src/scripting/ClipboardScriptingInterface.cpp b/interface/src/scripting/ClipboardScriptingInterface.cpp
index c0a6b64421..af7ac8165b 100644
--- a/interface/src/scripting/ClipboardScriptingInterface.cpp
+++ b/interface/src/scripting/ClipboardScriptingInterface.cpp
@@ -60,10 +60,11 @@ bool ClipboardScriptingInterface::importEntities(
     return retVal;
 }
 
-QVector<EntityItemID> ClipboardScriptingInterface::pasteEntities(glm::vec3 position) {
+QVector<EntityItemID> ClipboardScriptingInterface::pasteEntities(glm::vec3 position, const QString& entityHostType) {
     QVector<EntityItemID> retVal;
     BLOCKING_INVOKE_METHOD(qApp, "pasteEntities",
                               Q_RETURN_ARG(QVector<EntityItemID>, retVal),
+                              Q_ARG(const QString&, entityHostType),
                               Q_ARG(float, position.x),
                               Q_ARG(float, position.y),
                               Q_ARG(float, position.z));
diff --git a/interface/src/scripting/ClipboardScriptingInterface.h b/interface/src/scripting/ClipboardScriptingInterface.h
index 9e72d9ea15..9660b2158b 100644
--- a/interface/src/scripting/ClipboardScriptingInterface.h
+++ b/interface/src/scripting/ClipboardScriptingInterface.h
@@ -117,10 +117,11 @@ public:
      * Pastes the contents of the clipboard into the domain.
      * @function Clipboard.pasteEntities
      * @param {Vec3} position -  The position to paste the clipboard contents at.
+     * @param {Entities.EntityHostType} [entityHostType="domain"] - The type of entities to create.
      * @returns {Uuid[]} The IDs of the new entities that were created as a result of the paste operation. If entities couldn't 
      *     be created then an empty array is returned.
      */
-    Q_INVOKABLE QVector<EntityItemID> pasteEntities(glm::vec3 position);
+    Q_INVOKABLE QVector<EntityItemID> pasteEntities(glm::vec3 position, const QString& entityHostType = "domain");
 };
 
 #endif // hifi_ClipboardScriptingInterface_h
diff --git a/interface/src/scripting/WindowScriptingInterface.cpp b/interface/src/scripting/WindowScriptingInterface.cpp
index f4aa36e2f4..434adf0bc8 100644
--- a/interface/src/scripting/WindowScriptingInterface.cpp
+++ b/interface/src/scripting/WindowScriptingInterface.cpp
@@ -29,6 +29,7 @@
 #include "Menu.h"
 #include "OffscreenUi.h"
 #include "commerce/QmlCommerce.h"
+#include "NetworkingConstants.h"
 
 static const QString DESKTOP_LOCATION = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
 static const QString LAST_BROWSE_LOCATION_SETTING = "LastBrowseLocation";
@@ -411,6 +412,10 @@ QString WindowScriptingInterface::checkVersion() {
     return QCoreApplication::applicationVersion();
 }
 
+QString WindowScriptingInterface::getUserAgent() {
+    return NetworkingConstants::VIRCADIA_USER_AGENT;
+}
+
 QString WindowScriptingInterface::protocolSignature() {
     return protocolVersionsSignatureBase64();
 }
diff --git a/interface/src/scripting/WindowScriptingInterface.h b/interface/src/scripting/WindowScriptingInterface.h
index 0c2fdd1614..28a725f3cb 100644
--- a/interface/src/scripting/WindowScriptingInterface.h
+++ b/interface/src/scripting/WindowScriptingInterface.h
@@ -295,6 +295,13 @@ public slots:
      */
     QString checkVersion();
 
+    /**jsdoc
+     * Gets Interface's user agent.
+     * @function Window.getUserAgent
+     * @returns {string} Interface's user agent.
+     */
+    QString getUserAgent();
+
     /**jsdoc
      * Gets the signature for Interface's protocol version.
      * @function Window.protocolSignature
diff --git a/interface/src/ui/DialogsManager.cpp b/interface/src/ui/DialogsManager.cpp
index 0a655de5e5..8c8e3bc3c3 100644
--- a/interface/src/ui/DialogsManager.cpp
+++ b/interface/src/ui/DialogsManager.cpp
@@ -4,6 +4,7 @@
 //
 //  Created by Clement on 1/18/15.
 //  Copyright 2015 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -109,11 +110,34 @@ void DialogsManager::setDomainConnectionFailureVisibility(bool visible) {
     }
 }
 
+void DialogsManager::setMetaverseLoginState() {
+    // We're only turning off the domain login trigger but the actual domain auth URL is still saved.
+    // So we can continue the domain login if desired.
+    _isDomainLogin = false;
+}
+
+void DialogsManager::setDomainLoginState() {
+    _isDomainLogin = true;
+}
+
+void DialogsManager::setDomainLogin(bool isDomainLogin, const QString& domain) {
+    _isDomainLogin = isDomainLogin;
+    if (!domain.isEmpty()) {
+        _domainLoginDomain = domain;
+    }
+}
+
 void DialogsManager::toggleLoginDialog() {
+    setDomainLogin(false);
     LoginDialog::toggleAction();
 }
 
 void DialogsManager::showLoginDialog() {
+
+    // ####### TODO: May be called from script via DialogsManagerScriptingInterface. Need to handle the case that it's already
+    //               displayed and may be the domain login version.
+
+    setDomainLogin(false);
     LoginDialog::showWithSelection();
 }
 
@@ -121,10 +145,22 @@ void DialogsManager::hideLoginDialog() {
     LoginDialog::hide();
 }
 
+
+void DialogsManager::showDomainLoginDialog(const QString& domain) {
+    setDomainLogin(true, domain);
+    LoginDialog::showWithSelection();
+}
+
+// #######: TODO: Domain version of toggleLoginDialog()?
+
+// #######: TODO: Domain version of hideLoginDialog()?
+
+
 void DialogsManager::showUpdateDialog() {
     UpdateDialog::show();
 }
 
+
 void DialogsManager::octreeStatsDetails() {
     if (!_octreeStatsDialog) {
         _octreeStatsDialog = new OctreeStatsDialog(qApp->getWindow(), qApp->getOcteeSceneStats());
diff --git a/interface/src/ui/DialogsManager.h b/interface/src/ui/DialogsManager.h
index 949c86c240..864174296e 100644
--- a/interface/src/ui/DialogsManager.h
+++ b/interface/src/ui/DialogsManager.h
@@ -4,6 +4,7 @@
 //
 //  Created by Clement on 1/18/15.
 //  Copyright 2015 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -40,6 +41,10 @@ public:
     QPointer<TestingDialog> getTestingDialog() const { return _testingDialog; }
     void emitAddressBarShown(bool visible) { emit addressBarShown(visible); }
     void setAddressBarVisible(bool addressBarVisible);
+    void setMetaverseLoginState();
+    void setDomainLoginState();
+    bool getIsDomainLogin() { return _isDomainLogin; }
+    QString getDomainLoginDomain() { return _domainLoginDomain; }
 
 public slots:
     void showAddressBar();
@@ -49,6 +54,7 @@ public slots:
     void toggleLoginDialog();
     void showLoginDialog();
     void hideLoginDialog();
+    void showDomainLoginDialog(const QString& domain = "");
     void octreeStatsDetails();
     void lodTools();
     void hmdTools(bool showTools);
@@ -82,6 +88,10 @@ private:
     QPointer<DomainConnectionDialog> _domainConnectionDialog;
     bool _dialogCreatedWhileShown { false };
     bool _addressBarVisible { false };
+
+    void setDomainLogin(bool isDomainLogin, const QString& domain = "");
+    bool _isDomainLogin { false };
+    QString _domainLoginDomain;
 };
 
 #endif // hifi_DialogsManager_h
diff --git a/interface/src/ui/LoginDialog.cpp b/interface/src/ui/LoginDialog.cpp
index c0e96fe8bb..b45a62ae3a 100644
--- a/interface/src/ui/LoginDialog.cpp
+++ b/interface/src/ui/LoginDialog.cpp
@@ -4,6 +4,7 @@
 //
 //  Created by Bradley Austin Davis on 2015/04/14
 //  Copyright 2015 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -24,7 +25,9 @@
 #include <UserActivityLogger.h>
 
 #include "AccountManager.h"
+#include "DomainAccountManager.h"
 #include "DependencyManager.h"
+#include "DialogsManager.h"
 #include "Menu.h"
 
 #include "Application.h"
@@ -38,12 +41,17 @@ const QUrl LOGIN_DIALOG = PathUtils::qmlUrl("OverlayLoginDialog.qml");
 
 LoginDialog::LoginDialog(QQuickItem *parent) : OffscreenQmlDialog(parent) {
     auto accountManager = DependencyManager::get<AccountManager>();
+    auto domainAccountManager = DependencyManager::get<DomainAccountManager>();
     // the login hasn't been dismissed yet if the user isn't logged in and is encouraged to login.
 #if !defined(Q_OS_ANDROID)
     connect(accountManager.data(), &AccountManager::loginComplete,
         this, &LoginDialog::handleLoginCompleted);
     connect(accountManager.data(), &AccountManager::loginFailed,
             this, &LoginDialog::handleLoginFailed);
+    connect(domainAccountManager.data(), &DomainAccountManager::loginComplete,
+        this, &LoginDialog::handleLoginCompleted);
+    connect(domainAccountManager.data(), &DomainAccountManager::loginFailed,
+            this, &LoginDialog::handleLoginFailed);
     connect(qApp, &Application::loginDialogFocusEnabled, this, &LoginDialog::focusEnabled);
     connect(qApp, &Application::loginDialogFocusDisabled, this, &LoginDialog::focusDisabled);
     connect(this, SIGNAL(dismissedLoginDialog()), qApp, SLOT(onDismissedLoginDialog()));
@@ -91,14 +99,16 @@ void LoginDialog::toggleAction() {
 
     if (accountManager->isLoggedIn()) {
         // change the menu item to logout
-        loginAction->setText("Logout " + accountManager->getAccountInfo().getUsername());
+        loginAction->setText("Metaverse: Logout " + accountManager->getAccountInfo().getUsername());
         connection = connect(loginAction, &QAction::triggered, accountManager.data(), &AccountManager::logout);
     } else {
         // change the menu item to login
-        loginAction->setText("Log In / Sign Up");
+        loginAction->setText("Metaverse: Log In / Sign Up");
         connection = connect(loginAction, &QAction::triggered, [] {
             // if not in login state, show.
             if (!qApp->getLoginDialogPoppedUp()) {
+                auto dialogsManager = DependencyManager::get<DialogsManager>();
+                dialogsManager->setMetaverseLoginState();
                 LoginDialog::showWithSelection();
             }
         });
@@ -131,10 +141,15 @@ void LoginDialog::dismissLoginDialog() {
 }
 
 void LoginDialog::login(const QString& username, const QString& password) const {
-    qDebug() << "Attempting to login " << username;
+    qDebug() << "Attempting to login" << username;
     DependencyManager::get<AccountManager>()->requestAccessToken(username, password);
 }
 
+void LoginDialog::loginDomain(const QString& username, const QString& password) const {
+    qDebug() << "Attempting to login" << username << "into a domain";
+    DependencyManager::get<DomainAccountManager>()->requestAccessToken(username, password);
+}
+
 void LoginDialog::loginThroughOculus() {
    qDebug() << "Attempting to login through Oculus";
     if (auto oculusPlatformPlugin = PluginManager::getInstance()->getOculusPlatformPlugin()) {
@@ -410,3 +425,11 @@ void LoginDialog::signupFailed(QNetworkReply* reply) {
         emit handleSignupFailed(DEFAULT_SIGN_UP_FAILURE_MESSAGE);
     }
 }
+
+bool LoginDialog::getDomainLoginRequested() const {
+    return DependencyManager::get<DialogsManager>()->getIsDomainLogin();
+}
+
+QString LoginDialog::getDomainLoginDomain() const {
+    return DependencyManager::get<DialogsManager>()->getDomainLoginDomain();
+}
diff --git a/interface/src/ui/LoginDialog.h b/interface/src/ui/LoginDialog.h
index 7c659a9320..9f4af5debb 100644
--- a/interface/src/ui/LoginDialog.h
+++ b/interface/src/ui/LoginDialog.h
@@ -4,6 +4,7 @@
 //
 //  Created by Bradley Austin Davis on 2015/04/14
 //  Copyright 2015 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -71,6 +72,7 @@ protected slots:
     Q_INVOKABLE QString oculusUserID() const;
 
     Q_INVOKABLE void login(const QString& username, const QString& password) const;
+    Q_INVOKABLE void loginDomain(const QString& username, const QString& password) const;
     Q_INVOKABLE void loginThroughSteam();
     Q_INVOKABLE void linkSteam();
     Q_INVOKABLE void createAccountFromSteam(QString username = QString());
@@ -81,6 +83,10 @@ protected slots:
     Q_INVOKABLE void signup(const QString& email, const QString& username, const QString& password);
 
     Q_INVOKABLE bool getLoginDialogPoppedUp() const;
+
+    Q_INVOKABLE bool getDomainLoginRequested() const;
+    Q_INVOKABLE QString getDomainLoginDomain() const;
+
 };
 
 #endif // hifi_LoginDialog_h
diff --git a/interface/src/ui/ModelsBrowser.cpp b/interface/src/ui/ModelsBrowser.cpp
index 4709cc0a9c..96c10be212 100644
--- a/interface/src/ui/ModelsBrowser.cpp
+++ b/interface/src/ui/ModelsBrowser.cpp
@@ -27,6 +27,7 @@
 
 #include <ThreadHelpers.h>
 #include <NetworkAccessManager.h>
+#include <NetworkingConstants.h>
 #include <SharedUtil.h>
 
 const char* MODEL_TYPE_NAMES[] = { "entities", "heads", "skeletons", "skeletons", "attachments" };
@@ -225,7 +226,7 @@ void ModelHandler::update() {
         QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
         QNetworkRequest request(url);
         request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-        request.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+        request.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
         QNetworkReply* reply = networkAccessManager.head(request);
         connect(reply, SIGNAL(finished()), SLOT(downloadFinished()));
     }
@@ -278,7 +279,7 @@ void ModelHandler::queryNewFiles(QString marker) {
     QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
     QNetworkRequest request(url);
     request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-    request.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+    request.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
     QNetworkReply* reply = networkAccessManager.get(request);
     connect(reply, SIGNAL(finished()), SLOT(downloadFinished()));
             
diff --git a/launchers/darwin/CMakeLists.txt b/launchers/darwin/CMakeLists.txt
index a25aec37a7..50f0cbc16f 100644
--- a/launchers/darwin/CMakeLists.txt
+++ b/launchers/darwin/CMakeLists.txt
@@ -143,13 +143,13 @@ set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR})
 include(CPackComponent)
 
 set(CPACK_PACKAGE_NAME "HQ Launcher")
-set(CPACK_PACKAGE_VENDOR "High Fidelity")
+set(CPACK_PACKAGE_VENDOR "Vircadia")
 set(CPACK_PACKAGE_VERSION ${BUILD_VERSION})
 set(CPACK_PACKAGE_FILE_NAME "HQ Launcher")
 
 set(CPACK_NSIS_DISPLAY_NAME ${_DISPLAY_NAME})
 
-set(DMG_SUBFOLDER_NAME "High Fidelity")
+set(DMG_SUBFOLDER_NAME "Vircadia")
 set(ESCAPED_DMG_SUBFOLDER_NAME "")
 set(DMG_SUBFOLDER_ICON "${CMAKE_SOURCE_DIR}/cmake/installer/install-folder.rsrc")
 
diff --git a/launchers/qt/CMakeLists.txt b/launchers/qt/CMakeLists.txt
index 596f3b7d5c..400615be90 100644
--- a/launchers/qt/CMakeLists.txt
+++ b/launchers/qt/CMakeLists.txt
@@ -276,12 +276,12 @@ if (APPLE)
   include(CPackComponent)
 
   set(CPACK_PACKAGE_NAME "HQ Launcher")
-  set(CPACK_PACKAGE_VENDOR "High Fidelity")
+  set(CPACK_PACKAGE_VENDOR "Vircadia")
   set(CPACK_PACKAGE_FILE_NAME "HQ Launcher")
 
   set(CPACK_NSIS_DISPLAY_NAME ${_DISPLAY_NAME})
 
-  set(DMG_SUBFOLDER_NAME "High Fidelity")
+  set(DMG_SUBFOLDER_NAME "Vircadia")
   set(ESCAPED_DMG_SUBFOLDER_NAME "")
   set(DMG_SUBFOLDER_ICON "${CMAKE_SOURCE_DIR}/cmake/installer/install-folder.rsrc")
 
diff --git a/launchers/qt/resources/qml/HFControls/HFTextLogo.qml b/launchers/qt/resources/qml/HFControls/HFTextLogo.qml
index b8d06f16f1..f377c9a34d 100644
--- a/launchers/qt/resources/qml/HFControls/HFTextLogo.qml
+++ b/launchers/qt/resources/qml/HFControls/HFTextLogo.qml
@@ -2,7 +2,7 @@ import QtQuick 2.3
 import QtQuick 2.1
 
 Text {
-    text: "High Fidelity"
+    text: "Vircadia"
     font.bold: true
     font.family: "Graphik Semibold"
     font.pixelSize: 17
diff --git a/launchers/qt/src/Launcher.cpp b/launchers/qt/src/Launcher.cpp
index 7522529ff9..bd54619487 100644
--- a/launchers/qt/src/Launcher.cpp
+++ b/launchers/qt/src/Launcher.cpp
@@ -21,7 +21,7 @@ Launcher::Launcher(int& argc, char**argv) : QGuiApplication(argc, argv) {
     _launcherWindow->rootContext()->setContextProperty("LauncherState", _launcherState.get());
     _launcherWindow->rootContext()->setContextProperty("PathUtils", new PathUtils());
     _launcherWindow->rootContext()->setContextProperty("Platform", platform);
-    _launcherWindow->setTitle("High Fidelity");
+    _launcherWindow->setTitle("Vircadia");
     _launcherWindow->setFlags(Qt::FramelessWindowHint | Qt::Window);
     _launcherWindow->setLauncherStatePtr(_launcherState);
 
diff --git a/launchers/qt/src/LauncherInstaller_windows.cpp b/launchers/qt/src/LauncherInstaller_windows.cpp
index b5558f972c..cf5b2b501f 100644
--- a/launchers/qt/src/LauncherInstaller_windows.cpp
+++ b/launchers/qt/src/LauncherInstaller_windows.cpp
@@ -12,7 +12,7 @@
 
 #include <QStandardPaths>
 #include <QFileInfo>
-#include <QFile> 
+#include <QFile>
 #include <QDebug>
 #include <QTime>
 
@@ -253,7 +253,7 @@ void LauncherInstaller::createApplicationRegistryKeys() {
     success = insertRegistryKey(REGISTRY_PATH, "UninstallString", uninstallPath);
     success = insertRegistryKey(REGISTRY_PATH, "DisplayVersion", std::string(LAUNCHER_BUILD_VERSION));
     success = insertRegistryKey(REGISTRY_PATH, "DisplayIcon", applicationExe);
-    success = insertRegistryKey(REGISTRY_PATH, "Publisher", "High Fidelity");
+    success = insertRegistryKey(REGISTRY_PATH, "Publisher", "Vircadia");
 
     auto now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
 
diff --git a/launchers/qt/src/main.cpp b/launchers/qt/src/main.cpp
index 75c35cd708..c9ce0caeb1 100644
--- a/launchers/qt/src/main.cpp
+++ b/launchers/qt/src/main.cpp
@@ -31,7 +31,7 @@ bool hasSuffix(const std::string& path, const std::string& suffix) {
 
 int main(int argc, char *argv[]) {
     QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
-    QCoreApplication::setOrganizationName("High Fidelity");
+    QCoreApplication::setOrganizationName("Vircadia");
     QCoreApplication::setApplicationName("HQ Launcher");
 
     Q_INIT_RESOURCE(resources);
diff --git a/launchers/win32/LauncherManager.cpp b/launchers/win32/LauncherManager.cpp
index 60bcb0f004..6dfdc46c6f 100644
--- a/launchers/win32/LauncherManager.cpp
+++ b/launchers/win32/LauncherManager.cpp
@@ -310,7 +310,7 @@ BOOL LauncherManager::getAndCreatePaths(PathType type, CString& outPath) {
                 outPath += DIRECTORY_NAME_INTERFACE;
             } else if (type == PathType::Content_Directory) {
                 outPath += DIRECTORY_NAME_CONTENT;
-            } 
+            }
             return (CreateDirectory(outPath, NULL) || ERROR_ALREADY_EXISTS == GetLastError());
         }
     }
@@ -377,7 +377,7 @@ BOOL LauncherManager::createConfigJSON() {
     return TRUE;
 }
 
-LauncherUtils::ResponseError LauncherManager::readConfigJSON(CString& version, CString& domain, 
+LauncherUtils::ResponseError LauncherManager::readConfigJSON(CString& version, CString& domain,
                                                              CString& content, bool& loggedIn, CString& organizationBuildTag) {
     CString configPath;
     getAndCreatePaths(PathType::Interface_Directory, configPath);
@@ -388,7 +388,7 @@ LauncherUtils::ResponseError LauncherManager::readConfigJSON(CString& version, C
     }
     Json::Value config;
     configFile >> config;
-    if (config["version"].isString() && 
+    if (config["version"].isString() &&
         config["domain"].isString() &&
         config["content"].isString()) {
         loggedIn = config["loggedIn"].asBool();
@@ -446,7 +446,7 @@ LauncherUtils::ResponseError LauncherManager::readOrganizationJSON(const CString
     CString url = _T("/organizations/") + hash + _T(".json");
     LauncherUtils::ResponseError error = LauncherUtils::makeHTTPCall(getHttpUserAgent(),
                                                                      true, L"orgs.highfidelity.com", url,
-                                                                     contentTypeJson, CStringA(), 
+                                                                     contentTypeJson, CStringA(),
                                                                      response, false);
     if (error != LauncherUtils::ResponseError::NoError) {
         return error;
@@ -557,7 +557,7 @@ void LauncherManager::onMostRecentBuildsReceived(const CString& response, Launch
                 addToLog(_T("Already running most recent build. Launching interface.exe"));
             } else {
                 addToLog(_T("Updating the launcher was not allowed --noUpdate"));
-            }            
+            }
             if (isInstalled) {
                 addToLog(_T("Installed version: ") + currentVersion);
                 if (!newInterfaceVersion) {
@@ -576,7 +576,7 @@ void LauncherManager::onMostRecentBuildsReceived(const CString& response, Launch
             }
         }
         _shouldWait = FALSE;
-        
+
     } else {
         setFailed(true);
         CString msg;
@@ -587,7 +587,7 @@ void LauncherManager::onMostRecentBuildsReceived(const CString& response, Launch
     }
 }
 
-LauncherUtils::ResponseError LauncherManager::getAccessTokenForCredentials(const CString& username, 
+LauncherUtils::ResponseError LauncherManager::getAccessTokenForCredentials(const CString& username,
                                                                            const CString& password) {
     CStringA post = "grant_type=password&username=";
     post += username;
@@ -599,9 +599,9 @@ LauncherUtils::ResponseError LauncherManager::getAccessTokenForCredentials(const
     CString response;
     LauncherUtils::ResponseError error = LauncherUtils::makeHTTPCall(getHttpUserAgent(),
                                                                      true,
-                                                                     L"metaverse.highfidelity.com", 
+                                                                     L"metaverse.highfidelity.com",
                                                                      L"/oauth/token",
-                                                                     contentTypeText, post, 
+                                                                     contentTypeText, post,
                                                                      response, true);
     if (error != LauncherUtils::ResponseError::NoError) {
         return error;
@@ -629,7 +629,7 @@ BOOL LauncherManager::createApplicationRegistryKeys(int size) {
     success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "UninstallString", uninstallPath);
     success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "DisplayVersion", LauncherUtils::cStringToStd(_latestVersion));
     success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "DisplayIcon", applicationExe);
-    success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "Publisher", "High Fidelity");
+    success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "Publisher", "Vircadia");
     success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "InstallDate", LauncherUtils::cStringToStd(CTime::GetCurrentTime().Format("%Y%m%d")));
     success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "EstimatedSize", (DWORD)size);
     success = LauncherUtils::insertRegistryKey(REGISTRY_PATH, "NoModify", (DWORD)1);
@@ -686,9 +686,9 @@ BOOL LauncherManager::extractApplication() {
         updateProgress(ProcessType::UnzipApplication, max(progress, 0.0f));
     };
     _currentProcess = ProcessType::UnzipApplication;
-    BOOL success = LauncherUtils::unzipFileOnThread(ProcessType::UnzipApplication, 
+    BOOL success = LauncherUtils::unzipFileOnThread(ProcessType::UnzipApplication,
                                                     LauncherUtils::cStringToStd(_applicationZipPath),
-                                                    LauncherUtils::cStringToStd(installPath), 
+                                                    LauncherUtils::cStringToStd(installPath),
                                                     onExtractFinished, onProgress);
     if (success) {
         addToLog(_T("Created thread for unzipping application."));
@@ -737,7 +737,7 @@ void LauncherManager::restartNewLauncher() {
         continueAction = ContinueActionOnStart::ContinueUpdate;
     } else if (_keepLoggingIn) {
         continueAction = ContinueActionOnStart::ContinueLogIn;
-    }    
+    }
     CStringW params;
     params.Format(_T(" --restart --noUpdate --continueAction %s"), getContinueActionParam(continueAction));
     LauncherUtils::launchApplication(_tempLauncherPath, params.GetBuffer());
diff --git a/libraries/animation/src/AnimInverseKinematics.cpp b/libraries/animation/src/AnimInverseKinematics.cpp
index 621323575f..2fd52ee036 100644
--- a/libraries/animation/src/AnimInverseKinematics.cpp
+++ b/libraries/animation/src/AnimInverseKinematics.cpp
@@ -26,6 +26,9 @@
 static const int MAX_TARGET_MARKERS = 30;
 static const float JOINT_CHAIN_INTERP_TIME = 0.5f;
 
+static QTime debounceJointWarningsClock;
+static const int JOINT_WARNING_DEBOUNCE_TIME = 30000; // 30 seconds
+
 static void lookupJointInfo(const AnimInverseKinematics::JointChainInfo& jointChainInfo,
                             int indexA, int indexB,
                             const AnimInverseKinematics::JointInfo** jointInfoA,
@@ -91,6 +94,7 @@ AnimInverseKinematics::IKTargetVar::IKTargetVar(const IKTargetVar& orig) :
 }
 
 AnimInverseKinematics::AnimInverseKinematics(const QString& id) : AnimNode(AnimNode::Type::InverseKinematics, id) {
+    debounceJointWarningsClock.start();
 }
 
 AnimInverseKinematics::~AnimInverseKinematics() {
@@ -158,6 +162,14 @@ void AnimInverseKinematics::setTargetVars(const QString& jointName, const QStrin
     }
 }
 
+bool debounceJointWarnings() {
+    if (debounceJointWarningsClock.elapsed() >= JOINT_WARNING_DEBOUNCE_TIME) {
+        debounceJointWarningsClock.restart();
+        return true;
+    }
+    return false;
+}
+
 void AnimInverseKinematics::computeTargets(const AnimVariantMap& animVars, std::vector<IKTarget>& targets, const AnimPoseVec& underPoses) {
 
     _hipsTargetIndex = -1;
@@ -172,7 +184,7 @@ void AnimInverseKinematics::computeTargets(const AnimVariantMap& animVars, std::
             if (jointIndex >= 0) {
                 // this targetVar has a valid joint --> cache the indices
                 targetVar.jointIndex = jointIndex;
-            } else {
+            } else if (debounceJointWarnings()) {
                 qCWarning(animation) << "AnimInverseKinematics could not find jointName" << targetVar.jointName << "in skeleton";
             }
         }
diff --git a/libraries/auto-updater/src/AutoUpdater.cpp b/libraries/auto-updater/src/AutoUpdater.cpp
index d8afac59b2..e00ae6dafc 100644
--- a/libraries/auto-updater/src/AutoUpdater.cpp
+++ b/libraries/auto-updater/src/AutoUpdater.cpp
@@ -51,7 +51,7 @@ void AutoUpdater::getLatestVersionData() {
     QNetworkRequest latestVersionRequest(buildsURL);
 
     latestVersionRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-    latestVersionRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+    latestVersionRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
     QNetworkReply* reply = networkAccessManager.get(latestVersionRequest);
     connect(reply, &QNetworkReply::finished, this, &AutoUpdater::parseLatestVersionData);
 }
diff --git a/libraries/baking/src/JSBaker.cpp b/libraries/baking/src/JSBaker.cpp
index 96d7247a82..def217f8fd 100644
--- a/libraries/baking/src/JSBaker.cpp
+++ b/libraries/baking/src/JSBaker.cpp
@@ -14,6 +14,7 @@
 #include <QtNetwork/QNetworkReply>
 
 #include <NetworkAccessManager.h>
+#include <NetworkingConstants.h>
 #include <SharedUtil.h>
 #include <PathUtils.h>
 
@@ -62,7 +63,7 @@ void JSBaker::loadScript() {
         // setup the request to follow re-directs and always hit the network
         networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
         networkRequest.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
-        networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+        networkRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
 
         networkRequest.setUrl(_jsURL);
 
diff --git a/libraries/baking/src/ModelBaker.cpp b/libraries/baking/src/ModelBaker.cpp
index 70290fe283..1b81ee9740 100644
--- a/libraries/baking/src/ModelBaker.cpp
+++ b/libraries/baking/src/ModelBaker.cpp
@@ -13,6 +13,7 @@
 
 #include <PathUtils.h>
 #include <NetworkAccessManager.h>
+#include <NetworkingConstants.h>
 
 #include <DependencyManager.h>
 #include <hfm/ModelFormatRegistry.h>
@@ -159,7 +160,7 @@ void ModelBaker::saveSourceModel() {
         // setup the request to follow re-directs and always hit the network
         networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
         networkRequest.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
-        networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+        networkRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
 
         networkRequest.setUrl(_modelURL);
 
diff --git a/libraries/baking/src/TextureBaker.cpp b/libraries/baking/src/TextureBaker.cpp
index 182caf7fc6..d70c6586b7 100644
--- a/libraries/baking/src/TextureBaker.cpp
+++ b/libraries/baking/src/TextureBaker.cpp
@@ -19,6 +19,7 @@
 #include <image/TextureProcessing.h>
 #include <ktx/KTX.h>
 #include <NetworkAccessManager.h>
+#include <NetworkingConstants.h>
 #include <SharedUtil.h>
 #include <TextureMeta.h>
 
@@ -99,7 +100,7 @@ void TextureBaker::loadTexture() {
         // setup the request to follow re-directs and always hit the network
         networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
         networkRequest.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysNetwork);
-        networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+        networkRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
 
         networkRequest.setUrl(_textureURL);
 
diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp
index fb2cf01580..eb7856b7ed 100644
--- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp
+++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp
@@ -1337,7 +1337,7 @@ void ModelEntityRenderer::doRenderUpdateSynchronousTyped(const ScenePointer& sce
             _model->setCullWithParent(_cullWithParent);
             _model->setRenderWithZones(_renderWithZones);
             emit requestRenderUpdate();
-            if(didVisualGeometryRequestSucceed) {
+            if (didVisualGeometryRequestSucceed) {
                 emit DependencyManager::get<scriptable::ModelProviderFactory>()->
                     modelAddedToScene(entity->getEntityItemID(), NestableType::Entity, _model);
             }
diff --git a/libraries/entities-renderer/src/RenderableParticleEffectEntityItem.cpp b/libraries/entities-renderer/src/RenderableParticleEffectEntityItem.cpp
index f34eb85230..bc56781924 100644
--- a/libraries/entities-renderer/src/RenderableParticleEffectEntityItem.cpp
+++ b/libraries/entities-renderer/src/RenderableParticleEffectEntityItem.cpp
@@ -199,7 +199,7 @@ float importanceSample3DDimension(float startDim) {
     return dimension;
 }
 
-ParticleEffectEntityRenderer::CpuParticle ParticleEffectEntityRenderer::createParticle(uint64_t now, const Transform& baseTransform, const particle::Properties& particleProperties,
+ParticleEffectEntityRenderer::CpuParticle ParticleEffectEntityRenderer::createParticle(const Transform& baseTransform, const particle::Properties& particleProperties,
                                                                                        const ShapeType& shapeType, const GeometryResource::Pointer& geometryResource,
                                                                                        const TriangleInfo& triangleInfo) {
     CpuParticle particle;
@@ -217,7 +217,7 @@ ParticleEffectEntityRenderer::CpuParticle ParticleEffectEntityRenderer::createPa
     const auto& polarFinish = particleProperties.polar.finish;
 
     particle.seed = randFloatInRange(-1.0f, 1.0f);
-    particle.expiration = now + (uint64_t)(particleProperties.lifespan * USECS_PER_SECOND);
+    particle.expiration = (uint64_t)(particleProperties.lifespan * USECS_PER_SECOND);
 
     particle.relativePosition = glm::vec3(0.0f);
     particle.basePosition = baseTransform.getTranslation();
@@ -403,7 +403,7 @@ void ParticleEffectEntityRenderer::stepSimulation() {
                     computeTriangles(geometryResource->getHFMModel());
                 }
                 // emit particle
-                _cpuParticles.push_back(createParticle(now, modelTransform, particleProperties, shapeType, geometryResource, _triangleInfo));
+                _cpuParticles.push_back(createParticle(modelTransform, particleProperties, shapeType, geometryResource, _triangleInfo));
                 _timeUntilNextEmit = emitInterval;
                 if (emitInterval < timeRemaining) {
                     timeRemaining -= emitInterval;
@@ -415,7 +415,7 @@ void ParticleEffectEntityRenderer::stepSimulation() {
     }
 
     // Kill any particles that have expired or are over the max size
-    while (_cpuParticles.size() > particleProperties.maxParticles || (!_cpuParticles.empty() && _cpuParticles.front().expiration <= now)) {
+    while (_cpuParticles.size() > particleProperties.maxParticles || (!_cpuParticles.empty() && _cpuParticles.front().expiration == 0)) {
         _cpuParticles.pop_front();
     }
 
@@ -428,6 +428,7 @@ void ParticleEffectEntityRenderer::stepSimulation() {
             }
             particle.basePosition = modelTransform.getTranslation();
         }
+        particle.expiration = particle.expiration >= interval ? particle.expiration - interval : 0;
         particle.integrate(deltaTime);
     }
     _prevEmitterShouldTrail = particleProperties.emission.shouldTrail;
diff --git a/libraries/entities-renderer/src/RenderableParticleEffectEntityItem.h b/libraries/entities-renderer/src/RenderableParticleEffectEntityItem.h
index cc907f2b1d..8a3d8120f5 100644
--- a/libraries/entities-renderer/src/RenderableParticleEffectEntityItem.h
+++ b/libraries/entities-renderer/src/RenderableParticleEffectEntityItem.h
@@ -88,7 +88,7 @@ private:
         glm::mat4 transform;
     } _triangleInfo;
 
-    static CpuParticle createParticle(uint64_t now, const Transform& baseTransform, const particle::Properties& particleProperties,
+    static CpuParticle createParticle(const Transform& baseTransform, const particle::Properties& particleProperties,
                                       const ShapeType& shapeType, const GeometryResource::Pointer& geometryResource,
                                       const TriangleInfo& triangleInfo);
     void stepSimulation();
diff --git a/libraries/entities-renderer/src/RenderableShapeEntityItem.h b/libraries/entities-renderer/src/RenderableShapeEntityItem.h
index 5bc61606ad..e4d6d099a6 100644
--- a/libraries/entities-renderer/src/RenderableShapeEntityItem.h
+++ b/libraries/entities-renderer/src/RenderableShapeEntityItem.h
@@ -45,7 +45,7 @@ private:
     PulsePropertyGroup _pulseProperties;
     std::shared_ptr<graphics::ProceduralMaterial> _material { std::make_shared<graphics::ProceduralMaterial>() };
     glm::vec3 _color { NAN };
-    float _alpha;
+    float _alpha { NAN };
 
     glm::vec3 _position;
     glm::vec3 _dimensions;
diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h
index e0f14b47e7..dae0922f4a 100644
--- a/libraries/entities/src/EntityScriptingInterface.h
+++ b/libraries/entities/src/EntityScriptingInterface.h
@@ -2399,7 +2399,9 @@ signals:
 
 
     /**jsdoc
-     * Triggered when an avatar enters an entity, but only if the entity has an entity method exposed for this event.
+     * Triggered when an avatar enters an entity.
+     * Note: At the initial loading of the script, if the avatar is already present inside the entity, it might be too late 
+     * to catch this event when the script runs, so it won't trigger. The {@link Entities.preload|preload} signal can be used to handle those cases.
      * <p>See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.</p>
      * @function Entities.enterEntity
      * @param {Uuid} entityID - The ID of the entity that the avatar entered.
@@ -2408,7 +2410,7 @@ signals:
     void enterEntity(const EntityItemID& entityItemID);
 
     /**jsdoc
-     * Triggered when an avatar leaves an entity, but only if the entity has an entity method exposed for this event.
+     * Triggered when an avatar leaves an entity.
      * <p>See also, {@link Entities|Entity Methods} and {@link Script.addEventHandler}.</p>
      * @function Entities.leaveEntity
      * @param {Uuid} entityID - The ID of the entity that the avatar left.
diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp
index 1ce19033e5..e6f5e36202 100644
--- a/libraries/entities/src/EntityTree.cpp
+++ b/libraries/entities/src/EntityTree.cpp
@@ -537,7 +537,7 @@ bool EntityTree::updateEntity(EntityItemPointer entity, const EntityItemProperti
     return true;
 }
 
-EntityItemPointer EntityTree::addEntity(const EntityItemID& entityID, const EntityItemProperties& properties, bool isClone) {
+EntityItemPointer EntityTree::addEntity(const EntityItemID& entityID, const EntityItemProperties& properties, bool isClone, const bool isImport) {
     EntityItemProperties props = properties;
 
     auto nodeList = DependencyManager::get<NodeList>();
@@ -548,7 +548,8 @@ EntityItemPointer EntityTree::addEntity(const EntityItemID& entityID, const Enti
 
     if (properties.getEntityHostType() == entity::HostType::DOMAIN && getIsClient() &&
         !nodeList->getThisNodeCanRez() && !nodeList->getThisNodeCanRezTmp() &&
-        !nodeList->getThisNodeCanRezCertified() && !nodeList->getThisNodeCanRezTmpCertified() && !_serverlessDomain && !isClone) {
+        !nodeList->getThisNodeCanRezCertified() && !nodeList->getThisNodeCanRezTmpCertified() && 
+        !_serverlessDomain && !isClone && !isImport) {
         return nullptr;
     }
 
@@ -2233,15 +2234,24 @@ void EntityTree::fixupNeedsParentFixups() {
             }
 
             entity->postParentFixup();
-        } else if (getIsServer() || _avatarIDs.contains(entity->getParentID())) {
-            // this is a child of an avatar, which the entity server will never have
-            // a SpatiallyNestable object for.  Add it to a list for cleanup when the avatar leaves.
-            if (!_childrenOfAvatars.contains(entity->getParentID())) {
-                _childrenOfAvatars[entity->getParentID()] = QSet<EntityItemID>();
+        } else {
+            bool needsUpdate = getIsServer();
+            if (!needsUpdate) {
+                std::lock_guard<std::mutex> lock(_avatarIDsLock);
+                needsUpdate = _avatarIDs.contains(entity->getParentID());
+            }
+
+            if (needsUpdate) {
+                std::lock_guard<std::mutex> lock(_childrenOfAvatarsLock);
+                // this is a child of an avatar, which the entity server will never have
+                // a SpatiallyNestable object for.  Add it to a list for cleanup when the avatar leaves.
+                if (!_childrenOfAvatars.contains(entity->getParentID())) {
+                    _childrenOfAvatars[entity->getParentID()] = QSet<EntityItemID>();
+                }
+                _childrenOfAvatars[entity->getParentID()] += entity->getEntityItemID();
+                doMove = true;
+                iter.remove(); // and pull it out of the list
             }
-            _childrenOfAvatars[entity->getParentID()] += entity->getEntityItemID();
-            doMove = true;
-            iter.remove(); // and pull it out of the list
         }
 
         if (queryAACubeSuccess && doMove) {
@@ -2261,8 +2271,19 @@ void EntityTree::fixupNeedsParentFixups() {
     }
 }
 
-void EntityTree::deleteDescendantsOfAvatar(QUuid avatarID) {
-    QHash<QUuid, QSet<EntityItemID>>::const_iterator itr = _childrenOfAvatars.constFind(avatarID);
+void EntityTree::knowAvatarID(const QUuid& avatarID) {
+    std::lock_guard<std::mutex> lock(_avatarIDsLock);
+    _avatarIDs += avatarID;
+}
+
+void EntityTree::forgetAvatarID(const QUuid& avatarID) {
+    std::lock_guard<std::mutex> lock(_avatarIDsLock);
+    _avatarIDs -= avatarID;
+}
+
+void EntityTree::deleteDescendantsOfAvatar(const QUuid& avatarID) {
+    std::lock_guard<std::mutex> lock(_childrenOfAvatarsLock);
+    auto itr = _childrenOfAvatars.find(avatarID);
     if (itr != _childrenOfAvatars.end()) {
         if (!itr.value().empty()) {
             std::vector<EntityItemID> ids;
@@ -2280,8 +2301,10 @@ void EntityTree::deleteDescendantsOfAvatar(QUuid avatarID) {
 
 void EntityTree::removeFromChildrenOfAvatars(EntityItemPointer entity) {
     QUuid avatarID = entity->getParentID();
-    if (_childrenOfAvatars.contains(avatarID)) {
-        _childrenOfAvatars[avatarID].remove(entity->getID());
+    std::lock_guard<std::mutex> lock(_childrenOfAvatarsLock);
+    auto itr = _childrenOfAvatars.find(avatarID);
+    if (itr != _childrenOfAvatars.end()) {
+        itr.value().remove(entity->getID());
     }
 }
 
@@ -2657,11 +2680,12 @@ QByteArray EntityTree::remapActionDataIDs(QByteArray actionData, QHash<EntityIte
 }
 
 QVector<EntityItemID> EntityTree::sendEntities(EntityEditPacketSender* packetSender, EntityTreePointer localTree,
-                                               float x, float y, float z) {
+                                               const QString& entityHostType, float x, float y, float z) {
     SendEntitiesOperationArgs args;
     args.ourTree = this;
     args.otherTree = localTree;
     args.root = glm::vec3(x, y, z);
+    args.entityHostType = entityHostType;
     // If this is called repeatedly (e.g., multiple pastes with the same data), the new elements will clash unless we
     // use new identifiers.  We need to keep a map so that we can map parent identifiers correctly.
     QHash<EntityItemID, EntityItemID> map;
@@ -2751,6 +2775,11 @@ bool EntityTree::sendEntitiesOperation(const OctreeElementPointer& element, void
         EntityItemID newID = getMapped(oldID);
         EntityItemProperties properties = item->getProperties();
 
+        properties.setEntityHostTypeFromString(args->entityHostType);
+        if (properties.getEntityHostType() == entity::HostType::AVATAR) {
+            properties.setOwningAvatarID(AVATAR_SELF_ID);
+        }
+
         EntityItemID oldParentID = properties.getParentID();
         if (oldParentID.isInvalidID()) {  // no parent
             properties.setPosition(properties.getPosition() + args->root);
@@ -2764,6 +2793,17 @@ bool EntityTree::sendEntitiesOperation(const OctreeElementPointer& element, void
             }
         }
 
+        QVector<QUuid> oldRenderWithZones = properties.getRenderWithZones();
+        if (!oldRenderWithZones.isEmpty()) {
+            QVector<QUuid> newRenderWithZones;
+            for (QUuid oldRenderWithZoneID : oldRenderWithZones) {
+                if (args->ourTree->findEntityByEntityItemID(oldRenderWithZoneID)) {
+                    newRenderWithZones.append(getMapped(oldRenderWithZoneID));
+                }
+            }
+            properties.setRenderWithZones(newRenderWithZones);
+        }
+
         properties.setXNNeighborID(getMapped(properties.getXNNeighborID()));
         properties.setXPNeighborID(getMapped(properties.getXPNeighborID()));
         properties.setYNNeighborID(getMapped(properties.getYNNeighborID()));
@@ -2926,7 +2966,7 @@ void convertGrabUserDataToProperties(EntityItemProperties& properties) {
 }
 
 
-bool EntityTree::readFromMap(QVariantMap& map) {
+bool EntityTree::readFromMap(QVariantMap& map, const bool isImport) {
     // These are needed to deal with older content (before adding inheritance modes)
     int contentVersion = map["Version"].toInt();
 
@@ -3096,7 +3136,7 @@ bool EntityTree::readFromMap(QVariantMap& map) {
             }
         }
 
-        EntityItemPointer entity = addEntity(entityItemID, properties);
+        EntityItemPointer entity = addEntity(entityItemID, properties, isImport);
         if (!entity) {
             qCDebug(entities) << "adding Entity failed:" << entityItemID << properties.getType();
             success = false;
diff --git a/libraries/entities/src/EntityTree.h b/libraries/entities/src/EntityTree.h
index 2d5119d626..66e761f7a0 100644
--- a/libraries/entities/src/EntityTree.h
+++ b/libraries/entities/src/EntityTree.h
@@ -40,6 +40,7 @@ public:
 class SendEntitiesOperationArgs {
 public:
     glm::vec3 root;
+    QString entityHostType;
     EntityTree* ourTree;
     EntityTreePointer otherTree;
     QHash<EntityItemID, EntityItemID>* map;
@@ -117,7 +118,7 @@ public:
     // The newer API...
     void postAddEntity(EntityItemPointer entityItem);
 
-    EntityItemPointer addEntity(const EntityItemID& entityID, const EntityItemProperties& properties, bool isClone = false);
+    EntityItemPointer addEntity(const EntityItemID& entityID, const EntityItemProperties& properties, bool isClone = false, const bool isImport = false);
 
     // use this method if you only know the entityID
     bool updateEntity(const EntityItemID& entityID, const EntityItemProperties& properties, const SharedNodePointer& senderNode = SharedNodePointer(nullptr));
@@ -177,7 +178,7 @@ public:
     static QByteArray remapActionDataIDs(QByteArray actionData, QHash<EntityItemID, EntityItemID>& map);
 
     QVector<EntityItemID> sendEntities(EntityEditPacketSender* packetSender, EntityTreePointer localTree,
-                                       float x, float y, float z);
+                                       const QString& entityHostType, float x, float y, float z);
 
     void entityChanged(EntityItemPointer entity);
 
@@ -195,7 +196,7 @@ public:
 
     virtual bool writeToMap(QVariantMap& entityDescription, OctreeElementPointer element, bool skipDefaultValues,
                             bool skipThoseWithBadParents) override;
-    virtual bool readFromMap(QVariantMap& entityDescription) override;
+    virtual bool readFromMap(QVariantMap& entityDescription, const bool isImport = false) override;
     virtual bool writeToJSON(QString& jsonString, const OctreeElementPointer& element) override;
 
 
@@ -239,9 +240,9 @@ public:
     Q_INVOKABLE int getJointIndex(const QUuid& entityID, const QString& name) const;
     Q_INVOKABLE QStringList getJointNames(const QUuid& entityID) const;
 
-    void knowAvatarID(QUuid avatarID) { _avatarIDs += avatarID; }
-    void forgetAvatarID(QUuid avatarID) { _avatarIDs -= avatarID; }
-    void deleteDescendantsOfAvatar(QUuid avatarID);
+    void knowAvatarID(const QUuid& avatarID);
+    void forgetAvatarID(const QUuid& avatarID);
+    void deleteDescendantsOfAvatar(const QUuid& avatarID);
     void removeFromChildrenOfAvatars(EntityItemPointer entity);
 
     void addToNeedsParentFixupList(EntityItemPointer entity);
@@ -364,8 +365,10 @@ protected:
     QVector<EntityItemWeakPointer> _needsParentFixup; // entites with a parentID but no (yet) known parent instance
     mutable QReadWriteLock _needsParentFixupLock;
 
+    std::mutex _avatarIDsLock;
     // we maintain a list of avatarIDs to notice when an entity is a child of one.
     QSet<QUuid> _avatarIDs; // IDs of avatars connected to entity server
+    std::mutex _childrenOfAvatarsLock;
     QHash<QUuid, QSet<EntityItemID>> _childrenOfAvatars;  // which entities are children of which avatars
 
     float _maxTmpEntityLifetime { DEFAULT_MAX_TMP_ENTITY_LIFETIME };
diff --git a/libraries/fbx/src/FBXSerializer_Mesh.cpp b/libraries/fbx/src/FBXSerializer_Mesh.cpp
index 802db4b428..f74a960dc8 100644
--- a/libraries/fbx/src/FBXSerializer_Mesh.cpp
+++ b/libraries/fbx/src/FBXSerializer_Mesh.cpp
@@ -127,7 +127,7 @@ void appendIndex(MeshData& data, QVector<int>& indices, int index, bool deduplic
 
 
     glm::vec4 color;
-    bool hasColors = (data.colors.size() > 1);
+    bool hasColors = (data.colors.size() > 0);
     if (hasColors) {
         int colorIndex = data.colorsByVertex ? vertexIndex : index;
         if (data.colorIndices.isEmpty()) {    
diff --git a/libraries/fbx/src/FSTReader.cpp b/libraries/fbx/src/FSTReader.cpp
index b647fe2e7f..cd3b8d268c 100644
--- a/libraries/fbx/src/FSTReader.cpp
+++ b/libraries/fbx/src/FSTReader.cpp
@@ -17,6 +17,7 @@
 #include <QNetworkRequest>
 
 #include <NetworkAccessManager.h>
+#include <NetworkingConstants.h>
 #include <SharedUtil.h>
 
 QVariantHash FSTReader::parseMapping(QIODevice* device) {
@@ -253,7 +254,7 @@ QVariantHash FSTReader::downloadMapping(const QString& url) {
     QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
     QNetworkRequest networkRequest = QNetworkRequest(url);
     networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-    networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+    networkRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
     QNetworkReply* reply = networkAccessManager.get(networkRequest);
     QEventLoop loop;
     QObject::connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
diff --git a/libraries/fbx/src/GLTFSerializer.cpp b/libraries/fbx/src/GLTFSerializer.cpp
index a7af5518a9..8234f2b17d 100755
--- a/libraries/fbx/src/GLTFSerializer.cpp
+++ b/libraries/fbx/src/GLTFSerializer.cpp
@@ -1055,6 +1055,11 @@ bool GLTFSerializer::buildGeometry(HFMModel& hfmModel, const hifi::VariantHash&
 
                 int indicesAccessorIdx = primitive.indices;
 
+                if (indicesAccessorIdx > _file.accessors.size()) {
+                    qWarning(modelformat) << "Indices accessor index is out of bounds for model " << _url;
+                    continue;
+                }
+                
                 GLTFAccessor& indicesAccessor = _file.accessors[indicesAccessorIdx];
 
                 // Buffers
@@ -1093,6 +1098,11 @@ bool GLTFSerializer::buildGeometry(HFMModel& hfmModel, const hifi::VariantHash&
                 foreach(auto &key, keys) {
                     int accessorIdx = primitive.attributes.values[key];
 
+                    if (accessorIdx > _file.accessors.size()) {
+                        qWarning(modelformat) << "Accessor index is out of bounds for model " << _url;
+                        continue;
+                    }
+
                     GLTFAccessor& accessor = _file.accessors[accessorIdx];
 
                     if (key == "POSITION") {
@@ -1239,6 +1249,11 @@ bool GLTFSerializer::buildGeometry(HFMModel& hfmModel, const hifi::VariantHash&
                         int v2_index = (indices[n + 1] * 3);
                         int v3_index = (indices[n + 2] * 3);
 
+                        if (v1_index + 2 >= vertices.size() || v2_index + 2 >= vertices.size() || v3_index + 2 >= vertices.size()) {
+                            qWarning(modelformat) << "Indices out of range for model " << _url;
+                            break;
+                        }
+
                         glm::vec3 v1 = glm::vec3(vertices[v1_index], vertices[v1_index + 1], vertices[v1_index + 2]);
                         glm::vec3 v2 = glm::vec3(vertices[v2_index], vertices[v2_index + 1], vertices[v2_index + 2]);
                         glm::vec3 v3 = glm::vec3(vertices[v3_index], vertices[v3_index + 1], vertices[v3_index + 2]);
@@ -1333,7 +1348,7 @@ bool GLTFSerializer::buildGeometry(HFMModel& hfmModel, const hifi::VariantHash&
                 }
 
                 if (validatedIndices.size() == 0) {
-                    qWarning(modelformat) << "Indices out of range for model " << _url;
+                    qWarning(modelformat) << "No valid indices for model " << _url;
                     continue;
                 }
 
diff --git a/libraries/gpu-gl-common/src/gpu/gl/GLTextureTransfer.cpp b/libraries/gpu-gl-common/src/gpu/gl/GLTextureTransfer.cpp
index f4e81448cc..c9a5856a8d 100644
--- a/libraries/gpu-gl-common/src/gpu/gl/GLTextureTransfer.cpp
+++ b/libraries/gpu-gl-common/src/gpu/gl/GLTextureTransfer.cpp
@@ -15,7 +15,7 @@
 
 #define OVERSUBSCRIBED_PRESSURE_VALUE 0.95f
 #define UNDERSUBSCRIBED_PRESSURE_VALUE 0.85f
-#define DEFAULT_ALLOWED_TEXTURE_MEMORY_MB ((size_t)1024)
+#define DEFAULT_ALLOWED_TEXTURE_MEMORY_MB ((size_t)2048)
 #define MAX_RESOURCE_TEXTURES_PER_FRAME 2
 #define NO_BUFFER_WORK_SLEEP_TIME_MS 2
 #define THREADED_TEXTURE_BUFFERING 1
diff --git a/libraries/hfm/src/hfm/HFM.h b/libraries/hfm/src/hfm/HFM.h
index 7111ad2e65..d37d509d38 100644
--- a/libraries/hfm/src/hfm/HFM.h
+++ b/libraries/hfm/src/hfm/HFM.h
@@ -51,7 +51,7 @@ using ColorType = glm::vec3;
 #define HFM_COLOR_ELEMENT gpu::Element::VEC3F_XYZ
 #endif
 
-const int MAX_NUM_PIXELS_FOR_FBX_TEXTURE = 2048 * 2048;
+const int MAX_NUM_PIXELS_FOR_FBX_TEXTURE = 8192 * 8192;
 
 
 using ShapeVertices = std::vector<glm::vec3>;
diff --git a/libraries/image/src/image/TextureProcessing.cpp b/libraries/image/src/image/TextureProcessing.cpp
index c144ed530a..53991ae431 100644
--- a/libraries/image/src/image/TextureProcessing.cpp
+++ b/libraries/image/src/image/TextureProcessing.cpp
@@ -41,7 +41,7 @@ using namespace gpu;
 
 static const glm::uvec2 SPARSE_PAGE_SIZE(128);
 static const glm::uvec2 MAX_TEXTURE_SIZE_GLES(2048);
-static const glm::uvec2 MAX_TEXTURE_SIZE_GL(4096);
+static const glm::uvec2 MAX_TEXTURE_SIZE_GL(8192);
 bool DEV_DECIMATE_TEXTURES = false;
 std::atomic<size_t> DECIMATED_TEXTURE_COUNT{ 0 };
 std::atomic<size_t> RECTIFIED_TEXTURE_COUNT{ 0 };
diff --git a/libraries/networking/src/AccountManager.cpp b/libraries/networking/src/AccountManager.cpp
index 83c0fd28dd..5589defd80 100644
--- a/libraries/networking/src/AccountManager.cpp
+++ b/libraries/networking/src/AccountManager.cpp
@@ -508,7 +508,9 @@ bool AccountManager::checkAndSignalForAccessToken() {
 
     if (!hasToken) {
         // emit a signal so somebody can call back to us and request an access token given a username and password
-        emit authRequired();
+
+        // Dialog can be hidden immediately after showing if we've just teleported to the domain, unless the signal is delayed.
+        QTimer::singleShot(500, this, [this] { emit this->authRequired(); });
     }
 
     return hasToken;
diff --git a/libraries/networking/src/AccountManager.h b/libraries/networking/src/AccountManager.h
index 26fbe502a0..edc7b652b4 100644
--- a/libraries/networking/src/AccountManager.h
+++ b/libraries/networking/src/AccountManager.h
@@ -58,7 +58,7 @@ const auto METAVERSE_SESSION_ID_HEADER = QString("HFM-SessionID").toLocal8Bit();
 
 using UserAgentGetter = std::function<QString()>;
 
-const auto DEFAULT_USER_AGENT_GETTER = []() -> QString { return HIGH_FIDELITY_USER_AGENT; };
+const auto DEFAULT_USER_AGENT_GETTER = []() -> QString { return NetworkingConstants::VIRCADIA_USER_AGENT; };
 
 class AccountManager : public QObject, public Dependency {
     Q_OBJECT
diff --git a/libraries/networking/src/AddressManager.h b/libraries/networking/src/AddressManager.h
index 8bdb777f96..148c4f8580 100644
--- a/libraries/networking/src/AddressManager.h
+++ b/libraries/networking/src/AddressManager.h
@@ -249,8 +249,9 @@ public slots:
      * Takes you to a specified metaverse address.
      * @function location.handleLookupString
      * @param {string} address - The address to go to: a <code>"hifi://"</code> address, an IP address (e.g., 
-     *     <code>"127.0.0.1"</code> or <code>"localhost"</code>), a domain name, a named path on a domain (starts with 
-     *     <code>"/"</code>), a position or position and orientation, or a user (starts with <code>"@"</code>).
+     *     <code>"127.0.0.1"</code> or <code>"localhost"</code>), a <code>file:///</code> address, a domain name, a named path 
+     *     on a domain (starts with <code>"/"</code>), a position or position and orientation, or a user (starts with 
+     *     <code>"@"</code>).
      * @param {boolean} [fromSuggestions=false] - Set to <code>true</code> if the address is obtained from the "Goto" dialog.
      *     Helps ensure that user's location history is correctly maintained.
      */
diff --git a/libraries/networking/src/DomainAccountManager.cpp b/libraries/networking/src/DomainAccountManager.cpp
new file mode 100644
index 0000000000..928b581a5b
--- /dev/null
+++ b/libraries/networking/src/DomainAccountManager.cpp
@@ -0,0 +1,203 @@
+//
+//  DomainAccountManager.cpp
+//  libraries/networking/src
+//
+//  Created by David Rowe on 23 Jul 2020.
+//  Copyright 2020 Vircadia contributors.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+//
+
+#include "DomainAccountManager.h"
+
+#include <QTimer>
+#include <QtCore/QJsonObject>
+#include <QtCore/QJsonDocument>
+#include <QtNetwork/QNetworkRequest>
+#include <QtNetwork/QNetworkReply>
+
+#include <DependencyManager.h>
+#include <SettingHandle.h>
+
+#include "NetworkingConstants.h"
+#include "NetworkAccessManager.h"
+#include "NetworkLogging.h"
+#include "NodeList.h"
+
+// FIXME: Generalize to other OAuth2 sources for domain login.
+
+const bool VERBOSE_HTTP_REQUEST_DEBUGGING = false;
+
+// ####### TODO: Enable and use these?
+// ####### TODO: Add storing domain URL and check against it when retrieving values?
+// ####### TODO: Add storing _authURL and check against it when retrieving values?
+/*
+Setting::Handle<QString> domainAccessToken {"private/domainAccessToken", "" };
+Setting::Handle<QString> domainAccessRefreshToken {"private/domainAccessToken", "" };
+Setting::Handle<int> domainAccessTokenExpiresIn {"private/domainAccessTokenExpiresIn", -1 };
+Setting::Handle<QString> domainAccessTokenType {"private/domainAccessTokenType", "" };
+*/
+
+DomainAccountManager::DomainAccountManager() : 
+    _authURL(),
+    _username(),
+    _access_token(),
+    _refresh_token(),
+    _domain_name()
+{
+    connect(this, &DomainAccountManager::loginComplete, this, &DomainAccountManager::sendInterfaceAccessTokenToServer);
+}
+
+void DomainAccountManager::setAuthURL(const QUrl& authURL) {
+    if (_authURL != authURL) {
+        _authURL = authURL;
+
+        qCDebug(networking) << "AccountManager URL for authenticated requests has been changed to" << qPrintable(_authURL.toString());
+
+        _access_token = "";
+        _refresh_token = "";
+
+        // ####### TODO: Restore and refresh OAuth2 tokens if have them for this domain.
+
+        // ####### TODO: Handle "keep me logged in".
+    }
+}
+
+bool DomainAccountManager::isLoggedIn() { 
+    return !_authURL.isEmpty() && hasValidAccessToken();
+}
+
+void DomainAccountManager::requestAccessToken(const QString& username, const QString& password) {
+
+    _username = username;
+    _access_token = "";
+    _refresh_token = "";
+
+    QNetworkRequest request;
+
+    request.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
+    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
+
+    // miniOrange WordPress API Authentication plugin:
+    // - Requires "client_id" parameter.
+    // - Ignores "state" parameter.
+    QByteArray formData;
+    formData.append("grant_type=password&");
+    formData.append("username=" + QUrl::toPercentEncoding(username) + "&");
+    formData.append("password=" + QUrl::toPercentEncoding(password) + "&");
+    formData.append("client_id=" + _clientID);
+
+    request.setUrl(_authURL);
+
+    request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
+
+    QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
+    QNetworkReply* requestReply = networkAccessManager.post(request, formData);
+    connect(requestReply, &QNetworkReply::finished, this, &DomainAccountManager::requestAccessTokenFinished);
+}
+
+void DomainAccountManager::requestAccessTokenFinished() {
+
+    QNetworkReply* requestReply = reinterpret_cast<QNetworkReply*>(sender());
+
+    QJsonDocument jsonResponse = QJsonDocument::fromJson(requestReply->readAll());
+    const QJsonObject& rootObject = jsonResponse.object();
+
+    auto httpStatus = requestReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
+    if (200 <= httpStatus && httpStatus < 300) {
+
+        // miniOrange plugin provides no scope.
+        if (rootObject.contains("access_token")) {
+            // Success.
+            auto nodeList = DependencyManager::get<NodeList>();
+            _domain_name = nodeList->getDomainHandler().getHostname();
+            QUrl rootURL = requestReply->url();
+            rootURL.setPath("");
+            setTokensFromJSON(rootObject, rootURL);
+            emit loginComplete();
+        } else {
+            // Failure.
+            qCDebug(networking) << "Received a response for password grant that is missing one or more expected values.";
+            emit loginFailed();
+        }
+
+    } else {
+        // Failure.
+        qCDebug(networking) << "Error in response for password grant -" << httpStatus << requestReply->error()
+            << "-" << rootObject["error"].toString() << rootObject["error_description"].toString();
+        emit loginFailed();
+    }
+}
+
+void DomainAccountManager::sendInterfaceAccessTokenToServer() {
+    emit newTokens();
+}
+
+bool DomainAccountManager::accessTokenIsExpired() {
+    // ####### TODO: accessTokenIsExpired()
+    return true;
+    /*
+    return domainAccessTokenExpiresIn.get() != -1 && domainAccessTokenExpiresIn.get() <= QDateTime::currentMSecsSinceEpoch(); 
+    */
+}
+
+
+bool DomainAccountManager::hasValidAccessToken() {
+    // ###### TODO: wire this up to actually retrieve a token (based on session or storage) and confirm that it is in fact valid and relevant to the current domain.
+    // QString currentDomainAccessToken = domainAccessToken.get();
+    QString currentDomainAccessToken = _access_token;
+
+    // if (currentDomainAccessToken.isEmpty() || accessTokenIsExpired()) {
+    if (currentDomainAccessToken.isEmpty()) {
+        if (VERBOSE_HTTP_REQUEST_DEBUGGING) {
+            qCDebug(networking) << "An access token is required for requests to"
+                                << qPrintable(_authURL.toString());
+        }
+
+        return false;
+    }
+
+    // ####### TODO
+        
+    // if (!_isWaitingForTokenRefresh && needsToRefreshToken()) {
+    //     refreshAccessToken();
+    // }
+
+    return true;
+}
+
+void DomainAccountManager::setTokensFromJSON(const QJsonObject& jsonObject, const QUrl& url) {
+    _access_token = jsonObject["access_token"].toString();
+    _refresh_token = jsonObject["refresh_token"].toString();
+
+    // ####### TODO: Enable and use these?
+    // ####### TODO: Protect these per AccountManager?
+    // ######: TODO: clientID needed?
+    // qCDebug(networking) << "Storing a domain account with access-token for" << qPrintable(url.toString());
+    // domainAccessToken.set(jsonObject["access_token"].toString());
+    // domainAccessRefreshToken.set(jsonObject["refresh_token"].toString());
+    // domainAccessTokenExpiresIn.set(QDateTime::currentMSecsSinceEpoch() + (jsonObject["expires_in"].toDouble() * 1000));
+    // domainAccessTokenType.set(jsonObject["token_type"].toString());
+}
+
+bool DomainAccountManager::checkAndSignalForAccessToken() {
+    bool hasToken = hasValidAccessToken();
+
+    // ####### TODO: Handle hasToken == true. 
+    // It causes the login dialog not to display (OK) but somewhere the domain server needs to be sent it (and if domain server 
+    // gets error when trying to use it then user should be prompted to login).
+    hasToken = false;
+    
+    if (!hasToken) {
+        // Emit a signal so somebody can call back to us and request an access token given a user name and password.
+
+        // Dialog can be hidden immediately after showing if we've just teleported to the domain, unless the signal is delayed.
+        auto domain = _authURL.host();
+        QTimer::singleShot(500, this, [this, domain] {
+            emit this->authRequired(domain); 
+        });
+    }
+
+    return hasToken;
+}
diff --git a/libraries/networking/src/DomainAccountManager.h b/libraries/networking/src/DomainAccountManager.h
new file mode 100644
index 0000000000..31226d6990
--- /dev/null
+++ b/libraries/networking/src/DomainAccountManager.h
@@ -0,0 +1,66 @@
+//
+//  DomainAccountManager.h
+//  libraries/networking/src
+//
+//  Created by David Rowe on 23 Jul 2020.
+//  Copyright 2020 Vircadia contributors.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+//
+
+#ifndef hifi_DomainAccountManager_h
+#define hifi_DomainAccountManager_h
+
+#include <QtCore/QObject>
+#include <QtCore/QUrl>
+
+#include <DependencyManager.h>
+
+
+class DomainAccountManager : public QObject, public Dependency {
+    Q_OBJECT
+public:
+    DomainAccountManager();
+
+    void setAuthURL(const QUrl& authURL);
+    void setClientID(const QString& clientID) { _clientID = clientID; }
+
+    QString getUsername() { return _username; }
+    QString getAccessToken() { return _access_token; }
+    QString getRefreshToken() { return _refresh_token; }
+    QString getAuthedDomain() { return _domain_name; }
+
+    bool isLoggedIn();
+
+    Q_INVOKABLE bool checkAndSignalForAccessToken();
+
+public slots:
+    void requestAccessToken(const QString& username, const QString& password);
+    
+    void requestAccessTokenFinished();
+
+signals:
+    void authRequired(const QString& domain);
+    void loginComplete();
+    void loginFailed();
+    void logoutComplete();
+    void newTokens();
+
+private slots:
+
+private:
+    bool hasValidAccessToken();
+    bool accessTokenIsExpired();
+    void setTokensFromJSON(const QJsonObject&, const QUrl& url);
+    void sendInterfaceAccessTokenToServer();
+
+    QUrl _authURL;
+    QString _clientID;
+    QString _username;      // ####### TODO: Store elsewhere?
+    QString _access_token;  // ####... ""
+    QString _refresh_token; // ####... ""
+    QString _domain_name;   // ####... ""
+};
+
+#endif  // hifi_DomainAccountManager_h
diff --git a/libraries/networking/src/DomainHandler.cpp b/libraries/networking/src/DomainHandler.cpp
index d34b5cf090..c1a24748f4 100644
--- a/libraries/networking/src/DomainHandler.cpp
+++ b/libraries/networking/src/DomainHandler.cpp
@@ -4,6 +4,7 @@
 //
 //  Created by Stephen Birarda on 2/18/2014.
 //  Copyright 2014 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -24,6 +25,7 @@
 
 #include "AddressManager.h"
 #include "Assignment.h"
+#include "DomainAccountManager.h"
 #include "HifiSockAddr.h"
 #include "NodeList.h"
 #include "udt/Packet.h"
@@ -144,7 +146,8 @@ void DomainHandler::hardReset(QString reason) {
 bool DomainHandler::isHardRefusal(int reasonCode) {
     return (reasonCode == (int)ConnectionRefusedReason::ProtocolMismatch ||
             reasonCode == (int)ConnectionRefusedReason::TooManyUsers ||
-            reasonCode == (int)ConnectionRefusedReason::NotAuthorized ||
+            reasonCode == (int)ConnectionRefusedReason::NotAuthorizedMetaverse ||
+            reasonCode == (int)ConnectionRefusedReason::NotAuthorizedDomain ||
             reasonCode == (int)ConnectionRefusedReason::TimedOut);
 }
 
@@ -219,6 +222,8 @@ void DomainHandler::setURLAndID(QUrl domainURL, QUuid domainID) {
         QString previousHost = _domainURL.host();
         _domainURL = domainURL;
 
+        _hasCheckedForDomainAccessToken = false;
+
         if (previousHost != domainURL.host()) {
             qCDebug(networking) << "Updated domain hostname to" << domainURL.host();
 
@@ -489,16 +494,33 @@ void DomainHandler::processICEResponsePacket(QSharedPointer<ReceivedMessage> mes
     }
 }
 
-bool DomainHandler::reasonSuggestsLogin(ConnectionRefusedReason reasonCode) {
+bool DomainHandler::reasonSuggestsMetaverseLogin(ConnectionRefusedReason reasonCode) {
     switch (reasonCode) {
-        case ConnectionRefusedReason::LoginError:
-        case ConnectionRefusedReason::NotAuthorized:
+        case ConnectionRefusedReason::LoginErrorMetaverse:
+        case ConnectionRefusedReason::NotAuthorizedMetaverse:
             return true;
 
         default:
         case ConnectionRefusedReason::Unknown:
         case ConnectionRefusedReason::ProtocolMismatch:
         case ConnectionRefusedReason::TooManyUsers:
+        case ConnectionRefusedReason::NotAuthorizedDomain:
+            return false;
+    }
+    return false;
+}
+
+bool DomainHandler::reasonSuggestsDomainLogin(ConnectionRefusedReason reasonCode) {
+    switch (reasonCode) {
+        case ConnectionRefusedReason::LoginErrorDomain:
+        case ConnectionRefusedReason::NotAuthorizedDomain:
+            return true;
+
+        default:
+        case ConnectionRefusedReason::Unknown:
+        case ConnectionRefusedReason::ProtocolMismatch:
+        case ConnectionRefusedReason::TooManyUsers:
+        case ConnectionRefusedReason::NotAuthorizedMetaverse:
             return false;
     }
     return false;
@@ -528,7 +550,9 @@ void DomainHandler::processDomainServerConnectionDeniedPacket(QSharedPointer<Rec
 
     // output to the log so the user knows they got a denied connection request
     // and check and signal for an access token so that we can make sure they are logged in
-    qCWarning(networking) << "The domain-server denied a connection request: " << reasonMessage << " extraInfo:" << extraInfo;
+    QString sanitizedExtraInfo = extraInfo.toLower().startsWith("http") ? "" : extraInfo;  // Don't log URLs.
+    qCWarning(networking) << "The domain-server denied a connection request: " << reasonMessage 
+        << " extraInfo:" << sanitizedExtraInfo;
 
     if (!_domainConnectionRefusals.contains(reasonMessage)) {
         _domainConnectionRefusals.insert(reasonMessage);
@@ -541,11 +565,12 @@ void DomainHandler::processDomainServerConnectionDeniedPacket(QSharedPointer<Rec
 #endif
     }
 
-    auto accountManager = DependencyManager::get<AccountManager>();
 
-    // Some connection refusal reasons imply that a login is required. If so, suggest a new login
-    if (reasonSuggestsLogin(reasonCode)) {
-        qCWarning(networking) << "Make sure you are logged in.";
+    // Some connection refusal reasons imply that a login is required. If so, suggest a new login.
+    if (reasonSuggestsMetaverseLogin(reasonCode)) {
+        qCWarning(networking) << "Make sure you are logged in to the metaverse.";
+
+        auto accountManager = DependencyManager::get<AccountManager>();
 
         if (!_hasCheckedForAccessToken) {
             accountManager->checkAndSignalForAccessToken();
@@ -559,6 +584,23 @@ void DomainHandler::processDomainServerConnectionDeniedPacket(QSharedPointer<Rec
             accountManager->generateNewUserKeypair();
             _connectionDenialsSinceKeypairRegen = 0;
         }
+    } else if (reasonSuggestsDomainLogin(reasonCode)) {
+        qCWarning(networking) << "Make sure you are logged in to the domain.";
+
+        auto accountManager = DependencyManager::get<DomainAccountManager>();
+        if (!extraInfo.isEmpty()) {
+            auto extraInfoComponents = extraInfo.split("|");
+            accountManager->setAuthURL(extraInfoComponents.value(0));
+            accountManager->setClientID(extraInfoComponents.value(1));
+        }
+
+        if (!_hasCheckedForDomainAccessToken) {
+            accountManager->checkAndSignalForAccessToken();
+            _hasCheckedForDomainAccessToken = true;
+        }
+
+        // ####### TODO: regenerate key-pair after several failed connection attempts, similar to metaverse login code?
+
     }
 }
 
diff --git a/libraries/networking/src/DomainHandler.h b/libraries/networking/src/DomainHandler.h
index 50ebc1edbc..f77ff2bb5b 100644
--- a/libraries/networking/src/DomainHandler.h
+++ b/libraries/networking/src/DomainHandler.h
@@ -4,6 +4,7 @@
 //
 //  Created by Stephen Birarda on 2/18/2014.
 //  Copyright 2014 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -131,6 +132,7 @@ public:
 
     bool isConnected() const { return _isConnected; }
     void setIsConnected(bool isConnected);
+
     bool isServerless() const { return _domainURL.scheme() != URL_SCHEME_HIFI; }
     bool getInterstitialModeEnabled() const;
     void setInterstitialModeEnabled(bool enableInterstitialMode);
@@ -179,14 +181,14 @@ public:
      *       <td>The communications protocols of the domain and your Interface are not the same.</td>
      *     </tr>
      *     <tr>
-     *       <td><strong>LoginError</strong></td>
+     *       <td><strong>LoginErrorMetaverse</strong></td>
      *       <td><code>2</code></td>
-     *       <td>You could not be logged into the domain.</td>
+     *       <td>You could not be logged into the domain per your metaverse login.</td>
      *     </tr>
      *     <tr>
-     *       <td><strong>NotAuthorized</strong></td>
+     *       <td><strong>NotAuthorizedMetaverse</strong></td>
      *       <td><code>3</code></td>
-     *       <td>You are not authorized to connect to the domain.</td>
+     *       <td>You are not authorized to connect to the domain per your metaverse login.</td>
      *     </tr>
      *     <tr>
      *       <td><strong>TooManyUsers</strong></td>
@@ -198,6 +200,16 @@ public:
      *       <td><code>5</code></td>
      *       <td>Connecting to the domain timed out.</td>
      *     </tr>
+     *     <tr>
+     *       <td><strong>LoginErrorDomain</strong></td>
+     *       <td><code>2</code></td>
+     *       <td>You could not be logged into the domain per your domain login.</td>
+     *     </tr>
+     *     <tr>
+     *       <td><strong>NotAuthorizedDomain</strong></td>
+     *       <td><code>6</code></td>
+     *       <td>You are not authorized to connect to the domain per your domain login.</td>
+     *     </tr>
      *   </tbody>
      * </table>
      * @typedef {number} Window.ConnectionRefusedReason
@@ -205,10 +217,12 @@ public:
     enum class ConnectionRefusedReason : uint8_t {
         Unknown,
         ProtocolMismatch,
-        LoginError,
-        NotAuthorized,
+        LoginErrorMetaverse,
+        NotAuthorizedMetaverse,
         TooManyUsers,
-        TimedOut
+        TimedOut,
+        LoginErrorDomain,
+        NotAuthorizedDomain
     };
 
 public slots:
@@ -254,7 +268,8 @@ signals:
     void limitOfSilentDomainCheckInsReached();
 
 private:
-    bool reasonSuggestsLogin(ConnectionRefusedReason reasonCode);
+    bool reasonSuggestsMetaverseLogin(ConnectionRefusedReason reasonCode);
+    bool reasonSuggestsDomainLogin(ConnectionRefusedReason reasonCode);
     void sendDisconnectPacket();
     void hardReset(QString reason);
 
@@ -285,6 +300,7 @@ private:
 
     QSet<QString> _domainConnectionRefusals;
     bool _hasCheckedForAccessToken { false };
+    bool _hasCheckedForDomainAccessToken { false };
     int _connectionDenialsSinceKeypairRegen { 0 };
     int _checkInPacketsSinceLastReply { 0 };
 
diff --git a/libraries/networking/src/HTTPResourceRequest.cpp b/libraries/networking/src/HTTPResourceRequest.cpp
index 50221a136a..b13b66f740 100644
--- a/libraries/networking/src/HTTPResourceRequest.cpp
+++ b/libraries/networking/src/HTTPResourceRequest.cpp
@@ -21,6 +21,7 @@
 
 #include "NetworkAccessManager.h"
 #include "NetworkLogging.h"
+#include "NetworkingConstants.h"
 
 HTTPResourceRequest::~HTTPResourceRequest() {
     if (_reply) {
@@ -54,7 +55,7 @@ void HTTPResourceRequest::doSend() {
 
     QNetworkRequest networkRequest(_url);
     networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-    networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+    networkRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
 
     if (_cacheEnabled) {
         networkRequest.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache);
diff --git a/libraries/networking/src/NetworkingConstants.h b/libraries/networking/src/NetworkingConstants.h
index 1d28205310..edc1c1a1ef 100644
--- a/libraries/networking/src/NetworkingConstants.h
+++ b/libraries/networking/src/NetworkingConstants.h
@@ -30,6 +30,14 @@ namespace NetworkingConstants {
 
     // Web Engine requests to this parent domain have an account authorization header added
     const QString AUTH_HOSTNAME_BASE = "highfidelity.com";
+    const QStringList IS_AUTHABLE_HOSTNAME = { "highfidelity.com", "highfidelity.io" };
+    
+    // Use a custom User-Agent to avoid ModSecurity filtering, e.g. by hosting providers.
+    const QByteArray VIRCADIA_USER_AGENT = "Mozilla/5.0 (VircadiaInterface)";
+    
+    const QString WEB_ENGINE_USER_AGENT = "Chrome/48.0 (VircadiaInterface)";
+    const QString METAVERSE_USER_AGENT = "Chrome/48.0 (VircadiaInterface)";
+    const QString MOBILE_USER_AGENT = "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36";
 
     const QUrl BUILDS_XML_URL("https://highfidelity.com/builds.xml");
     const QUrl MASTER_BUILDS_XML_URL("https://highfidelity.com/dev-builds.xml");
diff --git a/libraries/networking/src/NodeList.cpp b/libraries/networking/src/NodeList.cpp
index 2c584b1c48..e02a8dd56e 100644
--- a/libraries/networking/src/NodeList.cpp
+++ b/libraries/networking/src/NodeList.cpp
@@ -4,6 +4,7 @@
 //
 //  Created by Stephen Birarda on 2/15/13.
 //  Copyright 2013 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -33,6 +34,7 @@
 #include "AddressManager.h"
 #include "Assignment.h"
 #include "AudioHelpers.h"
+#include "DomainAccountManager.h"
 #include "HifiSockAddr.h"
 #include "FingerprintUtils.h"
 
@@ -103,6 +105,13 @@ NodeList::NodeList(char newOwnerType, int socketListenPort, int dtlsListenPort)
     // clear our NodeList when logout is requested
     connect(accountManager.data(), &AccountManager::logoutComplete , this, [this]{ reset("Logged out"); });
 
+    // Only used in Interface.
+    auto domainAccountManager = DependencyManager::get<DomainAccountManager>();
+    if (domainAccountManager) {
+        _hasDomainAccountManager = true;
+        connect(domainAccountManager.data(), &DomainAccountManager::newTokens, this, &NodeList::sendDomainServerCheckIn);
+    }
+
     // anytime we get a new node we will want to attempt to punch to it
     connect(this, &LimitedNodeList::nodeAdded, this, &NodeList::startNodeHolePunch);
     connect(this, &LimitedNodeList::nodeSocketUpdated, this, &NodeList::startNodeHolePunch);
@@ -379,6 +388,7 @@ void NodeList::sendDomainServerCheckIn() {
         if (domainPacketType == PacketType::DomainConnectRequest) {
 
 #if (PR_BUILD || DEV_BUILD)
+            // #######
             if (_shouldSendNewerVersion) {
                 domainPacket->setVersion(versionForPacketType(domainPacketType) + 1);
             }
@@ -466,6 +476,7 @@ void NodeList::sendDomainServerCheckIn() {
         packetStream << _ownerType.load() << publicSockAddr << localSockAddr << _nodeTypesOfInterest.toList();
         packetStream << DependencyManager::get<AddressManager>()->getPlaceName();
 
+        // ####### TODO: Also send if need to send new domainLogin data?
         if (!domainIsConnected) {
             DataServerAccountInfo& accountInfo = accountManager->getAccountInfo();
             packetStream << accountInfo.getUsername();
@@ -474,6 +485,23 @@ void NodeList::sendDomainServerCheckIn() {
             if (requiresUsernameSignature && accountManager->getAccountInfo().hasPrivateKey()) {
                 const QByteArray& usernameSignature = accountManager->getAccountInfo().getUsernameSignature(connectionToken);
                 packetStream << usernameSignature;
+            } else {
+                // ####### TODO: Only append if are going to send domain username?
+                packetStream << QString("");  // Placeholder in case have domain username.
+            }
+        } else {
+            // ####### TODO: Only append if are going to send domainUsername?
+            packetStream << QString("") << QString("");  // Placeholders in case have domain username.
+        }
+
+        // Send domain domain login data from Interface to domain server.
+        if (_hasDomainAccountManager) {
+            auto domainAccountManager = DependencyManager::get<DomainAccountManager>();
+            if (!domainAccountManager->getUsername().isEmpty()) {
+                packetStream << domainAccountManager->getUsername();
+                if (!domainAccountManager->getAccessToken().isEmpty()) {
+                    packetStream << (domainAccountManager->getAccessToken() + ":" + domainAccountManager->getRefreshToken());
+                }
             }
         }
 
diff --git a/libraries/networking/src/NodeList.h b/libraries/networking/src/NodeList.h
index c377ea89cb..4954c53c84 100644
--- a/libraries/networking/src/NodeList.h
+++ b/libraries/networking/src/NodeList.h
@@ -196,6 +196,8 @@ private:
 #if (PR_BUILD || DEV_BUILD)
     bool _shouldSendNewerVersion { false };
 #endif
+
+    bool _hasDomainAccountManager { false };
 };
 
 #endif // hifi_NodeList_h
diff --git a/libraries/networking/src/NodePermissions.h b/libraries/networking/src/NodePermissions.h
index 583c1b29ac..82c008feef 100644
--- a/libraries/networking/src/NodePermissions.h
+++ b/libraries/networking/src/NodePermissions.h
@@ -4,6 +4,7 @@
 //
 //  Created by Seth Alves on 2016-6-1.
 //  Copyright 2016 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -51,6 +52,9 @@ public:
     void setVerifiedUserName(QString userName) { _verifiedUserName = userName.toLower(); }
     const QString& getVerifiedUserName() const { return _verifiedUserName; }
 
+    void setVerifiedDomainUserName(QString userName) { _verifiedDomainUserName = userName.toLower(); }
+    const QString& getVerifiedDomainUserName() const { return _verifiedDomainUserName; }
+
     void setGroupID(QUuid groupID) { _groupID = groupID; if (!groupID.isNull()) { _groupIDSet = true; }}
     QUuid getGroupID() const { return _groupID; }
     bool isGroup() const { return _groupIDSet; }
@@ -99,6 +103,7 @@ protected:
     QString _id;
     QUuid _rankID { QUuid() }; // 0 unless this is for a group
     QString _verifiedUserName;
+    QString _verifiedDomainUserName;
 
     bool _groupIDSet { false };
     QUuid _groupID;
diff --git a/libraries/networking/src/OAuthNetworkAccessManager.cpp b/libraries/networking/src/OAuthNetworkAccessManager.cpp
index b1e04da4b6..a036588646 100644
--- a/libraries/networking/src/OAuthNetworkAccessManager.cpp
+++ b/libraries/networking/src/OAuthNetworkAccessManager.cpp
@@ -39,7 +39,7 @@ QNetworkReply* OAuthNetworkAccessManager::createRequest(QNetworkAccessManager::O
         && req.url().host() == MetaverseAPI::getCurrentMetaverseServerURL().host()) {
         QNetworkRequest authenticatedRequest(req);
         authenticatedRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-        authenticatedRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+        authenticatedRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
         authenticatedRequest.setRawHeader(ACCESS_TOKEN_AUTHORIZATION_HEADER,
                                           accountManager->getAccountInfo().getAccessToken().authorizationHeaderValue());
         
diff --git a/libraries/networking/src/ResourceManager.cpp b/libraries/networking/src/ResourceManager.cpp
index f4f5525ddc..0b9d5a2d60 100644
--- a/libraries/networking/src/ResourceManager.cpp
+++ b/libraries/networking/src/ResourceManager.cpp
@@ -25,6 +25,7 @@
 #include "HTTPResourceRequest.h"
 #include "NetworkAccessManager.h"
 #include "NetworkLogging.h"
+#include "NetworkingConstants.h"
 
 ResourceManager::ResourceManager(bool atpSupportEnabled) : _atpSupportEnabled(atpSupportEnabled) {
     _thread.setObjectName("Resource Manager Thread");
@@ -157,7 +158,7 @@ bool ResourceManager::resourceExists(const QUrl& url) {
         QNetworkRequest request{ url };
 
         request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-        request.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+        request.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
 
         auto reply = networkAccessManager.head(request);
 
diff --git a/libraries/networking/src/SandboxUtils.cpp b/libraries/networking/src/SandboxUtils.cpp
index 4a348b0662..e3ef2a787d 100644
--- a/libraries/networking/src/SandboxUtils.cpp
+++ b/libraries/networking/src/SandboxUtils.cpp
@@ -22,6 +22,7 @@
 
 #include "NetworkAccessManager.h"
 #include "NetworkLogging.h"
+#include "NetworkingConstants.h"
 
 namespace SandboxUtils {
 
@@ -29,7 +30,7 @@ QNetworkReply* getStatus() {
     auto& networkAccessManager = NetworkAccessManager::getInstance();
     QNetworkRequest sandboxStatus(SANDBOX_STATUS_URL);
     sandboxStatus.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-    sandboxStatus.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+    sandboxStatus.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
     return networkAccessManager.get(sandboxStatus);
 }
 
diff --git a/libraries/octree/src/Octree.cpp b/libraries/octree/src/Octree.cpp
index aac0de27a1..897ac142bf 100644
--- a/libraries/octree/src/Octree.cpp
+++ b/libraries/octree/src/Octree.cpp
@@ -734,7 +734,8 @@ QString getMarketplaceID(const QString& urlString) {
 bool Octree::readFromURL(
     const QString& urlString,
     const bool isObservable,
-    const qint64 callerId
+    const qint64 callerId,
+    const bool isImport
 ) {
     QString trimmedUrl = urlString.trimmed();
     QString marketplaceID = getMarketplaceID(trimmedUrl);
@@ -766,7 +767,7 @@ bool Octree::readFromURL(
     }
 
     QDataStream inputStream(data);
-    return readFromStream(data.size(), inputStream, marketplaceID);
+    return readFromStream(data.size(), inputStream, marketplaceID, isImport);
 }
 
 bool Octree::readFromByteArray(
@@ -791,7 +792,8 @@ bool Octree::readFromByteArray(
 bool Octree::readFromStream(
     uint64_t streamLength,
     QDataStream& inputStream,
-    const QString& marketplaceID
+    const QString& marketplaceID,
+    const bool isImport
 ) {
     // decide if this is binary SVO or JSON-formatted SVO
     QIODevice *device = inputStream.device();
@@ -804,7 +806,7 @@ bool Octree::readFromStream(
         return false;
     } else {
         qCDebug(octree) << "Reading from JSON SVO Stream length:" << streamLength;
-        return readJSONFromStream(streamLength, inputStream, marketplaceID);
+        return readJSONFromStream(streamLength, inputStream, marketplaceID, isImport);
     }
 }
 
@@ -834,7 +836,8 @@ const int READ_JSON_BUFFER_SIZE = 2048;
 bool Octree::readJSONFromStream(
     uint64_t streamLength,
     QDataStream& inputStream,
-    const QString& marketplaceID /*=""*/
+    const QString& marketplaceID, /*=""*/
+    const bool isImport
 ) {
     // if the data is gzipped we may not have a useful bytesAvailable() result, so just keep reading until
     // we get an eof.  Leave streamLength parameter for consistency.
@@ -866,7 +869,7 @@ bool Octree::readJSONFromStream(
         addMarketplaceIDToDocumentEntities(asMap, marketplaceID);
     }
 
-    bool success = readFromMap(asMap);
+    bool success = readFromMap(asMap, isImport);
     delete[] rawData;
     return success;
 }
diff --git a/libraries/octree/src/Octree.h b/libraries/octree/src/Octree.h
index 45dae3049d..a7885801de 100644
--- a/libraries/octree/src/Octree.h
+++ b/libraries/octree/src/Octree.h
@@ -216,13 +216,12 @@ public:
 
     // Octree importers
     bool readFromFile(const char* filename);
-    bool readFromURL(const QString& url, const bool isObservable = true, const qint64 callerId = -1); // will support file urls as well...
+    bool readFromURL(const QString& url, const bool isObservable = true, const qint64 callerId = -1, const bool isImport = false); // will support file urls as well...
     bool readFromByteArray(const QString& url, const QByteArray& byteArray);
-    bool readFromStream(uint64_t streamLength, QDataStream& inputStream, const QString& marketplaceID="");
-    bool readSVOFromStream(uint64_t streamLength, QDataStream& inputStream);
-    bool readJSONFromStream(uint64_t streamLength, QDataStream& inputStream, const QString& marketplaceID="");
+    bool readFromStream(uint64_t streamLength, QDataStream& inputStream, const QString& marketplaceID="", const bool isImport = false);
+    bool readJSONFromStream(uint64_t streamLength, QDataStream& inputStream, const QString& marketplaceID="", const bool isImport = false);
     bool readJSONFromGzippedFile(QString qFileName);
-    virtual bool readFromMap(QVariantMap& entityDescription) = 0;
+    virtual bool readFromMap(QVariantMap& entityDescription, const bool isImport = false) = 0;
 
     uint64_t getOctreeElementsCount();
 
diff --git a/libraries/physics/src/CharacterController.cpp b/libraries/physics/src/CharacterController.cpp
index a796ea28a0..e222692aea 100755
--- a/libraries/physics/src/CharacterController.cpp
+++ b/libraries/physics/src/CharacterController.cpp
@@ -543,12 +543,8 @@ void CharacterController::setLocalBoundingBox(const glm::vec3& minCorner, const
         _minStepHeight = DEFAULT_MIN_STEP_HEIGHT_FACTOR * (_halfHeight + _radius);
         _maxStepHeight = DEFAULT_MAX_STEP_HEIGHT_FACTOR * (_halfHeight + _radius);
 
-        if (_physicsEngine) {
-            // must REMOVE from world prior to shape update
-            _pendingFlags |= PENDING_FLAG_REMOVE_FROM_SIMULATION | PENDING_FLAG_REMOVE_DETAILED_FROM_SIMULATION;
-        }
-        _pendingFlags |= PENDING_FLAG_UPDATE_SHAPE;
-        _pendingFlags |= PENDING_FLAG_ADD_TO_SIMULATION | PENDING_FLAG_ADD_DETAILED_TO_SIMULATION;
+        _pendingFlags |= PENDING_FLAG_UPDATE_SHAPE | PENDING_FLAG_REMOVE_FROM_SIMULATION | PENDING_FLAG_REMOVE_DETAILED_FROM_SIMULATION |
+            PENDING_FLAG_ADD_TO_SIMULATION | PENDING_FLAG_ADD_DETAILED_TO_SIMULATION;
     }
 
     // it's ok to change offset immediately -- there are no thread safety issues here
diff --git a/libraries/render-utils/src/Model.cpp b/libraries/render-utils/src/Model.cpp
index 3776c4e199..6150097f14 100644
--- a/libraries/render-utils/src/Model.cpp
+++ b/libraries/render-utils/src/Model.cpp
@@ -226,6 +226,7 @@ void Model::updateRenderItems() {
         modelTransform.setScale(glm::vec3(1.0f));
 
         PrimitiveMode primitiveMode = self->getPrimitiveMode();
+        auto renderWithZones = self->getRenderWithZones();
         auto renderItemKeyGlobalFlags = self->getRenderItemKeyGlobalFlags();
         bool cauterized = self->isCauterized();
 
@@ -241,7 +242,8 @@ void Model::updateRenderItems() {
             bool useDualQuaternionSkinning = self->getUseDualQuaternionSkinning();
 
             transaction.updateItem<ModelMeshPartPayload>(itemID, [modelTransform, meshState, useDualQuaternionSkinning,
-                                                                  invalidatePayloadShapeKey, primitiveMode, renderItemKeyGlobalFlags, cauterized](ModelMeshPartPayload& data) {
+                                                                  invalidatePayloadShapeKey, primitiveMode, renderItemKeyGlobalFlags,
+                                                                  cauterized, renderWithZones](ModelMeshPartPayload& data) {
                 if (useDualQuaternionSkinning) {
                     data.updateClusterBuffer(meshState.clusterDualQuaternions);
                     data.computeAdjustedLocalBound(meshState.clusterDualQuaternions);
@@ -268,6 +270,7 @@ void Model::updateRenderItems() {
                 data.updateTransformForSkinnedMesh(renderTransform, modelTransform);
 
                 data.setCauterized(cauterized);
+                data.setRenderWithZones(renderWithZones);
                 data.updateKey(renderItemKeyGlobalFlags);
                 data.setShapeKey(invalidatePayloadShapeKey, primitiveMode, useDualQuaternionSkinning);
             });
@@ -282,11 +285,6 @@ void Model::setRenderItemsNeedUpdate() {
     emit requestRenderUpdate();
 }
 
-void Model::setPrimitiveMode(PrimitiveMode primitiveMode) {
-    _primitiveMode = primitiveMode;
-    setRenderItemsNeedUpdate();
-}
-
 void Model::reset() {
     if (isLoaded()) {
         const HFMModel& hfmModel = getHFMModel();
@@ -960,6 +958,13 @@ void Model::setCauterized(bool cauterized, const render::ScenePointer& scene) {
     }
 }
 
+void Model::setPrimitiveMode(PrimitiveMode primitiveMode) {
+    if (_primitiveMode != primitiveMode) {
+        _primitiveMode = primitiveMode;
+        setRenderItemsNeedUpdate();
+    }
+}
+
 void Model::setCullWithParent(bool cullWithParent) {
     if (_cullWithParent != cullWithParent) {
         _cullWithParent = cullWithParent;
@@ -977,13 +982,10 @@ void Model::setCullWithParent(bool cullWithParent) {
 }
 
 void Model::setRenderWithZones(const QVector<QUuid>& renderWithZones) {
-    render::Transaction transaction;
-    for (auto item : _modelMeshRenderItemIDs) {
-        transaction.updateItem<ModelMeshPartPayload>(item, [renderWithZones](ModelMeshPartPayload& data) {
-            data.setRenderWithZones(renderWithZones);
-        });
+    if (_renderWithZones != renderWithZones) {
+        _renderWithZones = renderWithZones;
+        setRenderItemsNeedUpdate();
     }
-    AbstractViewStateInterface::instance()->getMain3DScene()->enqueueTransaction(transaction);
 }
 
 const render::ItemKey Model::getRenderItemKeyGlobalFlags() const {
diff --git a/libraries/render-utils/src/Model.h b/libraries/render-utils/src/Model.h
index bdb4a35071..412a1b7638 100644
--- a/libraries/render-utils/src/Model.h
+++ b/libraries/render-utils/src/Model.h
@@ -121,6 +121,7 @@ public:
     void setCullWithParent(bool value);
 
     void setRenderWithZones(const QVector<QUuid>& renderWithZones);
+    const QVector<QUuid>& getRenderWithZones() const { return _renderWithZones; }
 
     // Access the current RenderItemKey Global Flags used by the model and applied to the render items  representing the parts of the model.
     const render::ItemKey getRenderItemKeyGlobalFlags() const;
@@ -499,6 +500,7 @@ protected:
     render::ItemKey _renderItemKeyGlobalFlags;
     bool _cauterized { false };
     bool _cullWithParent { false };
+    QVector<QUuid> _renderWithZones;
 
     bool shouldInvalidatePayloadShapeKey(int meshIndex);
 
diff --git a/libraries/render-utils/src/text/Font.cpp b/libraries/render-utils/src/text/Font.cpp
index 5cb5709252..024be6598d 100644
--- a/libraries/render-utils/src/text/Font.cpp
+++ b/libraries/render-utils/src/text/Font.cpp
@@ -15,6 +15,7 @@
 #include "../StencilMaskPass.h"
 
 #include "NetworkAccessManager.h"
+#include "NetworkingConstants.h"
 
 static std::mutex fontMutex;
 
@@ -97,7 +98,7 @@ Font::Pointer Font::load(const QString& family) {
 
             QNetworkRequest networkRequest;
             networkRequest.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-            networkRequest.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+            networkRequest.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
             networkRequest.setUrl(family);
 
             auto networkReply = networkAccessManager.get(networkRequest);
diff --git a/libraries/script-engine/src/ScriptsModel.cpp b/libraries/script-engine/src/ScriptsModel.cpp
index 429c7f5518..40482c12ee 100644
--- a/libraries/script-engine/src/ScriptsModel.cpp
+++ b/libraries/script-engine/src/ScriptsModel.cpp
@@ -16,6 +16,7 @@
 #include <QDirIterator>
 
 #include <NetworkAccessManager.h>
+#include <NetworkingConstants.h>
 #include <PathUtils.h>
 
 #include "ScriptEngine.h"
@@ -191,7 +192,7 @@ void ScriptsModel::requestDefaultFiles(QString marker) {
             QNetworkAccessManager& networkAccessManager = NetworkAccessManager::getInstance();
             QNetworkRequest request(url);
             request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);
-            request.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+            request.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
             QNetworkReply* reply = networkAccessManager.get(request);
             connect(reply, SIGNAL(finished()), SLOT(downloadFinished()));
         }
diff --git a/libraries/script-engine/src/XMLHttpRequestClass.cpp b/libraries/script-engine/src/XMLHttpRequestClass.cpp
index b0ceca5758..1a4ec52f73 100644
--- a/libraries/script-engine/src/XMLHttpRequestClass.cpp
+++ b/libraries/script-engine/src/XMLHttpRequestClass.cpp
@@ -62,7 +62,7 @@ void XMLHttpRequestClass::abort() {
 }
 
 void XMLHttpRequestClass::setRequestHeader(const QString& name, const QString& value) {
-    _request.setHeader(QNetworkRequest::UserAgentHeader, HIGH_FIDELITY_USER_AGENT);
+    _request.setHeader(QNetworkRequest::UserAgentHeader, NetworkingConstants::VIRCADIA_USER_AGENT);
     _request.setRawHeader(QByteArray(name.toLatin1()), QByteArray(value.toLatin1()));
 }
 
diff --git a/libraries/shared/src/NumericalConstants.h b/libraries/shared/src/NumericalConstants.h
index 8377c48960..b7fecfa1e4 100644
--- a/libraries/shared/src/NumericalConstants.h
+++ b/libraries/shared/src/NumericalConstants.h
@@ -28,8 +28,8 @@ const float ARCSECONDS_PER_ARCMINUTE = 60.0f;
 const float ARCSECONDS_PER_DEGREE = ARCMINUTES_PER_DEGREE * ARCSECONDS_PER_ARCMINUTE;
 
 const float EPSILON = 0.000001f;    //smallish positive number - used as margin of error for some computations
-const float SQUARE_ROOT_OF_2 = (float)sqrt(2.0f);
-const float SQUARE_ROOT_OF_3 = (float)sqrt(3.0f);
+const float SQUARE_ROOT_OF_2 = 1.414214f;
+const float SQUARE_ROOT_OF_3 = 1.732051f;
 const float METERS_PER_DECIMETER  = 0.1f;
 const float METERS_PER_CENTIMETER = 0.01f;
 const float METERS_PER_MILLIMETER = 0.001f;
diff --git a/libraries/shared/src/SharedUtil.h b/libraries/shared/src/SharedUtil.h
index 709eeca9b2..c40cae5f76 100644
--- a/libraries/shared/src/SharedUtil.h
+++ b/libraries/shared/src/SharedUtil.h
@@ -81,9 +81,6 @@ const int BYTES_PER_FLAGS = 1;
 typedef unsigned char colorPart;
 typedef unsigned char nodeColor[BYTES_PER_COLOR + BYTES_PER_FLAGS];
 
-// Use a custom User-Agent to avoid ModSecurity filtering, e.g. by hosting providers.
-const QByteArray HIGH_FIDELITY_USER_AGENT = "Mozilla/5.0 (HighFidelityInterface)";
-
 // Equivalent to time_t but in usecs instead of secs
 quint64 usecTimestampNow(bool wantDebug = false);
 void usecTimestampNowForceClockSkew(qint64 clockSkew);
diff --git a/libraries/ui/src/ui/types/FileTypeProfile.cpp b/libraries/ui/src/ui/types/FileTypeProfile.cpp
index 3b9ed74200..9fca1be436 100644
--- a/libraries/ui/src/ui/types/FileTypeProfile.cpp
+++ b/libraries/ui/src/ui/types/FileTypeProfile.cpp
@@ -16,6 +16,7 @@
 #include <QtQml/QQmlContext>
 
 #include "RequestFilters.h"
+#include "NetworkingConstants.h"
 
 #if !defined(Q_OS_ANDROID)
 static const QString QML_WEB_ENGINE_STORAGE_NAME = "qmlWebEngine";
@@ -26,8 +27,7 @@ static std::mutex FileTypeProfile_mutex;
 FileTypeProfile::FileTypeProfile(QQmlContext* parent) :
     ContextAwareProfile(parent)
 {
-    static const QString WEB_ENGINE_USER_AGENT = "Chrome/48.0 (HighFidelityInterface)";
-    setHttpUserAgent(WEB_ENGINE_USER_AGENT);
+    setHttpUserAgent(NetworkingConstants::WEB_ENGINE_USER_AGENT);
 
     setStorageName(QML_WEB_ENGINE_STORAGE_NAME);
     setOffTheRecord(false);
diff --git a/libraries/ui/src/ui/types/RequestFilters.cpp b/libraries/ui/src/ui/types/RequestFilters.cpp
index 9287559289..0eea5230ca 100644
--- a/libraries/ui/src/ui/types/RequestFilters.cpp
+++ b/libraries/ui/src/ui/types/RequestFilters.cpp
@@ -27,10 +27,10 @@ namespace {
 
     bool isAuthableHighFidelityURL(const QUrl& url) {
         auto metaverseServerURL = MetaverseAPI::getCurrentMetaverseServerURL();
-        static const QStringList HF_HOSTS = {
-            "highfidelity.com", "highfidelity.io",
-            metaverseServerURL.toString(),
+        static QStringList HF_HOSTS = {
+            metaverseServerURL.toString()
         };
+        HF_HOSTS << NetworkingConstants::IS_AUTHABLE_HOSTNAME;
         const auto& scheme = url.scheme();
         const auto& host = url.host();
 
@@ -83,9 +83,9 @@ void RequestFilters::interceptHFWebEngineRequest(QWebEngineUrlRequestInfo& info,
         }
     }
     static const QString USER_AGENT = "User-Agent";
-    const QString tokenStringMobile{ "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36" };
-    const QString tokenStringMetaverse{ "Chrome/48.0 (HighFidelityInterface)" };
-    const QString tokenStringLimitedCommerce{ "Chrome/48.0 (HighFidelityInterface limitedCommerce)" };
+    const QString tokenStringMobile{ NetworkingConstants::MOBILE_USER_AGENT };
+    const QString tokenStringMetaverse{ NetworkingConstants::METAVERSE_USER_AGENT };
+    const QString tokenStringLimitedCommerce{ "Chrome/48.0 (VircadiaInterface limitedCommerce)" };
 
     const QString tokenString = !isAuthable ? tokenStringMobile : (accountManager->getLimitedCommerce() ? tokenStringLimitedCommerce : tokenStringMetaverse);
     info.setHttpHeader(USER_AGENT.toLocal8Bit(), tokenString.toLocal8Bit());
diff --git a/plugins/openvr/CMakeLists.txt b/plugins/openvr/CMakeLists.txt
index e80b2215bf..9690ee3fb5 100644
--- a/plugins/openvr/CMakeLists.txt
+++ b/plugins/openvr/CMakeLists.txt
@@ -1,12 +1,13 @@
 #
 #  Created by Bradley Austin Davis on 2015/11/18
 #  Copyright 2015 High Fidelity, Inc.
+#  Copyright 2020 Vircadia contributors.
 #
 #  Distributed under the Apache License, Version 2.0.
 #  See the accompanying file LICENSE or http:#www.apache.org/licenses/LICENSE-2.0.html
 #
 
-if (WIN32 AND (NOT USE_GLES))
+if ((WIN32 OR UNIX AND NOT APPLE) AND NOT USE_GLES)
     set(TARGET_NAME openvr)
     setup_hifi_plugin(Gui Qml Multimedia)
     link_hifi_libraries(shared task gl qml networking controllers ui 
@@ -15,7 +16,9 @@ if (WIN32 AND (NOT USE_GLES))
     include_hifi_library_headers(octree)
 
     target_openvr()
-    target_sranipal()
-    target_aristo()
-    target_link_libraries(${TARGET_NAME} Winmm.lib)
+    if (WIN32)
+        target_sranipal()
+        target_aristo()
+        target_link_libraries(${TARGET_NAME} Winmm.lib)
+    endif()
 endif()
diff --git a/plugins/openvr/src/OpenVrDisplayPlugin.cpp b/plugins/openvr/src/OpenVrDisplayPlugin.cpp
index 7691d2ab70..c5eb740325 100644
--- a/plugins/openvr/src/OpenVrDisplayPlugin.cpp
+++ b/plugins/openvr/src/OpenVrDisplayPlugin.cpp
@@ -1,6 +1,7 @@
 //
 //  Created by Bradley Austin Davis on 2015/05/12
 //  Copyright 2015 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -739,6 +740,8 @@ int OpenVrDisplayPlugin::getRequiredThreadCount() const {
 
 QString OpenVrDisplayPlugin::getPreferredAudioInDevice() const {
     QString device = getVrSettingString(vr::k_pch_audio_Section, vr::k_pch_audio_RecordingDeviceOverride_String);
+    // FIXME: Address Linux.
+#ifdef Q_OS_WIN
     if (!device.isEmpty()) {
         static const WCHAR INIT = 0;
         size_t size = device.size() + 1;
@@ -748,11 +751,14 @@ QString OpenVrDisplayPlugin::getPreferredAudioInDevice() const {
         // FIXME: This may not be necessary if vr::k_pch_audio_RecordingDeviceOverride_StringName is used above.
         device = AudioClient::getWinDeviceName(deviceW.data());
     }
+#endif
     return device;
 }
 
 QString OpenVrDisplayPlugin::getPreferredAudioOutDevice() const {
     QString device = getVrSettingString(vr::k_pch_audio_Section, vr::k_pch_audio_PlaybackDeviceOverride_String);
+    // FIXME: Address Linux.
+#ifdef Q_OS_WIN
     if (!device.isEmpty()) {
         static const WCHAR INIT = 0;
         size_t size = device.size() + 1;
@@ -762,6 +768,7 @@ QString OpenVrDisplayPlugin::getPreferredAudioOutDevice() const {
         // FIXME: This may not be necessary if vr::k_pch_audio_PlaybackDeviceOverride_StringName is used above.
         device = AudioClient::getWinDeviceName(deviceW.data());
     }
+#endif
     return device;
 }
 
diff --git a/plugins/openvr/src/OpenVrHelpers.cpp b/plugins/openvr/src/OpenVrHelpers.cpp
index e55e7feaf4..ce7625eedb 100644
--- a/plugins/openvr/src/OpenVrHelpers.cpp
+++ b/plugins/openvr/src/OpenVrHelpers.cpp
@@ -1,6 +1,7 @@
 //
 //  Created by Bradley Austin Davis on 2015/11/01
 //  Copyright 2015 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -18,8 +19,6 @@
 #include <QtGui/QInputMethodEvent>
 #include <QtQuick/QQuickWindow>
 
-#include <PathUtils.h>
-#include <Windows.h>
 #include <OffscreenUi.h>
 #include <controllers/Pose.h>
 #include <NumericalConstants.h>
@@ -51,7 +50,7 @@ static const uint32_t RELEASE_OPENVR_HMD_DELAY_MS = 5000;
 
 bool isOculusPresent() {
     bool result = false;
-#if defined(Q_OS_WIN32)
+#ifdef Q_OS_WIN 
     HANDLE oculusServiceEvent = ::OpenEventW(SYNCHRONIZE, FALSE, L"OculusHMDConnected");
     // The existence of the service indicates a running Oculus runtime
     if (oculusServiceEvent) {
@@ -208,8 +207,10 @@ void finishOpenVrKeyboardInput() {
     updateFromOpenVrKeyboardInput();
     // Simulate an enter press on the top level window to trigger the action
     if (0 == (_currentHints & Qt::ImhMultiLine)) {
-        qApp->sendEvent(offscreenUi->getWindow(), &QKeyEvent(QEvent::KeyPress, Qt::Key_Return, Qt::KeyboardModifiers(), QString("\n")));
-        qApp->sendEvent(offscreenUi->getWindow(), &QKeyEvent(QEvent::KeyRelease, Qt::Key_Return, Qt::KeyboardModifiers()));
+        auto keyPress = QKeyEvent(QEvent::KeyPress, Qt::Key_Return, Qt::KeyboardModifiers(), QString("\n"));
+        auto keyRelease = QKeyEvent(QEvent::KeyRelease, Qt::Key_Return, Qt::KeyboardModifiers());
+        qApp->sendEvent(offscreenUi->getWindow(), &keyPress);
+        qApp->sendEvent(offscreenUi->getWindow(), &keyRelease);
     }
 }
 
@@ -293,11 +294,20 @@ void handleOpenVrEvents() {
                 ulong promitySensorFlag = (1UL << ((int)vr::k_EButton_ProximitySensor));
                 _headInHeadset = (controllerState.ulButtonPressed & promitySensorFlag) == promitySensorFlag;
             }
-
         }
 
         #if DEV_BUILD
-            qDebug() << "OpenVR: Event " << activeHmd->GetEventTypeNameFromEnum((vr::EVREventType)event.eventType) << "(" << event.eventType << ")";
+            //qDebug() << "OpenVR: Event " << activeHmd->GetEventTypeNameFromEnum((vr::EVREventType)event.eventType) << "(" << event.eventType << ")";
+            // FIXME: Reinstate the line above and remove the following lines once the problem with excessive occurrences of 
+            // VREvent_ActionBindingReloaded events is fixed in SteamVR for Linux. 
+            // https://github.com/ValveSoftware/SteamVR-for-Linux/issues/307
+            #ifdef Q_OS_LINUX
+                if (event.eventType != vr::VREvent_ActionBindingReloaded) {
+                    qDebug() << "OpenVR: Event " << activeHmd->GetEventTypeNameFromEnum((vr::EVREventType)event.eventType) << "(" << event.eventType << ")";
+                };
+            #else
+                qDebug() << "OpenVR: Event " << activeHmd->GetEventTypeNameFromEnum((vr::EVREventType)event.eventType) << "(" << event.eventType << ")";
+            #endif
         #endif
     }
 
@@ -407,9 +417,32 @@ void showMinSpecWarning() {
         qFatal("Unable to create overlay");
     }
 
-    // Needed here for PathUtils
+#ifdef Q_OS_LINUX
+    QFile cmdlineFile("/proc/self/cmdline");
+    if (!cmdlineFile.open(QIODevice::ReadOnly)) {
+        qFatal("Unable to open /proc/self/cmdline");
+    }
+
+    auto contents = cmdlineFile.readAll();
+    auto arguments = contents.split('\0');
+    arguments.pop_back();  // Last element is empty.
+    cmdlineFile.close();
+
+    int __argc = arguments.count();
+    char** __argv = new char* [__argc];
+    for (int i = 0; i < __argc; i++) {
+        __argv[i] = arguments[i].data();
+    }
+#endif
+
     QCoreApplication miniApp(__argc, __argv);
 
+#ifdef Q_OS_LINUX
+    QObject::connect(&miniApp, &QCoreApplication::destroyed, [=] {
+        delete[] __argv;
+    });
+#endif
+
     vrSystem->ResetSeatedZeroPose();
     QString imagePath = PathUtils::resourcesPath() + "/images/steam-min-spec-failed.png";
     vrOverlay->SetOverlayFromFile(minSpecFailedOverlay, imagePath.toLocal8Bit().toStdString().c_str());
@@ -487,7 +520,12 @@ bool checkMinSpecImpl() {
 }
 
 extern "C" {
+#if defined(Q_OS_WIN32)
     __declspec(dllexport) int __stdcall CheckMinSpec() {
+#else
+    __attribute__((visibility("default"))) int CheckMinSpec() {
+#endif
         return checkMinSpecImpl() ? 1 : 0;
     }
+
 }
diff --git a/plugins/openvr/src/OpenVrHelpers.h b/plugins/openvr/src/OpenVrHelpers.h
index b0960a03eb..23bd9f39de 100644
--- a/plugins/openvr/src/OpenVrHelpers.h
+++ b/plugins/openvr/src/OpenVrHelpers.h
@@ -1,6 +1,7 @@
 //
 //  Created by Bradley Austin Davis on 2015/06/12
 //  Copyright 2015 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -76,7 +77,7 @@ struct PoseData {
     }
 
     void update(const glm::mat4& resetMat) {
-        for (int i = 0; i < vr::k_unMaxTrackedDeviceCount; i++) {
+        for (uint32_t i = 0; i < vr::k_unMaxTrackedDeviceCount; i++) {
             if (!vrPoses[i].bPoseIsValid) {
                 continue;
             }
@@ -87,7 +88,7 @@ struct PoseData {
     }
 
     void resetToInvalid() {
-        for (int i = 0; i < vr::k_unMaxTrackedDeviceCount; i++) {
+        for (uint32_t i = 0; i < vr::k_unMaxTrackedDeviceCount; i++) {
             vrPoses[i].bPoseIsValid = false;
         }
     }
diff --git a/plugins/openvr/src/ViveControllerManager.cpp b/plugins/openvr/src/ViveControllerManager.cpp
index 2c9eb296ab..3629698e11 100644
--- a/plugins/openvr/src/ViveControllerManager.cpp
+++ b/plugins/openvr/src/ViveControllerManager.cpp
@@ -1,9 +1,9 @@
 //
 //  ViveControllerManager.cpp
-//  input-plugins/src/input-plugins
 //
 //  Created by Sam Gondelman on 6/29/15.
 //  Copyright 2013 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -19,10 +19,12 @@
 #pragma warning( disable : 4334 )
 #endif
 
+#ifdef VIVE_PRO_EYE
 #include <SRanipal.h>
 #include <SRanipal_Eye.h>
 #include <SRanipal_Enums.h>
 #include <interface_gesture.hpp>
+#endif
 
 #ifdef _WIN32
 #pragma warning( pop )
@@ -49,7 +51,7 @@
 #include <plugins/DisplayPlugin.h>
 
 #include <controllers/UserInputMapper.h>
-#include <Plugins/InputConfiguration.h>
+#include <plugins/InputConfiguration.h>
 #include <controllers/StandardControls.h>
 
 #include "OpenVrDisplayPlugin.h"
@@ -60,13 +62,8 @@ vr::IVRSystem* acquireOpenVrSystem();
 void releaseOpenVrSystem();
 
 static const QString OPENVR_LAYOUT = QString("OpenVrConfiguration.qml");
-static const char* CONTROLLER_MODEL_STRING = "vr_controller_05_wireless_b";
 const quint64 CALIBRATION_TIMELAPSE = 1 * USECS_PER_SECOND;
 
-static const char* MENU_PARENT = "Avatar";
-static const char* MENU_NAME = "Vive Controllers";
-static const char* MENU_PATH = "Avatar" ">" "Vive Controllers";
-
 static const int MIN_HEAD = 1;
 static const int MIN_PUCK_COUNT = 2;
 static const int MIN_FEET_AND_HIPS = 3;
@@ -79,6 +76,7 @@ static const int SECOND_FOOT = 1;
 static const int HIP = 2;
 static const int CHEST = 3;
 
+#ifdef VIVE_PRO_EYE
 enum ViveHandJointIndex {
     HAND = 0,
     THUMB_1,
@@ -104,6 +102,7 @@ enum ViveHandJointIndex {
 
     Size
 };
+#endif
 
 const char* ViveControllerManager::NAME { "OpenVR" };
 
@@ -157,22 +156,7 @@ static QString deviceTrackingResultToString(vr::ETrackingResult trackingResult)
     return result;
 }
 
-static glm::mat4 calculateResetMat() {
-    auto chaperone = vr::VRChaperone();
-    if (chaperone) {
-        float const UI_RADIUS = 1.0f;
-        float const UI_HEIGHT = 1.6f;
-        float const UI_Z_OFFSET = 0.5;
-
-        float xSize, zSize;
-        chaperone->GetPlayAreaSize(&xSize, &zSize);
-        glm::vec3 uiPos(0.0f, UI_HEIGHT, UI_RADIUS - (0.5f * zSize) - UI_Z_OFFSET);
-
-        return glm::inverse(createMatFromQuatAndPos(glm::quat(), uiPos));
-    }
-    return glm::mat4();
-}
-
+#ifdef VIVE_PRO_EYE
 class ViveProEyeReadThread : public QThread {
 public:
     ViveProEyeReadThread() {
@@ -216,6 +200,7 @@ public:
     QMutex eyeDataMutex;
     EyeDataBuffer eyeDataBuffer;
 };
+#endif
 
 
 static QString outOfRangeDataStrategyToString(ViveControllerManager::OutOfRangeDataStrategy strategy) {
@@ -279,6 +264,10 @@ void ViveControllerManager::setConfigurationSettings(const QJsonObject configura
             _hmdDesktopTracking = configurationSettings["hmdDesktopTracking"].toBool();
         }
 
+        if (configurationSettings.contains("eyeTrackingEnabled")) {
+            _eyeTrackingEnabled = configurationSettings["eyeTrackingEnabled"].toBool();
+        }
+
         _inputDevice->configureCalibrationSettings(configurationSettings);
         saveSettings();
     }
@@ -289,6 +278,7 @@ QJsonObject ViveControllerManager::configurationSettings() {
         QJsonObject configurationSettings = _inputDevice->configurationSettings();
         configurationSettings["desktopMode"] = _desktopMode;
         configurationSettings["hmdDesktopTracking"] = _hmdDesktopTracking;
+        configurationSettings["eyeTrackingEnabled"] = _eyeTrackingEnabled;
         return configurationSettings;
     }
 
@@ -328,7 +318,7 @@ bool areBothHandControllersActive(vr::IVRSystem*& system) {
         isHandControllerActive(system, vr::TrackedControllerRole_RightHand);
 }
 
-
+#ifdef VIVE_PRO_EYE
 void ViveControllerManager::enableGestureDetection() {
     if (_viveCameraHandTracker) {
         return;
@@ -373,6 +363,7 @@ void ViveControllerManager::disableGestureDetection() {
     StopGestureDetection();
     _viveCameraHandTracker = false;
 }
+#endif
 
 bool ViveControllerManager::activate() {
     InputPlugin::activate();
@@ -394,6 +385,7 @@ bool ViveControllerManager::activate() {
     userInputMapper->registerDevice(_inputDevice);
     _registeredWithInputMapper = true;
 
+#ifdef VIVE_PRO_EYE
     if (ViveSR::anipal::Eye::IsViveProEye()) {
         qDebug() << "Vive Pro eye-tracking detected";
 
@@ -414,6 +406,7 @@ bool ViveControllerManager::activate() {
             _viveProEyeReadThread->start(QThread::HighPriority);
         }
     }
+#endif
 
     return true;
 }
@@ -436,12 +429,14 @@ void ViveControllerManager::deactivate() {
     userInputMapper->removeDevice(_inputDevice->_deviceID);
     _registeredWithInputMapper = false;
 
+#ifdef VIVE_PRO_EYE
     if (_viveProEyeReadThread) {
         _viveProEyeReadThread->quit = true;
         _viveProEyeReadThread->wait();
         _viveProEyeReadThread = nullptr;
         ViveSR::anipal::Release(ViveSR::anipal::Eye::ANIPAL_TYPE_EYE);
     }
+#endif
 
     saveSettings();
 }
@@ -454,6 +449,7 @@ bool ViveControllerManager::isHeadControllerMounted() const {
     return activityLevel == vr::k_EDeviceActivityLevel_UserInteraction;
 }
 
+#ifdef VIVE_PRO_EYE
 void ViveControllerManager::invalidateEyeInputs() {
     _inputDevice->_poseStateMap[controller::LEFT_EYE].valid = false;
     _inputDevice->_poseStateMap[controller::RIGHT_EYE].valid = false;
@@ -461,7 +457,6 @@ void ViveControllerManager::invalidateEyeInputs() {
     _inputDevice->_axisStateMap[controller::EYEBLINK_R].valid = false;
 }
 
-
 void ViveControllerManager::updateEyeTracker(float deltaTime, const controller::InputCalibrationData& inputCalibrationData) {
     if (!isHeadControllerMounted()) {
         invalidateEyeInputs();
@@ -763,6 +758,7 @@ void ViveControllerManager::updateCameraHandTracker(float deltaTime,
     }
     _lastHandTrackerFrameIndex = handTrackerFrameIndex;
 }
+#endif
 
 
 void ViveControllerManager::pluginUpdate(float deltaTime, const controller::InputCalibrationData& inputCalibrationData) {
@@ -801,11 +797,14 @@ void ViveControllerManager::pluginUpdate(float deltaTime, const controller::Inpu
         _registeredWithInputMapper = true;
     }
 
-    if (_viveProEye) {
+#ifdef VIVE_PRO_EYE
+    if (_viveProEye && _eyeTrackingEnabled) {
         updateEyeTracker(deltaTime, inputCalibrationData);
     }
 
     updateCameraHandTracker(deltaTime, inputCalibrationData);
+#endif
+
 }
 
 void ViveControllerManager::loadSettings() {
@@ -821,6 +820,9 @@ void ViveControllerManager::loadSettings() {
             _inputDevice->_shoulderWidth = settings.value("shoulderWidth", QVariant(DEFAULT_SHOULDER_WIDTH)).toDouble();
             _inputDevice->_outOfRangeDataStrategy = stringToOutOfRangeDataStrategy(settings.value("outOfRangeDataStrategy", QVariant(DEFAULT_OUT_OF_RANGE_STRATEGY)).toString());
         }
+
+        const bool DEFAULT_EYE_TRACKING_ENABLED = false;
+        _eyeTrackingEnabled = settings.value("eyeTrackingEnabled", QVariant(DEFAULT_EYE_TRACKING_ENABLED)).toBool();
     }
     settings.endGroup();
 }
@@ -835,6 +837,8 @@ void ViveControllerManager::saveSettings() const {
             settings.setValue(QString("shoulderWidth"), _inputDevice->_shoulderWidth);
             settings.setValue(QString("outOfRangeDataStrategy"), outOfRangeDataStrategyToString(_inputDevice->_outOfRangeDataStrategy));
         }
+
+        settings.setValue(QString("eyeTrackingEnabled"), _eyeTrackingEnabled);
     }
     settings.endGroup();
 }
@@ -863,6 +867,9 @@ void ViveControllerManager::InputDevice::update(float deltaTime, const controlle
         if (_headsetName == "HTC") {
             _headsetName += " Vive";
         }
+        if (oculusViaOpenVR()) {
+            _headsetName = "OpenVR";  // Enables calibration dialog to function when debugging using Oculus.
+        }
     }
     // While the keyboard is open, we defer strictly to the keyboard values
     if (isOpenVrKeyboardShown()) {
@@ -879,7 +886,7 @@ void ViveControllerManager::InputDevice::update(float deltaTime, const controlle
     handleHandController(deltaTime, rightHandDeviceIndex, inputCalibrationData, false);
 
     // collect poses for all generic trackers
-    for (int i = 0; i < vr::k_unMaxTrackedDeviceCount; i++) {
+    for (uint32_t i = 0; i < vr::k_unMaxTrackedDeviceCount; i++) {
         handleTrackedObject(i, inputCalibrationData);
         handleHmd(i, inputCalibrationData);
     }
@@ -954,8 +961,8 @@ void ViveControllerManager::InputDevice::configureCalibrationSettings(const QJso
                 bool overrideHead = headObject["override"].toBool();
                 if (overrideHead) {
                     _headConfig = HeadConfig::Puck;
-                    _headPuckYOffset = headObject["Y"].toDouble() * CM_TO_M;
-                    _headPuckZOffset = headObject["Z"].toDouble() * CM_TO_M;
+                    _headPuckYOffset = (float)headObject["Y"].toDouble() * CM_TO_M;
+                    _headPuckZOffset = (float)headObject["Z"].toDouble() * CM_TO_M;
                 } else {
                     _headConfig = HeadConfig::HMD;
                 }
@@ -964,8 +971,8 @@ void ViveControllerManager::InputDevice::configureCalibrationSettings(const QJso
                 bool overrideHands = handsObject["override"].toBool();
                 if (overrideHands) {
                     _handConfig = HandConfig::Pucks;
-                    _handPuckYOffset = handsObject["Y"].toDouble() * CM_TO_M;
-                    _handPuckZOffset = handsObject["Z"].toDouble() * CM_TO_M;
+                    _handPuckYOffset = (float)handsObject["Y"].toDouble() * CM_TO_M;
+                    _handPuckZOffset = (float)handsObject["Z"].toDouble() * CM_TO_M;
                 } else {
                     _handConfig = HandConfig::HandController;
                 }
@@ -999,8 +1006,8 @@ QJsonObject ViveControllerManager::InputDevice::configurationSettings() {
     configurationSettings["HMDHead"] = (_headConfig == HeadConfig::HMD);
     configurationSettings["handController"] = (_handConfig == HandConfig::HandController);
     configurationSettings["puckCount"] = (int)_validTrackedObjects.size();
-    configurationSettings["armCircumference"] = (double)_armCircumference * M_TO_CM;
-    configurationSettings["shoulderWidth"] = (double)_shoulderWidth * M_TO_CM;
+    configurationSettings["armCircumference"] = (double)(_armCircumference * M_TO_CM);
+    configurationSettings["shoulderWidth"] = (double)(_shoulderWidth * M_TO_CM);
     configurationSettings["outOfRangeDataStrategy"] = outOfRangeDataStrategyToString(_outOfRangeDataStrategy);
     return configurationSettings;
 }
@@ -1217,8 +1224,6 @@ bool ViveControllerManager::InputDevice::configureHead(const glm::mat4& defaultT
 bool ViveControllerManager::InputDevice::configureBody(const glm::mat4& defaultToReferenceMat, const controller::InputCalibrationData& inputCalibration) {
     std::sort(_validTrackedObjects.begin(), _validTrackedObjects.end(), sortPucksYPosition);
     int puckCount = (int)_validTrackedObjects.size();
-    glm::vec3 headXAxis = getReferenceHeadXAxis(defaultToReferenceMat, inputCalibration.defaultHeadMat);
-    glm::vec3 headPosition = getReferenceHeadPosition(defaultToReferenceMat, inputCalibration.defaultHeadMat);
     if (_config == Config::None) {
         return true;
     } else if (_config == Config::Feet && puckCount >= MIN_PUCK_COUNT) {
@@ -1316,8 +1321,6 @@ controller::Pose ViveControllerManager::InputDevice::addOffsetToPuckPose(const c
 }
 
 void ViveControllerManager::InputDevice::handleHmd(uint32_t deviceIndex, const controller::InputCalibrationData& inputCalibrationData) {
-     uint32_t poseIndex = controller::TRACKED_OBJECT_00 + deviceIndex;
-
      if (_system->IsTrackedDeviceConnected(deviceIndex) &&
          _system->GetTrackedDeviceClass(deviceIndex) == vr::TrackedDeviceClass_HMD &&
          _nextSimPoseData.vrPoses[deviceIndex].bPoseIsValid) {
@@ -1491,11 +1494,11 @@ void ViveControllerManager::InputDevice::printDeviceTrackingResultChange(uint32_
 }
 
 bool ViveControllerManager::InputDevice::checkForCalibrationEvent() {
-    auto& endOfMap = _buttonPressedMap.end();
-    auto& leftTrigger = _buttonPressedMap.find(controller::LT);
-    auto& rightTrigger = _buttonPressedMap.find(controller::RT);
-    auto& leftAppButton = _buttonPressedMap.find(LEFT_APP_MENU);
-    auto& rightAppButton = _buttonPressedMap.find(RIGHT_APP_MENU);
+    auto endOfMap = _buttonPressedMap.end();
+    auto leftTrigger = _buttonPressedMap.find(controller::LT);
+    auto rightTrigger = _buttonPressedMap.find(controller::RT);
+    auto leftAppButton = _buttonPressedMap.find(LEFT_APP_MENU);
+    auto rightAppButton = _buttonPressedMap.find(RIGHT_APP_MENU);
     return ((leftTrigger != endOfMap && leftAppButton != endOfMap) && (rightTrigger != endOfMap && rightAppButton != endOfMap));
 }
 
@@ -1846,10 +1849,74 @@ void ViveControllerManager::InputDevice::setConfigFromString(const QString& valu
  *     <tr><td><code>Hips</code></td><td>number</td><td>{@link Pose}</td><td>Hips pose.</td></tr>
  *     <tr><td><code>Spine2</code></td><td>number</td><td>{@link Pose}</td><td>Spine2 pose.</td></tr>
  *     <tr><td><code>Head</code></td><td>number</td><td>{@link Pose}</td><td>Head pose.</td></tr>
+ *     <tr><td><code>LeftEye</code></td><td>number</td><td>{@link Pose}</td><td>Left eye pose.</td></tr>
+ *     <tr><td><code>RightEye</code></td><td>number</td><td>{@link Pose}</td><td>Right eye pose.</td></tr>
+ *     <tr><td><code>EyeBlink_L</code></td><td>number</td><td>number</td><td>Left eyelid blink.</td></tr>
+ *     <tr><td><code>EyeBlink_R</code></td><td>number</td><td>number</td><td>Right eyelid blink.</td></tr>
  *     <tr><td><code>LeftArm</code></td><td>number</td><td>{@link Pose}</td><td>Left arm pose.</td></tr>
  *     <tr><td><code>RightArm</code></td><td>number</td><td>{@link Pose}</td><td>Right arm pose</td></tr>
  *     <tr><td><code>LeftHand</code></td><td>number</td><td>{@link Pose}</td><td>Left hand pose.</td></tr>
+ *     <tr><td><code>LeftHandThumb1</code></td><td>number</td><td>{@link Pose}</td><td>Left thumb 1 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandThumb2</code></td><td>number</td><td>{@link Pose}</td><td>Left thumb 2 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandThumb3</code></td><td>number</td><td>{@link Pose}</td><td>Left thumb 3 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandThumb4</code></td><td>number</td><td>{@link Pose}</td><td>Left thumb 4 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandIndex1</code></td><td>number</td><td>{@link Pose}</td><td>Left index 1 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandIndex2</code></td><td>number</td><td>{@link Pose}</td><td>Left index 2 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandIndex3</code></td><td>number</td><td>{@link Pose}</td><td>Left index 3 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandIndex4</code></td><td>number</td><td>{@link Pose}</td><td>Left index 4 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandMiddle1</code></td><td>number</td><td>{@link Pose}</td><td>Left middle 1 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>LeftHandMiddle2</code></td><td>number</td><td>{@link Pose}</td><td>Left middle 2 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>LeftHandMiddle3</code></td><td>number</td><td>{@link Pose}</td><td>Left middle 3 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>LeftHandMiddle4</code></td><td>number</td><td>{@link Pose}</td><td>Left middle 4 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>LeftHandRing1</code></td><td>number</td><td>{@link Pose}</td><td>Left ring 1 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandRing2</code></td><td>number</td><td>{@link Pose}</td><td>Left ring 2 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandRing3</code></td><td>number</td><td>{@link Pose}</td><td>Left ring 3 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandRing4</code></td><td>number</td><td>{@link Pose}</td><td>Left ring 4 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandPinky1</code></td><td>number</td><td>{@link Pose}</td><td>Left pinky 1 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandPinky2</code></td><td>number</td><td>{@link Pose}</td><td>Left pinky 2 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandPinky3</code></td><td>number</td><td>{@link Pose}</td><td>Left pinky 3 finger joint pose.</td></tr>
+ *     <tr><td><code>LeftHandPinky4</code></td><td>number</td><td>{@link Pose}</td><td>Left pinky 4 finger joint pose.</td></tr>
  *     <tr><td><code>RightHand</code></td><td>number</td><td>{@link Pose}</td><td>Right hand pose.</td></tr>
+ *     <tr><td><code>RightHandThumb1</code></td><td>number</td><td>{@link Pose}</td><td>Right thumb 1 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandThumb2</code></td><td>number</td><td>{@link Pose}</td><td>Right thumb 2 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandThumb3</code></td><td>number</td><td>{@link Pose}</td><td>Right thumb 3 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandThumb4</code></td><td>number</td><td>{@link Pose}</td><td>Right thumb 4 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandIndex1</code></td><td>number</td><td>{@link Pose}</td><td>Right index 1 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandIndex2</code></td><td>number</td><td>{@link Pose}</td><td>Right index 2 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandIndex3</code></td><td>number</td><td>{@link Pose}</td><td>Right index 3 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandIndex4</code></td><td>number</td><td>{@link Pose}</td><td>Right index 4 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandMiddle1</code></td><td>number</td><td>{@link Pose}</td><td>Right middle 1 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandMiddle2</code></td><td>number</td><td>{@link Pose}</td><td>Right middle 2 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandMiddle3</code></td><td>number</td><td>{@link Pose}</td><td>Right middle 3 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandMiddle4</code></td><td>number</td><td>{@link Pose}</td><td>Right middle 4 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandRing1</code></td><td>number</td><td>{@link Pose}</td><td>Right ring 1 finger joint pose.</td></tr>
+ *     <tr><td><code>RightHandRing2</code></td><td>number</td><td>{@link Pose}</td><td>Right ring 2 finger joint pose.</td></tr>
+ *     <tr><td><code>RightHandRing3</code></td><td>number</td><td>{@link Pose}</td><td>Right ring 3 finger joint pose.</td></tr>
+ *     <tr><td><code>RightHandRing4</code></td><td>number</td><td>{@link Pose}</td><td>Right ring 4 finger joint pose.</td></tr>
+ *     <tr><td><code>RightHandPinky1</code></td><td>number</td><td>{@link Pose}</td><td>Right pinky 1 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandPinky2</code></td><td>number</td><td>{@link Pose}</td><td>Right pinky 2 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandPinky3</code></td><td>number</td><td>{@link Pose}</td><td>Right pinky 3 finger joint pose.
+ *       </td></tr>
+ *     <tr><td><code>RightHandPinky4</code></td><td>number</td><td>{@link Pose}</td><td>Right pinky 4 finger joint pose.
+ *       </td></tr>
  *     <tr><td colspan="4"><strong>Trackers</strong></td></tr>
  *     <tr><td><code>TrackedObject00</code></td><td>number</td><td>{@link Pose}</td><td>Tracker 0 pose.</td></tr>
  *     <tr><td><code>TrackedObject01</code></td><td>number</td><td>{@link Pose}</td><td>Tracker 1 pose.</td></tr>
diff --git a/plugins/openvr/src/ViveControllerManager.h b/plugins/openvr/src/ViveControllerManager.h
index 714be87842..956b2b5eaf 100644
--- a/plugins/openvr/src/ViveControllerManager.h
+++ b/plugins/openvr/src/ViveControllerManager.h
@@ -1,9 +1,9 @@
 //
 //  ViveControllerManager.h
-//  input-plugins/src/input-plugins
 //
 //  Created by Sam Gondelman on 6/29/15.
 //  Copyright 2013 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -25,12 +25,18 @@
 #include <plugins/InputPlugin.h>
 #include "OpenVrHelpers.h"
 
+#ifdef Q_OS_WIN
+#define VIVE_PRO_EYE
+#endif
+
 using PuckPosePair = std::pair<uint32_t, controller::Pose>;
 
 namespace vr {
     class IVRSystem;
 }
 
+
+#ifdef VIVE_PRO_EYE
 class ViveProEyeReadThread;
 
 class EyeDataBuffer {
@@ -45,7 +51,7 @@ public:
     float leftEyeOpenness { 0.0f };
     float rightEyeOpenness { 0.0f };
 };
-
+#endif
 
 
 class ViveControllerManager : public InputPlugin {
@@ -66,18 +72,22 @@ public:
     bool isHeadController() const override { return true; }
     bool isHeadControllerMounted() const;
 
+#ifdef VIVE_PRO_EYE
     void enableGestureDetection();
     void disableGestureDetection();
+#endif
 
     bool activate() override;
     void deactivate() override;
 
-    QString getDeviceName() { return QString::fromStdString(_inputDevice->_headsetName); }
+    QString getDeviceName() override { return QString::fromStdString(_inputDevice->_headsetName); }
 
     void pluginFocusOutEvent() override { _inputDevice->focusOutEvent(); }
+#ifdef VIVE_PRO_EYE
     void invalidateEyeInputs();
     void updateEyeTracker(float deltaTime, const controller::InputCalibrationData& inputCalibrationData);
     void updateCameraHandTracker(float deltaTime, const controller::InputCalibrationData& inputCalibrationData);
+#endif
     void pluginUpdate(float deltaTime, const controller::InputCalibrationData& inputCalibrationData) override;
 
     virtual void saveSettings() const override;
@@ -252,6 +262,9 @@ private:
     vr::IVRSystem* _system { nullptr };
     std::shared_ptr<InputDevice> _inputDevice { std::make_shared<InputDevice>(_system) };
 
+    bool _eyeTrackingEnabled{ false };
+
+#ifdef VIVE_PRO_EYE
     bool _viveProEye { false };
     std::shared_ptr<ViveProEyeReadThread> _viveProEyeReadThread;
     EyeDataBuffer _prevEyeData;
@@ -268,6 +281,7 @@ private:
     void trackFinger(int hand, int jointIndex1, int jointIndex2, int jointIndex3, int jointIndex4,
                      controller::StandardPoseChannel joint1, controller::StandardPoseChannel joint2,
                      controller::StandardPoseChannel joint3, controller::StandardPoseChannel joint4);
+#endif
 
     static const char* NAME;
 };
diff --git a/screenshare/packager.js b/screenshare/packager.js
index 7a0baebaf0..05bda9af71 100644
--- a/screenshare/packager.js
+++ b/screenshare/packager.js
@@ -26,8 +26,8 @@ if (osType == "Darwin") {
     options["app-bundle-id"] = "com.highfidelity.hifi-screenshare";
 } else if (osType == "Windows_NT") {
     options["version-string"] = {
-        CompanyName: "High Fidelity, Inc.",
-        FileDescription: "High Fidelity Screenshare",
+        CompanyName: "Vircadia",
+        FileDescription: "Vircadia Screenshare",
         ProductName: NAME,
         OriginalFilename: NAME + ".exe"
     }
@@ -47,4 +47,3 @@ packager(options)
         console.error("There was an error writing the packaged console: " + error.message);
         process.exit(1);
     });
-    
\ No newline at end of file
diff --git a/scripts/communityModules/chat/FloofChat.html b/scripts/communityScripts/chat/FloofChat.html
similarity index 80%
rename from scripts/communityModules/chat/FloofChat.html
rename to scripts/communityScripts/chat/FloofChat.html
index a1e84e132f..b493b05090 100644
--- a/scripts/communityModules/chat/FloofChat.html
+++ b/scripts/communityScripts/chat/FloofChat.html
@@ -12,6 +12,7 @@
     <link type="text/css" rel="stylesheet" href="css/FloofChat.css" media="screen,projection"/>
 
     <link href="https://fonts.googleapis.com/css?family=Raleway:300,400,600,700" rel="stylesheet">
+    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400&display=swap" rel="stylesheet"> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
 
 </head>
@@ -28,11 +29,19 @@
         </span>
         <div class="switch muteSwitch col s2">
             <label>
-                <span style="font-size: 20px" id="muteText">Mute</span>
+                <span id="muteText">Hide Popups</span>
                 <input type="checkbox" id="muteInput" onclick="muteSwitchToggle()">
                 <span class="lever waves-light"></span>
             </label>
         </div>
+        
+        <div class="switch muteSwitch col s2">
+            <label>
+                <span id="muteAudioText">Mute Sound</span>
+                <input type="checkbox" id="muteAudioInput" onclick="muteAudioSwitchToggle()">
+                <span class="lever waves-light"></span>
+            </label>
+        </div>
 
         <span class="col s1">
         </span>
@@ -46,6 +55,7 @@
 
 <script>
     var muted = {"Local": false, "Domain": false, "Grid": false};
+    var mutedAudio = {"Local": false, "Domain": false, "Grid": false};
     var instance;
     var appUUID;
     var messageData = {}; // The data that is sent along with the message.
@@ -171,13 +181,23 @@
                     case ext == "JPG":
                     case ext == "GIF":
                     case ext == "JPEG":
-                        elContent = elContent.replace(this, "<br/><img src='" + this + "'class=\"responsive z-depth-2\"><br/><a href=\"javascript:gotoClipboard('" + this + "');\" target='_blank'>" + this + "</a>");
+                        elContent = elContent.replace(this, "<br/><img src='" + this 
+                            + "'class=\"responsive z-depth-2\"><br/><a href=\"javascript:gotoClipboard('" + this + "');\" target='_blank'>" + this 
+                            + "</a><a onclick=\"gotoExternalURL('" + this 
+                            + "');return false;\"href=\"" + this 
+                            + "\">&#x1F4F2;</a>");
                         break;
                     case ext == "iframe":
-                        elContent = elContent.replace(this, "<br/><iframe class=\"z-depth-2\" src='" + this + "'width=\"440\" height=\"248\" frameborder=\"0\"></iframe>");
+                        elContent = elContent.replace(this, "<br/><iframe class=\"z-depth-2\" src='" + this 
+                            + "'width=\"440\" height=\"248\" frameborder=\"0\"></iframe>");
                         break;
                     case ext == "webm":
-                        elContent = elContent.replace(this, "<br/><video controls class=\"z-depth-2 responsive\"><source src='" + this + "' type='video/" + ext + "'></video><br/><a href=\"javascript:gotoClipboard('" + this + "');\">" + this + "</a>");
+                        elContent = elContent.replace(this, "<br/><video controls class=\"z-depth-2 responsive\"><source src='" + this 
+                            + "' type='video/" + ext + "'></video><br/><a href=\"javascript:gotoClipboard('" + this 
+                            + "');\">" + this 
+                            + "</a><a onclick=\"gotoExternalURL('" + this 
+                            + "');return false;\"href=\"" + this 
+                            + "\">&#x1F4F2;</a>");
                         break;
                     case protocol === "HIFI":
                     case protocol === "hifi":
@@ -186,13 +206,24 @@
 					          case !!this.match(/(https?:\/\/)?(www\.)?(youtube\.com\/watch\?v=|youtu\.be\/)([^& \n<]+)(?:[^ \n<]+)?/g):
                         var youtubeMatch = this.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/);
                         if (youtubeMatch && youtubeMatch[2].length == 11) {
-                            elContent = "<br/><iframe class=\"z-depth-2\" width='420' height='236' src='https://www.youtube.com/embed/" + youtubeMatch[2] + "' frameborder='0'></iframe><br/><a href=\"javascript:gotoURL('" + this + "');\">" + this + "</a>";
+                            elContent = "<br/><iframe class=\"z-depth-2\" width='420' height='236' src='https://www.youtube.com/embed/" + youtubeMatch[2] 
+                                + "' frameborder='0'></iframe><br/><a href=\"javascript:gotoURL('" + this 
+                                + "');\">" + this 
+                                + "</a><a onclick=\"gotoExternalURL('" + this 
+                                + "');return false;\"href=\"" + this 
+                                + "\">&#x1F4F2;</a>";
                             break;
                         }
                     // else fall through to default
                     default:
-                        elContent = elContent.replace(this, "<br/><a href=\"javascript:gotoURL('" + this + "');\">" + this + "</a>");
+                        elContent = elContent.replace(this, "<br/><a onclick=\"gotoURL('" + this 
+                            + "');return false;\" href=\"" + this 
+                            + "\">" + this 
+                            + "</a><a onclick=\"gotoExternalURL('" + this 
+                            + "');return false;\"href=\"" + this 
+                            + "\">&#x1F4F2;</a>");
                         break;
+                        
                 }
 
             });
@@ -284,6 +315,10 @@
     function gotoURL(url) {
         emitWebEvent({type: "CMD", cmd: "URL", url: url});
     }
+    
+    function gotoExternalURL(url) {
+        emitWebEvent({ type: "CMD", cmd: "EXTERNALURL", url: url });
+    }
 
     function gotoClipboard(url) {
         M.toast({html: 'Copied URL to Clipboard', classes: 'rounded pink white-text'});
@@ -322,7 +357,7 @@
         location.reload();
     }
 
-    function logMessage(userName, message, logScreen, colour) {
+    function logMessage(timestamp, userName, message, logScreen, colour) {
         var LogScreen = $("#" + logScreen);
         var $logLine =
             $('<div/>')
@@ -333,6 +368,10 @@
                 .addClass('z-depth-2')
                 .data('chat-message', message).css("color", rgbToHex(colour))
                 .appendTo(LogScreen);
+        $('<span/>')
+            .addClass('LogLogLineTimestamp')
+            .text(timestamp).css("color", rgbToHex(colour))
+            .appendTo($logLine);
         $('<b/>')
             .addClass('LogLogLineMessage')
             .text(userName + ": ").css("color", rgbToHex(colour))
@@ -350,18 +389,24 @@
 
     function time() {
         var d = new Date();
+        // Months are returned in range 0-11 instead of 1-12, so we have to add 1.
+        var month = (d.getMonth() + 1).toString(); 
+        var day = (d.getDate()).toString();
         var h = (d.getHours()).toString();
         var m = (d.getMinutes()).toString();
         var s = (d.getSeconds()).toString();
         var h2 = ("0" + h).slice(-2);
         var m2 = ("0" + m).slice(-2);
         var s2 = ("0" + s).slice(-2);
-        s2 += (d.getMilliseconds() / 1000).toFixed(2).slice(1);
-        return h2 + ":" + m2 + ":" + s2;
+        // s2 += (d.getMilliseconds() / 1000).toFixed(2).slice(1);
+        return month + "/" + day + " - " + h2 + ":" + m2 + ":" + s2;
     }
 
     var muteInput;
     var muteText;
+    
+    var muteAudioInput;
+    var muteAudioText;
 
     function muteSwitchToggle() {
         muted[getCurrTab()] = muteInput.checked;
@@ -369,18 +414,33 @@
         muteText.classList.remove(!muteInput.checked ? "red-text" : "white-text");
         emitWebEvent({type: "CMD", cmd: "MUTED", muted: muted});
     }
+    
+    function muteAudioSwitchToggle() {
+        mutedAudio[getCurrTab()] = muteAudioInput.checked;
+        muteAudioText.classList.add(muteAudioInput.checked ? "red-text" : "white-text");
+        muteAudioText.classList.remove(!muteAudioInput.checked ? "red-text" : "white-text");
+        emitWebEvent({ type: "CMD", cmd: "MUTEDAUDIO", muted: mutedAudio });
+    }
 
     function main() {
 
         muteInput = document.getElementById("muteInput");
         muteText = document.getElementById("muteText");
+        
+        muteAudioInput = document.getElementById("muteAudioInput");
+        muteAudioText = document.getElementById("muteAudioText");
 
         instance = M.Tabs.init(document.getElementById("tabs"), {
             "onShow": function (e) {
                 scrollChatLog(getCurrTab());
+                
                 muteInput.checked = muted[getCurrTab()];
                 muteText.classList.add(muteInput.checked ? "red-text" : "white-text");
                 muteText.classList.remove(!muteInput.checked ? "red-text" : "white-text");
+                
+                muteAudioInput.checked = mutedAudio[getCurrTab()];
+                muteAudioText.classList.add(muteAudioInput.checked ? "red-text" : "white-text");
+                muteAudioText.classList.remove(!muteAudioInput.checked ? "red-text" : "white-text");
             }
         });
         instance.select("Local");
@@ -430,11 +490,11 @@
                         var temp = cmd.data;
                         if (temp.length === 1) {
                             var temp2 = temp[0];
-                            logMessage("[" + temp2[0] + "] " + temp2[2], temp2[1], temp2[4], temp2[3]);
+                            logMessage("[" + temp2[0] + "] ", temp2[2], temp2[1], temp2[4], temp2[3]);
                             scrollChatLog(temp2[4]);
                         } else if (temp.length > 1) {
                             temp.forEach(function (msg) {
-                                logMessage("[" + msg[0] + "] " + msg[2], msg[1], msg[4], msg[3]);
+                                logMessage("[" + msg[0] + "] ", msg[2], msg[1], msg[4], msg[3]);
                                 scrollChatLog(msg[4]);
                             });
                         }
@@ -445,6 +505,12 @@
                             muteText.classList.add(muteInput.checked ? "red-text" : "white-text");
                             muteText.classList.remove(!muteInput.checked ? "red-text" : "white-text");
                         }
+                        if (cmd.cmd === "MUTEDAUDIO") {
+                            mutedAudio = cmd.muted;
+                            muteAudioInput.checked = mutedAudio[getCurrTab()];
+                            muteAudioText.classList.add(muteAudioInput.checked ? "red-text" : "white-text");
+                            muteAudioText.classList.remove(!muteAudioInput.checked ? "red-text" : "white-text");
+                        }
                     }
                 });
             }, 100); // Delay to allow everything to settle
diff --git a/scripts/communityModules/chat/FloofChat.js b/scripts/communityScripts/chat/FloofChat.js
similarity index 77%
rename from scripts/communityModules/chat/FloofChat.js
rename to scripts/communityScripts/chat/FloofChat.js
index 92382c3199..d1324bd560 100644
--- a/scripts/communityModules/chat/FloofChat.js
+++ b/scripts/communityScripts/chat/FloofChat.js
@@ -6,6 +6,7 @@
 //
 //  Created by Fluffy Jenkins January 2020.
 //  Copyright 2020 Fluffy Jenkins
+//  Copyright 2020 Vircadia contributors.
 //
 //  For any future coders, please keep me in the loop when making changes.
 //  Please tag me in any Pull Requests.
@@ -23,6 +24,12 @@ var SHIFT_KEY = 33554432;
 var FLOOF_CHAT_CHANNEL = "Chat";
 var FLOOF_NOTIFICATION_CHANNEL = "Floof-Notif";
 
+var MAIN_CHAT_WINDOW_HEIGHT = 450;
+var MAIN_CHAT_WINDOW_WIDTH = 750;
+
+var CHAT_BAR_HISTORY_LIMIT = 256;
+var CHAT_HISTORY_LIMIT = 500;
+
 Script.scriptEnding.connect(function () {
     shutdown();
 });
@@ -41,8 +48,8 @@ var appUUID = Uuid.generate();
 
 var chatBar;
 var chatHistory;
-var chatBarHistoryLimit = Settings.getValue(settingsRoot + "/chatBarHistoryLimit", 256);
-var chatHistoryLimit = Settings.getValue(settingsRoot + "/chatHistoryLimit", 500);
+var chatBarHistoryLimit = Settings.getValue(settingsRoot + "/chatBarHistoryLimit", CHAT_BAR_HISTORY_LIMIT);
+var chatHistoryLimit = Settings.getValue(settingsRoot + "/chatHistoryLimit", CHAT_HISTORY_LIMIT);
 var chatBarHistory = Settings.getValue(settingsRoot + "/chatBarHistory", ["Meow :3"]);
 var historyLog = [];
 
@@ -50,14 +57,16 @@ var visible = false;
 var historyVisible = false;
 var settingsRoot = "FloofChat";
 
-var athenaGotoUrl = "https://metaverse.projectathena.io/interim/d-goto/app/goto.json";
-var gotoJSONUrl = Settings.getValue(settingsRoot + "/gotoJSONUrl", athenaGotoUrl);
+var vircadiaGotoUrl = "https://metaverse.vircadia.com/interim/d-goto/app/goto.json";
+var gotoJSONUrl = Settings.getValue(settingsRoot + "/gotoJSONUrl", vircadiaGotoUrl);
 
 var muted = Settings.getValue(settingsRoot + "/muted", {"Local": false, "Domain": false, "Grid": true});
+var mutedAudio = Settings.getValue(settingsRoot + "/mutedAudio", {"Local": false, "Domain": false, "Grid": true});
+var notificationSound = SoundCache.getSound(Script.resolvePath("resources/bubblepop.wav"));
 
 var ws;
 var wsReady = false;
-var WEB_SOCKET_URL = "ws://chat.projectathena.io:8880";  // WebSocket for Grid chat.
+var WEB_SOCKET_URL = "ws://chat.vircadia.com:8880";  // WebSocket for Grid chat.
 var shutdownBool = false;
 
 var defaultColour = {red: 255, green: 255, blue: 255};
@@ -80,16 +89,18 @@ function init() {
     setupHistoryWindow(false);
 
     chatBar = new OverlayWindow({
-        source: Paths.defaultScripts + '/communityModules/chat/FloofChat.qml?' + Date.now(),
+        source: ROOT + "FloofChat.qml?" + Date.now(),
         width: 360,
         height: 180
     });
 
-    button.clicked.connect(toggleChatHistory);
+    button.clicked.connect(toggleMainChatWindow);
     chatBar.fromQml.connect(fromQml);
     chatBar.sendToQml(JSON.stringify({visible: false, history: chatBarHistory}));
     Controller.keyPressEvent.connect(keyPressEvent);
     Messages.messageReceived.connect(messageReceived);
+    AvatarManager.avatarAddedEvent.connect(avatarJoinsDomain);
+    AvatarManager.avatarRemovedEvent.connect(avatarLeavesDomain);
 
     connectWebSocket();
 }
@@ -106,6 +117,11 @@ function connectWebSocket(timeout) {
         }
         if (!cmd.FAILED) {
             addToLog(cmd.message, cmd.displayName, cmd.colour, cmd.channel);
+            
+            if (!mutedAudio["Grid"] && MyAvatar.sessionDisplayName !== cmd.displayName) {
+                playNotificationSound();
+            }
+            
             if (!muted["Grid"]) {
                 Messages.sendLocalMessage(FLOOF_NOTIFICATION_CHANNEL, JSON.stringify({
                     sender: "(G) " + cmd.displayName,
@@ -166,13 +182,13 @@ function setupHistoryWindow() {
     chatHistory = new OverlayWebWindow({
         title: 'Chat',
         source: ROOT + "FloofChat.html?appUUID=" + appUUID + "&" + Date.now(),
-        width: 900,
-        height: 700,
+        width: MAIN_CHAT_WINDOW_WIDTH,
+        height: MAIN_CHAT_WINDOW_HEIGHT,
         visible: false
     });
-    chatHistory.setPosition({x: 0, y: Window.innerHeight - 700});
+    chatHistory.setPosition({x: 0, y: Window.innerHeight - MAIN_CHAT_WINDOW_HEIGHT});
     chatHistory.webEventReceived.connect(onWebEventReceived);
-    chatHistory.closed.connect(toggleChatHistory);
+    chatHistory.closed.connect(toggleMainChatWindow);
 }
 
 function emitScriptEvent(obj) {
@@ -180,7 +196,7 @@ function emitScriptEvent(obj) {
     tablet.emitScriptEvent(JSON.stringify(obj));
 }
 
-function toggleChatHistory() {
+function toggleMainChatWindow() {
     historyVisible = !historyVisible;
     button.editProperties({isActive: historyVisible});
     chatHistory.visible = historyVisible;
@@ -282,18 +298,23 @@ function onWebEventReceived(event) {
     if (event.type === "ready") {
         chatHistory.emitScriptEvent(JSON.stringify({type: "MSG", data: historyLog}));
         chatHistory.emitScriptEvent(JSON.stringify({type: "CMD", cmd: "MUTED", muted: muted}));
+        chatHistory.emitScriptEvent(JSON.stringify({type: "CMD", cmd: "MUTEDAUDIO", muted: mutedAudio}));
     }
     if (event.type === "CMD") {
         if (event.cmd === "MUTED") {
             muted = event.muted;
             Settings.setValue(settingsRoot + "/muted", muted);
         }
+        if (event.cmd === "MUTEDAUDIO") {
+            mutedAudio = event.muted;
+            Settings.setValue(settingsRoot + "/mutedAudio", mutedAudio);
+        }
         if (event.cmd === "COLOUR") {
             Settings.setValue(settingsRoot + "/" + event.colourType + "Colour", event.colour);
             colours[event.colourType] = event.colour;
         }
         if (event.cmd === "REDOCK") {
-            chatHistory.setPosition({x: 0, y: Window.innerHeight - 700});
+            chatHistory.setPosition({x: 0, y: Window.innerHeight - MAIN_CHAT_WINDOW_HEIGHT});
         }
         if (event.cmd === "GOTO") {
             gotoConfirm(event.url);
@@ -307,12 +328,15 @@ function onWebEventReceived(event) {
                 visible: true
             });
         }
+        if (event.cmd === "EXTERNALURL") {
+            Window.openUrl(event.url);
+        }
         if (event.cmd === "COPY") {
             Window.copyToClipboard(event.url);
         }
     }
     if (event.type === "WEBMSG") {
-        event.avatarName = MyAvatar.displayName;
+        event.avatarName = MyAvatar.sessionDisplayName;
         event = processChat(event);
         if (event.message === "") return;
         sendWS({
@@ -325,7 +349,7 @@ function onWebEventReceived(event) {
         });
     }
     if (event.type === "MSG") {
-        event.avatarName = MyAvatar.displayName;
+        event.avatarName = MyAvatar.sessionDisplayName;
         event = processChat(event);
         if (event.message === "") return;
         Messages.sendMessage("Chat", JSON.stringify({
@@ -340,6 +364,17 @@ function onWebEventReceived(event) {
     }
 }
 
+function playNotificationSound() {
+    if (notificationSound.downloaded) {
+        var injectorOptions = {
+            localOnly: true,
+            position: MyAvatar.position,
+            volume: 0.02
+        };
+        Audio.playSound(notificationSound, injectorOptions);
+    }
+}
+
 function replaceFormatting(text) {
     var found = false;
     if (text.indexOf("**") !== -1) {
@@ -423,6 +458,11 @@ function messageReceived(channel, message) {
                 if (cmd.channel === "Local") {
                     if (Vec3.withinEpsilon(MyAvatar.position, cmd.position, 20)) {
                         addToLog(cmd.message, cmd.displayName, cmd.colour, cmd.channel);
+                        
+                        if (!mutedAudio["Local"] && MyAvatar.sessionDisplayName !== cmd.displayName) {
+                            playNotificationSound();
+                        }
+                        
                         if (!muted["Local"]) {
                             Messages.sendLocalMessage(FLOOF_NOTIFICATION_CHANNEL, JSON.stringify({
                                 sender: "(L) " + cmd.displayName,
@@ -433,6 +473,11 @@ function messageReceived(channel, message) {
                     }
                 } else if (cmd.channel === "Domain") {
                     addToLog(cmd.message, cmd.displayName, cmd.colour, cmd.channel);
+                    
+                    if (!mutedAudio["Domain"] && MyAvatar.sessionDisplayName !== cmd.displayName) {
+                        playNotificationSound();
+                    }
+                    
                     if (!muted["Domain"]) {
                         Messages.sendLocalMessage(FLOOF_NOTIFICATION_CHANNEL, JSON.stringify({
                             sender: "(D) " + cmd.displayName,
@@ -442,6 +487,11 @@ function messageReceived(channel, message) {
                     }
                 } else if (cmd.channel === "Grid") {
                     addToLog(cmd.message, cmd.displayName, cmd.colour, cmd.channel);
+                    
+                    if (!mutedAudio["Grid"] && MyAvatar.sessionDisplayName !== cmd.displayName) {
+                        playNotificationSound();
+                    }
+                    
                     if (!muted["Grid"]) {
                         Messages.sendLocalMessage(FLOOF_NOTIFICATION_CHANNEL, JSON.stringify({
                             sender: "(G) " + cmd.displayName,
@@ -451,6 +501,11 @@ function messageReceived(channel, message) {
                     }
                 } else {
                     addToLog(cmd.message, cmd.displayName, cmd.colour, cmd.channel);
+                    
+                    if (MyAvatar.sessionDisplayName !== cmd.displayName) {
+                        playNotificationSound();
+                    }
+                    
                     Messages.sendLocalMessage(FLOOF_NOTIFICATION_CHANNEL, JSON.stringify({
                         sender: cmd.displayName,
                         text: replaceFormatting(cmd.message),
@@ -458,25 +513,32 @@ function messageReceived(channel, message) {
                     }));
                 }
             }
+            if (cmd.type === "ShowChatWindow") {
+                toggleMainChatWindow();
+            }
         }
     }
 }
 
 function time() {
     var d = new Date();
+    // Months are returned in range 0-11 instead of 1-12, so we have to add 1.
+    var month = (d.getMonth() + 1).toString(); 
+    var day = (d.getDate()).toString();
     var h = (d.getHours()).toString();
     var m = (d.getMinutes()).toString();
     var s = (d.getSeconds()).toString();
     var h2 = ("0" + h).slice(-2);
     var m2 = ("0" + m).slice(-2);
     var s2 = ("0" + s).slice(-2);
-    s2 += (d.getMilliseconds() / 1000).toFixed(2).slice(1);
-    return h2 + ":" + m2 + ":" + s2;
+    // s2 += (d.getMilliseconds() / 1000).toFixed(2).slice(1);
+    return month + "/" + day + " - " + h2 + ":" + m2 + ":" + s2;
 }
 
 function addToLog(msg, dp, colour, tab) {
-    historyLog.push([time(), msg, dp, colour, tab]);
-    chatHistory.emitScriptEvent(JSON.stringify({type: "MSG", data: [[time(), msg, dp, colour, tab]]}));
+    var currentTimestamp = time();
+    historyLog.push([currentTimestamp, msg, dp, colour, tab]);
+    chatHistory.emitScriptEvent(JSON.stringify({ type: "MSG", data: [[currentTimestamp, msg, dp, colour, tab]]}));
     while (historyLog.length > chatHistoryLimit) {
         historyLog.shift();
     }
@@ -503,7 +565,7 @@ function fromQml(message) {
             if (cmd.message !== "") {
                 addToChatBarHistory(cmd.message);
                 if (cmd.event.modifiers === CONTROL_KEY) {
-                    cmd.avatarName = MyAvatar.displayName;
+                    cmd.avatarName = MyAvatar.sessionDisplayName;
                     cmd = processChat(cmd);
                     if (cmd.message === "") return;
                     Messages.sendMessage(FLOOF_CHAT_CHANNEL, JSON.stringify({
@@ -512,7 +574,7 @@ function fromQml(message) {
                         displayName: cmd.avatarName
                     }));
                 } else if (cmd.event.modifiers === CONTROL_KEY + SHIFT_KEY) {
-                    cmd.avatarName = MyAvatar.displayName;
+                    cmd.avatarName = MyAvatar.sessionDisplayName;
                     cmd = processChat(cmd);
                     if (cmd.message === "") return;
                     sendWS({
@@ -524,7 +586,7 @@ function fromQml(message) {
                         displayName: cmd.avatarName
                     });
                 } else {
-                    cmd.avatarName = MyAvatar.displayName;
+                    cmd.avatarName = MyAvatar.sessionDisplayName;
                     cmd = processChat(cmd);
                     if (cmd.message === "") return;
                     Messages.sendMessage(FLOOF_CHAT_CHANNEL, JSON.stringify({
@@ -540,7 +602,7 @@ function fromQml(message) {
             setVisible(false);
         } else if (cmd.type === "CMD") {
             if (cmd.cmd === "Clicked") {
-                toggleChatHistory()
+                toggleMainChatWindow()
             }
         }
     }
@@ -563,9 +625,49 @@ function setVisible(_visible) {
     visible = _visible;
 }
 
+function avatarJoinsDomain(sessionID) {
+    Script.setTimeout(function () {
+        var messageText = AvatarManager.getPalData([sessionID]).data[0].sessionDisplayName + " has joined."
+        var messageColor = { red: 122, green: 122, blue: 122 };
+        
+        addToLog(messageText, "Notice", messageColor, "Domain");
+        
+        if (!mutedAudio["Domain"]) {
+            playNotificationSound();
+        }
+        
+        if (!muted["Domain"]) {
+            Messages.sendLocalMessage(FLOOF_NOTIFICATION_CHANNEL, JSON.stringify({
+                sender: "(D)",
+                text:  messageText,
+                colour: { text: messageColor }
+            }));
+        }
+    }, 500); // Wait 500ms for the avatar to load to properly get info about them.
+}
+
+function avatarLeavesDomain(sessionID) {
+    var messageText = AvatarManager.getPalData([sessionID]).data[0].sessionDisplayName + " has left."
+    var messageColor = { red: 122, green: 122, blue: 122 };
+    
+    addToLog(messageText, "Notice", messageColor, "Domain");
+    
+    if (!mutedAudio["Domain"]) {
+        playNotificationSound();
+    }
+    
+    if (!muted["Domain"]) {
+        Messages.sendLocalMessage(FLOOF_NOTIFICATION_CHANNEL, JSON.stringify({
+            sender: "(D)",
+            text:  messageText,
+            colour: { text: messageColor }
+        }));
+    }
+}
+
 function keyPressEvent(event) {
     if (event.key === H_KEY && !event.isAutoRepeat && event.isControl) {
-        toggleChatHistory()
+        toggleMainChatWindow()
     }
     if (event.key === ENTER_KEY && !event.isAutoRepeat && !visible) {
         setVisible(true);
@@ -581,11 +683,25 @@ function shutdown() {
     } catch (e) {
         // empty
     }
+    
+    try {
+        AvatarManager.avatarAddedEvent.disconnect(avatarJoinsDomain);
+    } catch (e) {
+        // empty
+    }
+    
+    try {
+        AvatarManager.avatarRemovedEvent.disconnect(avatarLeavesDomain);
+    } catch (e) {
+        // empty
+    }
+    
     try {
         Controller.keyPressEvent.disconnect(keyPressEvent);
     } catch (e) {
         // empty
     }
+    
     chatBar.close();
     chatHistory.close();
-}
\ No newline at end of file
+}
diff --git a/scripts/communityModules/chat/FloofChat.qml b/scripts/communityScripts/chat/FloofChat.qml
similarity index 100%
rename from scripts/communityModules/chat/FloofChat.qml
rename to scripts/communityScripts/chat/FloofChat.qml
diff --git a/scripts/communityModules/chat/chat.png b/scripts/communityScripts/chat/chat.png
similarity index 100%
rename from scripts/communityModules/chat/chat.png
rename to scripts/communityScripts/chat/chat.png
diff --git a/scripts/communityModules/chat/css/FloofChat.css b/scripts/communityScripts/chat/css/FloofChat.css
similarity index 84%
rename from scripts/communityModules/chat/css/FloofChat.css
rename to scripts/communityScripts/chat/css/FloofChat.css
index 476712ffbb..12e234376c 100644
--- a/scripts/communityModules/chat/css/FloofChat.css
+++ b/scripts/communityScripts/chat/css/FloofChat.css
@@ -50,6 +50,12 @@ div.dockButton button.active {
     border-top: none;
 }
 
+#tabs {
+    width: 250px !important;
+}
+
+
+
 body {
     width: 100%;
     height: 100%;
@@ -69,9 +75,10 @@ body {
 }
 
 .ChatLog {
-    height: calc(100vh - 137px);
-    padding: 20px !important;
-    font-size: 20px;
+    height: calc(100vh - 127px);
+    padding: 10px !important;
+    font-size: 18px;
+    font-family: 'Roboto', sans-serif;
     color: white;
     background-color: black;
     overflow-x: hidden;
@@ -80,7 +87,7 @@ body {
 }
 
 .ChatLogLine {
-    margin-bottom: 15px;
+    margin-bottom: 7px;
 }
 
 .ChatLogLineDisplayName {
@@ -91,25 +98,30 @@ body {
 }
 
 .LogLogLine {
-    margin-bottom: 15px;
-    padding: 10px !important;
+    margin-bottom: 7px;
+    padding: 6px !important;
 }
 
 .LogLogLineMessage {
     /*font-style: italic;*/
 }
 
+.LogLogLineTimestamp {
+    font-weight: 300;
+    font-size: 16px;
+}
+
 .ChatInput {
     color: #252525;
     background: #252525;
-    height: 60px !important;
+    height: 45px !important;
 }
 
 .ChatInputText {
-    padding: 5px !important;
-    height: 50px !important;
+    padding: 5px 5px 5px 10px !important;
+    height: 35px !important;
     width: calc(100vw - 20px) !important;
-    font-size: 20px !important;
+    font-size: 18px !important;
     background-color: white !important;
     border-style: solid !important;
     border-color: #232323 !important;
@@ -146,6 +158,14 @@ body {
     background-color: #a62113 !important;
 }
 
+#muteText {
+    font-size: 16px;
+}
+
+#muteAudioText {
+    font-size: 16px;
+}
+
 img, a{
     -moz-user-select: none;
     -webkit-user-select: none;
diff --git a/scripts/communityModules/chat/css/materialize.css b/scripts/communityScripts/chat/css/materialize.css
similarity index 100%
rename from scripts/communityModules/chat/css/materialize.css
rename to scripts/communityScripts/chat/css/materialize.css
diff --git a/scripts/communityModules/chat/js/materialize.min.js b/scripts/communityScripts/chat/js/materialize.min.js
similarity index 100%
rename from scripts/communityModules/chat/js/materialize.min.js
rename to scripts/communityScripts/chat/js/materialize.min.js
diff --git a/scripts/communityScripts/chat/resources/bubblepop.wav b/scripts/communityScripts/chat/resources/bubblepop.wav
new file mode 100644
index 0000000000..1a99e5a67d
Binary files /dev/null and b/scripts/communityScripts/chat/resources/bubblepop.wav differ
diff --git a/scripts/communityScripts/explore/explore.js b/scripts/communityScripts/explore/explore.js
index 74158580ec..589bc5cde8 100644
--- a/scripts/communityScripts/explore/explore.js
+++ b/scripts/communityScripts/explore/explore.js
@@ -42,7 +42,8 @@
         ui = new AppUi({
             buttonName: "EXPLORE",
             home: Script.resolvePath("explore.html"),
-            graphicsDirectory: scriptDir
+            graphicsDirectory: scriptDir,
+            sortOrder: 8
         });
     }
 
diff --git a/scripts/communityModules/notificationCore/notificationCore.js b/scripts/communityScripts/notificationCore/notificationCore.js
similarity index 80%
rename from scripts/communityModules/notificationCore/notificationCore.js
rename to scripts/communityScripts/notificationCore/notificationCore.js
index da88ff7c5d..7920a575ec 100644
--- a/scripts/communityModules/notificationCore/notificationCore.js
+++ b/scripts/communityScripts/notificationCore/notificationCore.js
@@ -1,3 +1,17 @@
+//
+//  notificationCore.js
+//
+//  Created by Fluffy Jenkins January 2020.
+//  Copyright 2020 Fluffy Jenkins
+//  Copyright 2020 Vircadia contributors.
+//
+//  For any future coders, please keep me in the loop when making changes.
+//  Please tag me in any Pull Requests.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+//
+
 "use strict";
 var notificationList = [];
 
@@ -6,6 +20,7 @@ var sizeData = {30: {widthMul: 1.8, heightMul: 2.05, split: 35, size: 30}};
 var DEFAULT_SIZE = 30;
 var DEFAULT_OFFSET = 10;
 var FLOOF_NOTIFICATION_CHANNEL = "Floof-Notif";
+var MAIN_CHAT_APP_CHANNEL = "Chat";
 
 var offset = DEFAULT_OFFSET;
 
@@ -161,4 +176,19 @@ function notif(text, colour) {
     notificationList.push(noti);
 }
 
-Script.scriptEnding.connect(cleanUp);
\ No newline at end of file
+Controller.mousePressEvent.connect(function (event) {
+    // Overlays.getOverlayAtPoint applies only to 2D overlays.
+    var overlay = Overlays.getOverlayAtPoint({ x: event.x, y: event.y });
+    if (overlay) {
+        for (var i = 0; i < notificationList.length; i++) {
+            if (overlay === notificationList[i].id) {
+                Overlays.deleteOverlay(notificationList[i].id)
+                Messages.sendMessage(MAIN_CHAT_APP_CHANNEL, JSON.stringify({
+                    type: "ShowChatWindow",
+                }));
+            }
+        }
+    }
+});
+
+Script.scriptEnding.connect(cleanUp);
diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js
index 5e7e120bf3..92a262a3e3 100644
--- a/scripts/defaultScripts.js
+++ b/scripts/defaultScripts.js
@@ -6,6 +6,7 @@
 //  examples
 //
 //  Copyright 2014 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -22,6 +23,7 @@ var DEFAULT_SCRIPTS_COMBINED = [
     "system/snapshot.js",
     "system/pal.js", // "system/mod.js", // older UX, if you prefer
     "system/avatarapp.js",
+    "system/graphicsSettings.js",
     "system/makeUserConnection.js",
     "system/marketplaces/marketplaces.js",
     "system/notifications.js",
@@ -38,11 +40,11 @@ var DEFAULT_SCRIPTS_COMBINED = [
 ];
 var DEFAULT_SCRIPTS_SEPARATE = [
     "system/controllers/controllerScripts.js",
-    "communityModules/notificationCore/notificationCore.js",
+    "communityScripts/notificationCore/notificationCore.js",
     "simplifiedUI/ui/simplifiedNametag/simplifiedNametag.js",
     {"stable": "system/more/app-more.js", "beta": "https://cdn.vircadia.com/community-apps/more/app-more.js"},
     {"stable": "communityScripts/explore/explore.js", "beta": "https://metaverse.vircadia.com/interim/d-goto/app/explore.js"},
-    {"stable": "communityModules/chat/FloofChat.js", "beta": "https://content.fluffy.ws/scripts/chat/FloofChat.js"}
+    {"stable": "communityScripts/chat/FloofChat.js", "beta": "https://content.fluffy.ws/scripts/chat/FloofChat.js"}
     //"system/chat.js"
 ];
 
diff --git a/scripts/system/graphicsSettings.js b/scripts/system/graphicsSettings.js
new file mode 100644
index 0000000000..df556a91b1
--- /dev/null
+++ b/scripts/system/graphicsSettings.js
@@ -0,0 +1,70 @@
+//
+//  graphicsSettings.js
+//
+//  Created by Kalila L. on 8/5/2020
+//  Copyright 2020 Vircadia contributors.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+//
+
+(function() { // BEGIN LOCAL_SCOPE
+
+    var AppUi = Script.require('appUi');
+    
+    // cellphone-cog MDI
+    // var customIcon = 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24"><path fill="white" d="M9.82,12.5C9.84,12.33 9.86,12.17 9.86,12C9.86,11.83 9.84,11.67 9.82,11.5L10.9,10.69C11,10.62 11,10.5 10.96,10.37L9.93,8.64C9.87,8.53 9.73,8.5 9.62,8.53L8.34,9.03C8.07,8.83 7.78,8.67 7.47,8.54L7.27,7.21C7.27,7.09 7.16,7 7.03,7H5C4.85,7 4.74,7.09 4.72,7.21L4.5,8.53C4.21,8.65 3.92,8.83 3.65,9L2.37,8.5C2.25,8.47 2.12,8.5 2.06,8.63L1.03,10.36C0.97,10.5 1,10.61 1.1,10.69L2.18,11.5C2.16,11.67 2.15,11.84 2.15,12C2.15,12.17 2.17,12.33 2.19,12.5L1.1,13.32C1,13.39 1,13.53 1.04,13.64L2.07,15.37C2.13,15.5 2.27,15.5 2.38,15.5L3.66,15C3.93,15.18 4.22,15.34 4.53,15.47L4.73,16.79C4.74,16.91 4.85,17 5,17H7.04C7.17,17 7.28,16.91 7.29,16.79L7.5,15.47C7.8,15.35 8.09,15.17 8.36,15L9.64,15.5C9.76,15.53 9.89,15.5 9.95,15.37L11,13.64C11.04,13.53 11,13.4 10.92,13.32L9.82,12.5M6,13.75C5,13.75 4.2,12.97 4.2,12C4.2,11.03 5,10.25 6,10.25C7,10.25 7.8,11.03 7.8,12C7.8,12.97 7,13.75 6,13.75M17,1H7A2,2 0 0,0 5,3V6H7V4H17V20H7V18H5V21A2,2 0 0,0 7,23H17A2,2 0 0,0 19,21V3A2,2 0 0,0 17,1Z" /></svg>'
+    
+    // application-cog MDI
+    var customIcon = 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24"><path fill="white" d="M21.7 18.6V17.6L22.8 16.8C22.9 16.7 23 16.6 22.9 16.5L21.9 14.8C21.9 14.7 21.7 14.7 21.6 14.7L20.4 15.2C20.1 15 19.8 14.8 19.5 14.7L19.3 13.4C19.3 13.3 19.2 13.2 19.1 13.2H17.1C16.9 13.2 16.8 13.3 16.8 13.4L16.6 14.7C16.3 14.9 16.1 15 15.8 15.2L14.6 14.7C14.5 14.7 14.4 14.7 14.3 14.8L13.3 16.5C13.3 16.6 13.3 16.7 13.4 16.8L14.5 17.6V18.6L13.4 19.4C13.3 19.5 13.2 19.6 13.3 19.7L14.3 21.4C14.4 21.5 14.5 21.5 14.6 21.5L15.8 21C16 21.2 16.3 21.4 16.6 21.5L16.8 22.8C16.9 22.9 17 23 17.1 23H19.1C19.2 23 19.3 22.9 19.3 22.8L19.5 21.5C19.8 21.3 20 21.2 20.3 21L21.5 21.4C21.6 21.4 21.7 21.4 21.8 21.3L22.8 19.6C22.9 19.5 22.9 19.4 22.8 19.4L21.7 18.6M18 19.5C17.2 19.5 16.5 18.8 16.5 18S17.2 16.5 18 16.5 19.5 17.2 19.5 18 18.8 19.5 18 19.5M11.29 20H5C3.89 20 3 19.1 3 18V6C3 4.89 3.9 4 5 4H19C20.11 4 21 4.9 21 6V11.68C20.38 11.39 19.71 11.18 19 11.08V8H5V18H11C11 18.7 11.11 19.37 11.29 20Z" /></svg>'
+    var lqIcon = 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24"><path fill="white" d="M14.5,13.5H16.5V10.5H14.5M18,14C18,14.6 17.6,15 17,15H16.25V16.5H14.75V15H14C13.4,15 13,14.6 13,14V10C13,9.4 13.4,9 14,9H17C17.6,9 18,9.4 18,10M19,4H5A2,2 0 0,0 3,6V18A2,2 0 0,0 5,20H19A2,2 0 0,0 21,18V6A2,2 0 0,0 19,4M11,13.5V15H6V9H7.5V13.5H11Z" /></svg>';
+    var mqIcon = 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24"><path fill="white" d="M21,6V18A2,2 0 0,1 19,20H5A2,2 0 0,1 3,18V6A2,2 0 0,1 5,4H19A2,2 0 0,1 21,6M12,10C12,9.5 11.5,9 11,9H6.5C6,9 5.5,9.5 5.5,10V15H7V10.5H8V14H9.5V10.5H10.5V15H12V10M14.5,9A1,1 0 0,0 13.5,10V14A1,1 0 0,0 14.5,15H15.5V16.5H16.75V15H17.5A1,1 0 0,0 18.5,14V10A1,1 0 0,0 17.5,9H14.5M15,10.5H17V13.5H15V10.5Z" /></svg>';
+    var hqIcon = 'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24"><path fill="white" d="M14.5,13.5H16.5V10.5H14.5M18,14A1,1 0 0,1 17,15H16.25V16.5H14.75V15H14A1,1 0 0,1 13,14V10A1,1 0 0,1 14,9H17A1,1 0 0,1 18,10M11,15H9.5V13H7.5V15H6V9H7.5V11.5H9.5V9H11M19,4H5C3.89,4 3,4.89 3,6V18A2,2 0 0,0 5,20H19A2,2 0 0,0 21,18V6C21,4.89 20.1,4 19,4Z" /></svg>';
+
+    var BUTTON_NAME = "GRAPHICS";
+    var GRAPHICS_QML_SOURCE = "hifi/dialogs/graphics/GraphicsSettings.qml";
+    var ui;
+    
+    function getIcon() {
+        // TODO: Implement only once AppUi can be told to constantly retrieve / reset icons...
+        // var performanceProfile = Performance.getPerformancePreset();
+        // 
+        // switch (performanceProfile) {
+        //     case 0:
+        //         return customIcon;
+        //         break;
+        //     case 1:
+        //         return lqIcon;
+        //         break;
+        //     case 2:
+        //         return mqIcon;
+        //         break;
+        //     case 3:
+        //         return hqIcon;
+        //         break;
+        //     default:
+        //         return customIcon;
+        // }
+        return customIcon;
+    }
+
+    function startup() {
+        ui = new AppUi({
+            buttonName: BUTTON_NAME,
+            sortOrder: 8,
+            normalButton: getIcon(),
+            activeButton: getIcon().replace('white', 'black'),
+            home: GRAPHICS_QML_SOURCE
+        });
+    }
+
+    function shutdown() {
+    }
+
+    //
+    // Run the functions.
+    //
+    startup();
+    Script.scriptEnding.connect(shutdown);
+
+}()); // END LOCAL_SCOPE
diff --git a/scripts/system/inventory/.gitignore b/scripts/system/inventory/.gitignore
new file mode 100644
index 0000000000..c2b66ff67b
--- /dev/null
+++ b/scripts/system/inventory/.gitignore
@@ -0,0 +1,20 @@
+.DS_Store
+node_modules
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/scripts/system/inventory/README.md b/scripts/system/inventory/README.md
new file mode 100644
index 0000000000..bba10a92ea
--- /dev/null
+++ b/scripts/system/inventory/README.md
@@ -0,0 +1,24 @@
+# inventory
+
+## Project setup
+```
+npm install
+```
+
+### Compiles and hot-reloads for development
+```
+npm run serve
+```
+
+### Compiles and minifies for production
+```
+npm run build
+```
+
+### Lints and fixes files
+```
+npm run lint
+```
+
+### Customize configuration
+See [Configuration Reference](https://cli.vuejs.org/config/).
diff --git a/scripts/system/inventory/babel.config.js b/scripts/system/inventory/babel.config.js
new file mode 100644
index 0000000000..e9558405fd
--- /dev/null
+++ b/scripts/system/inventory/babel.config.js
@@ -0,0 +1,5 @@
+module.exports = {
+  presets: [
+    '@vue/cli-plugin-babel/preset'
+  ]
+}
diff --git a/scripts/system/inventory/dist/css/app.a93e8b1f.css b/scripts/system/inventory/dist/css/app.a93e8b1f.css
new file mode 100644
index 0000000000..a2bdb2246f
--- /dev/null
+++ b/scripts/system/inventory/dist/css/app.a93e8b1f.css
@@ -0,0 +1 @@
+.draggable-card{background-color:#272727;margin:5px 0}.draggable-card .handle{width:40px!important}.top-level-folder{background-color:#272727}.top-level-folder .v-list-group__header__prepend-icon{background-color:rgba(0,0,0,.3);width:50px;height:50px;margin:5px 5px 7px 0!important;padding:5px 18px 5px 8px}.top-level-folder .handle{width:40px!important}.top-level-folder .folder-icon{margin-right:10px}.top-level-folder .folder-button{font-size:.795rem!important}.v-list-group .column-item{max-width:100%!important;margin-top:5px;margin-bottom:5px}.v-list-group .draggable-card{background-color:rgba(0,0,0,.3);padding-right:16px;padding-left:0!important}.v-list-group .draggable-card .handle{margin-right:16px}.app-version{text-align:center;color:hsla(0,0%,100%,.6);font-weight:lighter}.handle{background-color:rgba(0,0,0,.3)}.inventoryApp::-webkit-scrollbar{width:0!important}
\ No newline at end of file
diff --git a/scripts/system/inventory/dist/css/chunk-vendors.8540aa41.css b/scripts/system/inventory/dist/css/chunk-vendors.8540aa41.css
new file mode 100644
index 0000000000..c328a9511a
--- /dev/null
+++ b/scripts/system/inventory/dist/css/chunk-vendors.8540aa41.css
@@ -0,0 +1,5 @@
+.v-btn:not(.v-btn--outlined).accent,.v-btn:not(.v-btn--outlined).error,.v-btn:not(.v-btn--outlined).info,.v-btn:not(.v-btn--outlined).primary,.v-btn:not(.v-btn--outlined).secondary,.v-btn:not(.v-btn--outlined).success,.v-btn:not(.v-btn--outlined).warning{color:#fff}.theme--light.v-btn{color:rgba(0,0,0,.87)}.theme--light.v-btn.v-btn--disabled,.theme--light.v-btn.v-btn--disabled .v-btn__loading,.theme--light.v-btn.v-btn--disabled .v-icon{color:rgba(0,0,0,.26)!important}.theme--light.v-btn.v-btn--disabled:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:rgba(0,0,0,.12)!important}.theme--light.v-btn:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:#f5f5f5}.theme--light.v-btn.v-btn--outlined.v-btn--text{border-color:rgba(0,0,0,.12)}.theme--light.v-btn.v-btn--icon{color:rgba(0,0,0,.54)}.theme--light.v-btn:hover:before{opacity:.04}.theme--light.v-btn--active:before,.theme--light.v-btn--active:hover:before,.theme--light.v-btn:focus:before{opacity:.12}.theme--light.v-btn--active:focus:before{opacity:.16}.theme--dark.v-btn{color:#fff}.theme--dark.v-btn.v-btn--disabled,.theme--dark.v-btn.v-btn--disabled .v-btn__loading,.theme--dark.v-btn.v-btn--disabled .v-icon{color:hsla(0,0%,100%,.3)!important}.theme--dark.v-btn.v-btn--disabled:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:hsla(0,0%,100%,.12)!important}.theme--dark.v-btn:not(.v-btn--flat):not(.v-btn--text):not(.v-btn--outlined){background-color:#272727}.theme--dark.v-btn.v-btn--outlined.v-btn--text{border-color:hsla(0,0%,100%,.12)}.theme--dark.v-btn.v-btn--icon{color:#fff}.theme--dark.v-btn:hover:before{opacity:.08}.theme--dark.v-btn--active:before,.theme--dark.v-btn--active:hover:before,.theme--dark.v-btn:focus:before{opacity:.24}.theme--dark.v-btn--active:focus:before{opacity:.32}.v-btn{align-items:center;border-radius:4px;display:inline-flex;flex:0 0 auto;font-weight:500;letter-spacing:.0892857143em;justify-content:center;outline:0;position:relative;text-decoration:none;text-indent:.0892857143em;text-transform:uppercase;transition-duration:.28s;transition-property:box-shadow,transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.v-btn.v-size--x-small{font-size:.625rem}.v-btn.v-size--small{font-size:.75rem}.v-btn.v-size--default,.v-btn.v-size--large{font-size:.875rem}.v-btn.v-size--x-large{font-size:1rem}.v-btn:before{border-radius:inherit;bottom:0;color:inherit;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s cubic-bezier(.4,0,.6,1);background-color:currentColor}.v-btn:not(.v-btn--disabled){will-change:box-shadow}.v-btn:not(.v-btn--round).v-size--x-small{height:20px;min-width:36px;padding:0 8.8888888889px}.v-btn:not(.v-btn--round).v-size--small{height:28px;min-width:50px;padding:0 12.4444444444px}.v-btn:not(.v-btn--round).v-size--default{height:36px;min-width:64px;padding:0 16px}.v-btn:not(.v-btn--round).v-size--large{height:44px;min-width:78px;padding:0 19.5555555556px}.v-btn:not(.v-btn--round).v-size--x-large{height:52px;min-width:92px;padding:0 23.1111111111px}.v-btn>.v-btn__content .v-icon{color:inherit}.v-btn__content{align-items:center;color:inherit;display:flex;flex:1 0 auto;justify-content:inherit;line-height:normal;position:relative}.v-btn__content .v-icon--left,.v-btn__content .v-icon--right{font-size:18px;height:18px;width:18px}.v-application--is-ltr .v-btn__content .v-icon--left{margin-left:-4px;margin-right:8px}.v-application--is-ltr .v-btn__content .v-icon--right,.v-application--is-rtl .v-btn__content .v-icon--left{margin-left:8px;margin-right:-4px}.v-application--is-rtl .v-btn__content .v-icon--right{margin-left:-4px;margin-right:8px}.v-btn__loader{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.v-btn:not(.v-btn--text):not(.v-btn--outlined).v-btn--active:before{opacity:.18}.v-btn:not(.v-btn--text):not(.v-btn--outlined):hover:before{opacity:.08}.v-btn:not(.v-btn--text):not(.v-btn--outlined):focus:before{opacity:.24}.v-btn--absolute,.v-btn--fixed{position:absolute}.v-btn--absolute.v-btn--right,.v-btn--fixed.v-btn--right{right:16px}.v-btn--absolute.v-btn--left,.v-btn--fixed.v-btn--left{left:16px}.v-btn--absolute.v-btn--top,.v-btn--fixed.v-btn--top{top:16px}.v-btn--absolute.v-btn--bottom,.v-btn--fixed.v-btn--bottom{bottom:16px}.v-btn--block{display:flex;flex:1 0 auto;min-width:100%!important;max-width:auto}.v-btn--contained{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-btn--contained:after{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-btn--contained:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-btn--depressed{box-shadow:none!important}.v-btn--disabled{box-shadow:none;pointer-events:none}.v-btn--fab,.v-btn--icon{min-height:0;min-width:0;padding:0}.v-btn--fab.v-size--x-small .v-icon,.v-btn--icon.v-size--x-small .v-icon{height:18px;font-size:18px;width:18px}.v-btn--fab.v-size--default .v-icon,.v-btn--fab.v-size--small .v-icon,.v-btn--icon.v-size--default .v-icon,.v-btn--icon.v-size--small .v-icon{height:24px;font-size:24px;width:24px}.v-btn--fab.v-size--large .v-icon,.v-btn--icon.v-size--large .v-icon{height:28px;font-size:28px;width:28px}.v-btn--fab.v-size--x-large .v-icon,.v-btn--icon.v-size--x-large .v-icon{height:32px;font-size:32px;width:32px}.v-btn--icon.v-size--x-small{height:20px;width:20px}.v-btn--icon.v-size--small{height:28px;width:28px}.v-btn--icon.v-size--default{height:36px;width:36px}.v-btn--icon.v-size--large{height:44px;width:44px}.v-btn--icon.v-size--x-large{height:52px;width:52px}.v-btn--fab.v-btn--contained{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.v-btn--fab.v-btn--contained:after{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-btn--fab.v-btn--contained:active{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.v-btn--fab.v-btn--absolute,.v-btn--fab.v-btn--fixed{z-index:4}.v-btn--fab.v-size--x-small{height:32px;width:32px}.v-btn--fab.v-size--x-small.v-btn--absolute.v-btn--bottom{bottom:-16px}.v-btn--fab.v-size--x-small.v-btn--absolute.v-btn--top{top:-16px}.v-btn--fab.v-size--small{height:40px;width:40px}.v-btn--fab.v-size--small.v-btn--absolute.v-btn--bottom{bottom:-20px}.v-btn--fab.v-size--small.v-btn--absolute.v-btn--top{top:-20px}.v-btn--fab.v-size--default{height:56px;width:56px}.v-btn--fab.v-size--default.v-btn--absolute.v-btn--bottom{bottom:-28px}.v-btn--fab.v-size--default.v-btn--absolute.v-btn--top{top:-28px}.v-btn--fab.v-size--large{height:64px;width:64px}.v-btn--fab.v-size--large.v-btn--absolute.v-btn--bottom{bottom:-32px}.v-btn--fab.v-size--large.v-btn--absolute.v-btn--top{top:-32px}.v-btn--fab.v-size--x-large{height:72px;width:72px}.v-btn--fab.v-size--x-large.v-btn--absolute.v-btn--bottom{bottom:-36px}.v-btn--fab.v-size--x-large.v-btn--absolute.v-btn--top{top:-36px}.v-btn--fixed{position:fixed}.v-btn--loading{pointer-events:none;transition:none}.v-btn--loading .v-btn__content{opacity:0}.v-btn--outlined{border:thin solid currentColor}.v-btn--outlined .v-btn__content .v-icon,.v-btn--round .v-btn__content .v-icon{color:currentColor}.v-btn--flat,.v-btn--outlined,.v-btn--text{background-color:transparent}.v-btn--outlined:before,.v-btn--round:before,.v-btn--rounded:before{border-radius:inherit}.v-btn--round{border-radius:50%}.v-btn--rounded{border-radius:28px}.v-btn--tile{border-radius:0}.theme--light.v-sheet{background-color:#fff;border-color:#fff;color:rgba(0,0,0,.87)}.theme--light.v-sheet--outlined{border:thin solid rgba(0,0,0,.12)}.theme--dark.v-sheet{background-color:#1e1e1e;border-color:#1e1e1e;color:#fff}.theme--dark.v-sheet--outlined{border:thin solid hsla(0,0%,100%,.12)}.v-sheet{border-radius:0}.v-sheet:not(.v-sheet--outlined){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-sheet.v-sheet--shaped{border-radius:24px 0}@-webkit-keyframes v-shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}@keyframes v-shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}.v-application .black{background-color:#000!important;border-color:#000!important}.v-application .black--text{color:#000!important;caret-color:#000!important}.v-application .white{background-color:#fff!important;border-color:#fff!important}.v-application .white--text{color:#fff!important;caret-color:#fff!important}.v-application .transparent{background-color:transparent!important;border-color:transparent!important}.v-application .transparent--text{color:transparent!important;caret-color:transparent!important}.v-application .red{background-color:#f44336!important;border-color:#f44336!important}.v-application .red--text{color:#f44336!important;caret-color:#f44336!important}.v-application .red.lighten-5{background-color:#ffebee!important;border-color:#ffebee!important}.v-application .red--text.text--lighten-5{color:#ffebee!important;caret-color:#ffebee!important}.v-application .red.lighten-4{background-color:#ffcdd2!important;border-color:#ffcdd2!important}.v-application .red--text.text--lighten-4{color:#ffcdd2!important;caret-color:#ffcdd2!important}.v-application .red.lighten-3{background-color:#ef9a9a!important;border-color:#ef9a9a!important}.v-application .red--text.text--lighten-3{color:#ef9a9a!important;caret-color:#ef9a9a!important}.v-application .red.lighten-2{background-color:#e57373!important;border-color:#e57373!important}.v-application .red--text.text--lighten-2{color:#e57373!important;caret-color:#e57373!important}.v-application .red.lighten-1{background-color:#ef5350!important;border-color:#ef5350!important}.v-application .red--text.text--lighten-1{color:#ef5350!important;caret-color:#ef5350!important}.v-application .red.darken-1{background-color:#e53935!important;border-color:#e53935!important}.v-application .red--text.text--darken-1{color:#e53935!important;caret-color:#e53935!important}.v-application .red.darken-2{background-color:#d32f2f!important;border-color:#d32f2f!important}.v-application .red--text.text--darken-2{color:#d32f2f!important;caret-color:#d32f2f!important}.v-application .red.darken-3{background-color:#c62828!important;border-color:#c62828!important}.v-application .red--text.text--darken-3{color:#c62828!important;caret-color:#c62828!important}.v-application .red.darken-4{background-color:#b71c1c!important;border-color:#b71c1c!important}.v-application .red--text.text--darken-4{color:#b71c1c!important;caret-color:#b71c1c!important}.v-application .red.accent-1{background-color:#ff8a80!important;border-color:#ff8a80!important}.v-application .red--text.text--accent-1{color:#ff8a80!important;caret-color:#ff8a80!important}.v-application .red.accent-2{background-color:#ff5252!important;border-color:#ff5252!important}.v-application .red--text.text--accent-2{color:#ff5252!important;caret-color:#ff5252!important}.v-application .red.accent-3{background-color:#ff1744!important;border-color:#ff1744!important}.v-application .red--text.text--accent-3{color:#ff1744!important;caret-color:#ff1744!important}.v-application .red.accent-4{background-color:#d50000!important;border-color:#d50000!important}.v-application .red--text.text--accent-4{color:#d50000!important;caret-color:#d50000!important}.v-application .pink{background-color:#e91e63!important;border-color:#e91e63!important}.v-application .pink--text{color:#e91e63!important;caret-color:#e91e63!important}.v-application .pink.lighten-5{background-color:#fce4ec!important;border-color:#fce4ec!important}.v-application .pink--text.text--lighten-5{color:#fce4ec!important;caret-color:#fce4ec!important}.v-application .pink.lighten-4{background-color:#f8bbd0!important;border-color:#f8bbd0!important}.v-application .pink--text.text--lighten-4{color:#f8bbd0!important;caret-color:#f8bbd0!important}.v-application .pink.lighten-3{background-color:#f48fb1!important;border-color:#f48fb1!important}.v-application .pink--text.text--lighten-3{color:#f48fb1!important;caret-color:#f48fb1!important}.v-application .pink.lighten-2{background-color:#f06292!important;border-color:#f06292!important}.v-application .pink--text.text--lighten-2{color:#f06292!important;caret-color:#f06292!important}.v-application .pink.lighten-1{background-color:#ec407a!important;border-color:#ec407a!important}.v-application .pink--text.text--lighten-1{color:#ec407a!important;caret-color:#ec407a!important}.v-application .pink.darken-1{background-color:#d81b60!important;border-color:#d81b60!important}.v-application .pink--text.text--darken-1{color:#d81b60!important;caret-color:#d81b60!important}.v-application .pink.darken-2{background-color:#c2185b!important;border-color:#c2185b!important}.v-application .pink--text.text--darken-2{color:#c2185b!important;caret-color:#c2185b!important}.v-application .pink.darken-3{background-color:#ad1457!important;border-color:#ad1457!important}.v-application .pink--text.text--darken-3{color:#ad1457!important;caret-color:#ad1457!important}.v-application .pink.darken-4{background-color:#880e4f!important;border-color:#880e4f!important}.v-application .pink--text.text--darken-4{color:#880e4f!important;caret-color:#880e4f!important}.v-application .pink.accent-1{background-color:#ff80ab!important;border-color:#ff80ab!important}.v-application .pink--text.text--accent-1{color:#ff80ab!important;caret-color:#ff80ab!important}.v-application .pink.accent-2{background-color:#ff4081!important;border-color:#ff4081!important}.v-application .pink--text.text--accent-2{color:#ff4081!important;caret-color:#ff4081!important}.v-application .pink.accent-3{background-color:#f50057!important;border-color:#f50057!important}.v-application .pink--text.text--accent-3{color:#f50057!important;caret-color:#f50057!important}.v-application .pink.accent-4{background-color:#c51162!important;border-color:#c51162!important}.v-application .pink--text.text--accent-4{color:#c51162!important;caret-color:#c51162!important}.v-application .purple{background-color:#9c27b0!important;border-color:#9c27b0!important}.v-application .purple--text{color:#9c27b0!important;caret-color:#9c27b0!important}.v-application .purple.lighten-5{background-color:#f3e5f5!important;border-color:#f3e5f5!important}.v-application .purple--text.text--lighten-5{color:#f3e5f5!important;caret-color:#f3e5f5!important}.v-application .purple.lighten-4{background-color:#e1bee7!important;border-color:#e1bee7!important}.v-application .purple--text.text--lighten-4{color:#e1bee7!important;caret-color:#e1bee7!important}.v-application .purple.lighten-3{background-color:#ce93d8!important;border-color:#ce93d8!important}.v-application .purple--text.text--lighten-3{color:#ce93d8!important;caret-color:#ce93d8!important}.v-application .purple.lighten-2{background-color:#ba68c8!important;border-color:#ba68c8!important}.v-application .purple--text.text--lighten-2{color:#ba68c8!important;caret-color:#ba68c8!important}.v-application .purple.lighten-1{background-color:#ab47bc!important;border-color:#ab47bc!important}.v-application .purple--text.text--lighten-1{color:#ab47bc!important;caret-color:#ab47bc!important}.v-application .purple.darken-1{background-color:#8e24aa!important;border-color:#8e24aa!important}.v-application .purple--text.text--darken-1{color:#8e24aa!important;caret-color:#8e24aa!important}.v-application .purple.darken-2{background-color:#7b1fa2!important;border-color:#7b1fa2!important}.v-application .purple--text.text--darken-2{color:#7b1fa2!important;caret-color:#7b1fa2!important}.v-application .purple.darken-3{background-color:#6a1b9a!important;border-color:#6a1b9a!important}.v-application .purple--text.text--darken-3{color:#6a1b9a!important;caret-color:#6a1b9a!important}.v-application .purple.darken-4{background-color:#4a148c!important;border-color:#4a148c!important}.v-application .purple--text.text--darken-4{color:#4a148c!important;caret-color:#4a148c!important}.v-application .purple.accent-1{background-color:#ea80fc!important;border-color:#ea80fc!important}.v-application .purple--text.text--accent-1{color:#ea80fc!important;caret-color:#ea80fc!important}.v-application .purple.accent-2{background-color:#e040fb!important;border-color:#e040fb!important}.v-application .purple--text.text--accent-2{color:#e040fb!important;caret-color:#e040fb!important}.v-application .purple.accent-3{background-color:#d500f9!important;border-color:#d500f9!important}.v-application .purple--text.text--accent-3{color:#d500f9!important;caret-color:#d500f9!important}.v-application .purple.accent-4{background-color:#a0f!important;border-color:#a0f!important}.v-application .purple--text.text--accent-4{color:#a0f!important;caret-color:#a0f!important}.v-application .deep-purple{background-color:#673ab7!important;border-color:#673ab7!important}.v-application .deep-purple--text{color:#673ab7!important;caret-color:#673ab7!important}.v-application .deep-purple.lighten-5{background-color:#ede7f6!important;border-color:#ede7f6!important}.v-application .deep-purple--text.text--lighten-5{color:#ede7f6!important;caret-color:#ede7f6!important}.v-application .deep-purple.lighten-4{background-color:#d1c4e9!important;border-color:#d1c4e9!important}.v-application .deep-purple--text.text--lighten-4{color:#d1c4e9!important;caret-color:#d1c4e9!important}.v-application .deep-purple.lighten-3{background-color:#b39ddb!important;border-color:#b39ddb!important}.v-application .deep-purple--text.text--lighten-3{color:#b39ddb!important;caret-color:#b39ddb!important}.v-application .deep-purple.lighten-2{background-color:#9575cd!important;border-color:#9575cd!important}.v-application .deep-purple--text.text--lighten-2{color:#9575cd!important;caret-color:#9575cd!important}.v-application .deep-purple.lighten-1{background-color:#7e57c2!important;border-color:#7e57c2!important}.v-application .deep-purple--text.text--lighten-1{color:#7e57c2!important;caret-color:#7e57c2!important}.v-application .deep-purple.darken-1{background-color:#5e35b1!important;border-color:#5e35b1!important}.v-application .deep-purple--text.text--darken-1{color:#5e35b1!important;caret-color:#5e35b1!important}.v-application .deep-purple.darken-2{background-color:#512da8!important;border-color:#512da8!important}.v-application .deep-purple--text.text--darken-2{color:#512da8!important;caret-color:#512da8!important}.v-application .deep-purple.darken-3{background-color:#4527a0!important;border-color:#4527a0!important}.v-application .deep-purple--text.text--darken-3{color:#4527a0!important;caret-color:#4527a0!important}.v-application .deep-purple.darken-4{background-color:#311b92!important;border-color:#311b92!important}.v-application .deep-purple--text.text--darken-4{color:#311b92!important;caret-color:#311b92!important}.v-application .deep-purple.accent-1{background-color:#b388ff!important;border-color:#b388ff!important}.v-application .deep-purple--text.text--accent-1{color:#b388ff!important;caret-color:#b388ff!important}.v-application .deep-purple.accent-2{background-color:#7c4dff!important;border-color:#7c4dff!important}.v-application .deep-purple--text.text--accent-2{color:#7c4dff!important;caret-color:#7c4dff!important}.v-application .deep-purple.accent-3{background-color:#651fff!important;border-color:#651fff!important}.v-application .deep-purple--text.text--accent-3{color:#651fff!important;caret-color:#651fff!important}.v-application .deep-purple.accent-4{background-color:#6200ea!important;border-color:#6200ea!important}.v-application .deep-purple--text.text--accent-4{color:#6200ea!important;caret-color:#6200ea!important}.v-application .indigo{background-color:#3f51b5!important;border-color:#3f51b5!important}.v-application .indigo--text{color:#3f51b5!important;caret-color:#3f51b5!important}.v-application .indigo.lighten-5{background-color:#e8eaf6!important;border-color:#e8eaf6!important}.v-application .indigo--text.text--lighten-5{color:#e8eaf6!important;caret-color:#e8eaf6!important}.v-application .indigo.lighten-4{background-color:#c5cae9!important;border-color:#c5cae9!important}.v-application .indigo--text.text--lighten-4{color:#c5cae9!important;caret-color:#c5cae9!important}.v-application .indigo.lighten-3{background-color:#9fa8da!important;border-color:#9fa8da!important}.v-application .indigo--text.text--lighten-3{color:#9fa8da!important;caret-color:#9fa8da!important}.v-application .indigo.lighten-2{background-color:#7986cb!important;border-color:#7986cb!important}.v-application .indigo--text.text--lighten-2{color:#7986cb!important;caret-color:#7986cb!important}.v-application .indigo.lighten-1{background-color:#5c6bc0!important;border-color:#5c6bc0!important}.v-application .indigo--text.text--lighten-1{color:#5c6bc0!important;caret-color:#5c6bc0!important}.v-application .indigo.darken-1{background-color:#3949ab!important;border-color:#3949ab!important}.v-application .indigo--text.text--darken-1{color:#3949ab!important;caret-color:#3949ab!important}.v-application .indigo.darken-2{background-color:#303f9f!important;border-color:#303f9f!important}.v-application .indigo--text.text--darken-2{color:#303f9f!important;caret-color:#303f9f!important}.v-application .indigo.darken-3{background-color:#283593!important;border-color:#283593!important}.v-application .indigo--text.text--darken-3{color:#283593!important;caret-color:#283593!important}.v-application .indigo.darken-4{background-color:#1a237e!important;border-color:#1a237e!important}.v-application .indigo--text.text--darken-4{color:#1a237e!important;caret-color:#1a237e!important}.v-application .indigo.accent-1{background-color:#8c9eff!important;border-color:#8c9eff!important}.v-application .indigo--text.text--accent-1{color:#8c9eff!important;caret-color:#8c9eff!important}.v-application .indigo.accent-2{background-color:#536dfe!important;border-color:#536dfe!important}.v-application .indigo--text.text--accent-2{color:#536dfe!important;caret-color:#536dfe!important}.v-application .indigo.accent-3{background-color:#3d5afe!important;border-color:#3d5afe!important}.v-application .indigo--text.text--accent-3{color:#3d5afe!important;caret-color:#3d5afe!important}.v-application .indigo.accent-4{background-color:#304ffe!important;border-color:#304ffe!important}.v-application .indigo--text.text--accent-4{color:#304ffe!important;caret-color:#304ffe!important}.v-application .blue{background-color:#2196f3!important;border-color:#2196f3!important}.v-application .blue--text{color:#2196f3!important;caret-color:#2196f3!important}.v-application .blue.lighten-5{background-color:#e3f2fd!important;border-color:#e3f2fd!important}.v-application .blue--text.text--lighten-5{color:#e3f2fd!important;caret-color:#e3f2fd!important}.v-application .blue.lighten-4{background-color:#bbdefb!important;border-color:#bbdefb!important}.v-application .blue--text.text--lighten-4{color:#bbdefb!important;caret-color:#bbdefb!important}.v-application .blue.lighten-3{background-color:#90caf9!important;border-color:#90caf9!important}.v-application .blue--text.text--lighten-3{color:#90caf9!important;caret-color:#90caf9!important}.v-application .blue.lighten-2{background-color:#64b5f6!important;border-color:#64b5f6!important}.v-application .blue--text.text--lighten-2{color:#64b5f6!important;caret-color:#64b5f6!important}.v-application .blue.lighten-1{background-color:#42a5f5!important;border-color:#42a5f5!important}.v-application .blue--text.text--lighten-1{color:#42a5f5!important;caret-color:#42a5f5!important}.v-application .blue.darken-1{background-color:#1e88e5!important;border-color:#1e88e5!important}.v-application .blue--text.text--darken-1{color:#1e88e5!important;caret-color:#1e88e5!important}.v-application .blue.darken-2{background-color:#1976d2!important;border-color:#1976d2!important}.v-application .blue--text.text--darken-2{color:#1976d2!important;caret-color:#1976d2!important}.v-application .blue.darken-3{background-color:#1565c0!important;border-color:#1565c0!important}.v-application .blue--text.text--darken-3{color:#1565c0!important;caret-color:#1565c0!important}.v-application .blue.darken-4{background-color:#0d47a1!important;border-color:#0d47a1!important}.v-application .blue--text.text--darken-4{color:#0d47a1!important;caret-color:#0d47a1!important}.v-application .blue.accent-1{background-color:#82b1ff!important;border-color:#82b1ff!important}.v-application .blue--text.text--accent-1{color:#82b1ff!important;caret-color:#82b1ff!important}.v-application .blue.accent-2{background-color:#448aff!important;border-color:#448aff!important}.v-application .blue--text.text--accent-2{color:#448aff!important;caret-color:#448aff!important}.v-application .blue.accent-3{background-color:#2979ff!important;border-color:#2979ff!important}.v-application .blue--text.text--accent-3{color:#2979ff!important;caret-color:#2979ff!important}.v-application .blue.accent-4{background-color:#2962ff!important;border-color:#2962ff!important}.v-application .blue--text.text--accent-4{color:#2962ff!important;caret-color:#2962ff!important}.v-application .light-blue{background-color:#03a9f4!important;border-color:#03a9f4!important}.v-application .light-blue--text{color:#03a9f4!important;caret-color:#03a9f4!important}.v-application .light-blue.lighten-5{background-color:#e1f5fe!important;border-color:#e1f5fe!important}.v-application .light-blue--text.text--lighten-5{color:#e1f5fe!important;caret-color:#e1f5fe!important}.v-application .light-blue.lighten-4{background-color:#b3e5fc!important;border-color:#b3e5fc!important}.v-application .light-blue--text.text--lighten-4{color:#b3e5fc!important;caret-color:#b3e5fc!important}.v-application .light-blue.lighten-3{background-color:#81d4fa!important;border-color:#81d4fa!important}.v-application .light-blue--text.text--lighten-3{color:#81d4fa!important;caret-color:#81d4fa!important}.v-application .light-blue.lighten-2{background-color:#4fc3f7!important;border-color:#4fc3f7!important}.v-application .light-blue--text.text--lighten-2{color:#4fc3f7!important;caret-color:#4fc3f7!important}.v-application .light-blue.lighten-1{background-color:#29b6f6!important;border-color:#29b6f6!important}.v-application .light-blue--text.text--lighten-1{color:#29b6f6!important;caret-color:#29b6f6!important}.v-application .light-blue.darken-1{background-color:#039be5!important;border-color:#039be5!important}.v-application .light-blue--text.text--darken-1{color:#039be5!important;caret-color:#039be5!important}.v-application .light-blue.darken-2{background-color:#0288d1!important;border-color:#0288d1!important}.v-application .light-blue--text.text--darken-2{color:#0288d1!important;caret-color:#0288d1!important}.v-application .light-blue.darken-3{background-color:#0277bd!important;border-color:#0277bd!important}.v-application .light-blue--text.text--darken-3{color:#0277bd!important;caret-color:#0277bd!important}.v-application .light-blue.darken-4{background-color:#01579b!important;border-color:#01579b!important}.v-application .light-blue--text.text--darken-4{color:#01579b!important;caret-color:#01579b!important}.v-application .light-blue.accent-1{background-color:#80d8ff!important;border-color:#80d8ff!important}.v-application .light-blue--text.text--accent-1{color:#80d8ff!important;caret-color:#80d8ff!important}.v-application .light-blue.accent-2{background-color:#40c4ff!important;border-color:#40c4ff!important}.v-application .light-blue--text.text--accent-2{color:#40c4ff!important;caret-color:#40c4ff!important}.v-application .light-blue.accent-3{background-color:#00b0ff!important;border-color:#00b0ff!important}.v-application .light-blue--text.text--accent-3{color:#00b0ff!important;caret-color:#00b0ff!important}.v-application .light-blue.accent-4{background-color:#0091ea!important;border-color:#0091ea!important}.v-application .light-blue--text.text--accent-4{color:#0091ea!important;caret-color:#0091ea!important}.v-application .cyan{background-color:#00bcd4!important;border-color:#00bcd4!important}.v-application .cyan--text{color:#00bcd4!important;caret-color:#00bcd4!important}.v-application .cyan.lighten-5{background-color:#e0f7fa!important;border-color:#e0f7fa!important}.v-application .cyan--text.text--lighten-5{color:#e0f7fa!important;caret-color:#e0f7fa!important}.v-application .cyan.lighten-4{background-color:#b2ebf2!important;border-color:#b2ebf2!important}.v-application .cyan--text.text--lighten-4{color:#b2ebf2!important;caret-color:#b2ebf2!important}.v-application .cyan.lighten-3{background-color:#80deea!important;border-color:#80deea!important}.v-application .cyan--text.text--lighten-3{color:#80deea!important;caret-color:#80deea!important}.v-application .cyan.lighten-2{background-color:#4dd0e1!important;border-color:#4dd0e1!important}.v-application .cyan--text.text--lighten-2{color:#4dd0e1!important;caret-color:#4dd0e1!important}.v-application .cyan.lighten-1{background-color:#26c6da!important;border-color:#26c6da!important}.v-application .cyan--text.text--lighten-1{color:#26c6da!important;caret-color:#26c6da!important}.v-application .cyan.darken-1{background-color:#00acc1!important;border-color:#00acc1!important}.v-application .cyan--text.text--darken-1{color:#00acc1!important;caret-color:#00acc1!important}.v-application .cyan.darken-2{background-color:#0097a7!important;border-color:#0097a7!important}.v-application .cyan--text.text--darken-2{color:#0097a7!important;caret-color:#0097a7!important}.v-application .cyan.darken-3{background-color:#00838f!important;border-color:#00838f!important}.v-application .cyan--text.text--darken-3{color:#00838f!important;caret-color:#00838f!important}.v-application .cyan.darken-4{background-color:#006064!important;border-color:#006064!important}.v-application .cyan--text.text--darken-4{color:#006064!important;caret-color:#006064!important}.v-application .cyan.accent-1{background-color:#84ffff!important;border-color:#84ffff!important}.v-application .cyan--text.text--accent-1{color:#84ffff!important;caret-color:#84ffff!important}.v-application .cyan.accent-2{background-color:#18ffff!important;border-color:#18ffff!important}.v-application .cyan--text.text--accent-2{color:#18ffff!important;caret-color:#18ffff!important}.v-application .cyan.accent-3{background-color:#00e5ff!important;border-color:#00e5ff!important}.v-application .cyan--text.text--accent-3{color:#00e5ff!important;caret-color:#00e5ff!important}.v-application .cyan.accent-4{background-color:#00b8d4!important;border-color:#00b8d4!important}.v-application .cyan--text.text--accent-4{color:#00b8d4!important;caret-color:#00b8d4!important}.v-application .teal{background-color:#009688!important;border-color:#009688!important}.v-application .teal--text{color:#009688!important;caret-color:#009688!important}.v-application .teal.lighten-5{background-color:#e0f2f1!important;border-color:#e0f2f1!important}.v-application .teal--text.text--lighten-5{color:#e0f2f1!important;caret-color:#e0f2f1!important}.v-application .teal.lighten-4{background-color:#b2dfdb!important;border-color:#b2dfdb!important}.v-application .teal--text.text--lighten-4{color:#b2dfdb!important;caret-color:#b2dfdb!important}.v-application .teal.lighten-3{background-color:#80cbc4!important;border-color:#80cbc4!important}.v-application .teal--text.text--lighten-3{color:#80cbc4!important;caret-color:#80cbc4!important}.v-application .teal.lighten-2{background-color:#4db6ac!important;border-color:#4db6ac!important}.v-application .teal--text.text--lighten-2{color:#4db6ac!important;caret-color:#4db6ac!important}.v-application .teal.lighten-1{background-color:#26a69a!important;border-color:#26a69a!important}.v-application .teal--text.text--lighten-1{color:#26a69a!important;caret-color:#26a69a!important}.v-application .teal.darken-1{background-color:#00897b!important;border-color:#00897b!important}.v-application .teal--text.text--darken-1{color:#00897b!important;caret-color:#00897b!important}.v-application .teal.darken-2{background-color:#00796b!important;border-color:#00796b!important}.v-application .teal--text.text--darken-2{color:#00796b!important;caret-color:#00796b!important}.v-application .teal.darken-3{background-color:#00695c!important;border-color:#00695c!important}.v-application .teal--text.text--darken-3{color:#00695c!important;caret-color:#00695c!important}.v-application .teal.darken-4{background-color:#004d40!important;border-color:#004d40!important}.v-application .teal--text.text--darken-4{color:#004d40!important;caret-color:#004d40!important}.v-application .teal.accent-1{background-color:#a7ffeb!important;border-color:#a7ffeb!important}.v-application .teal--text.text--accent-1{color:#a7ffeb!important;caret-color:#a7ffeb!important}.v-application .teal.accent-2{background-color:#64ffda!important;border-color:#64ffda!important}.v-application .teal--text.text--accent-2{color:#64ffda!important;caret-color:#64ffda!important}.v-application .teal.accent-3{background-color:#1de9b6!important;border-color:#1de9b6!important}.v-application .teal--text.text--accent-3{color:#1de9b6!important;caret-color:#1de9b6!important}.v-application .teal.accent-4{background-color:#00bfa5!important;border-color:#00bfa5!important}.v-application .teal--text.text--accent-4{color:#00bfa5!important;caret-color:#00bfa5!important}.v-application .green{background-color:#4caf50!important;border-color:#4caf50!important}.v-application .green--text{color:#4caf50!important;caret-color:#4caf50!important}.v-application .green.lighten-5{background-color:#e8f5e9!important;border-color:#e8f5e9!important}.v-application .green--text.text--lighten-5{color:#e8f5e9!important;caret-color:#e8f5e9!important}.v-application .green.lighten-4{background-color:#c8e6c9!important;border-color:#c8e6c9!important}.v-application .green--text.text--lighten-4{color:#c8e6c9!important;caret-color:#c8e6c9!important}.v-application .green.lighten-3{background-color:#a5d6a7!important;border-color:#a5d6a7!important}.v-application .green--text.text--lighten-3{color:#a5d6a7!important;caret-color:#a5d6a7!important}.v-application .green.lighten-2{background-color:#81c784!important;border-color:#81c784!important}.v-application .green--text.text--lighten-2{color:#81c784!important;caret-color:#81c784!important}.v-application .green.lighten-1{background-color:#66bb6a!important;border-color:#66bb6a!important}.v-application .green--text.text--lighten-1{color:#66bb6a!important;caret-color:#66bb6a!important}.v-application .green.darken-1{background-color:#43a047!important;border-color:#43a047!important}.v-application .green--text.text--darken-1{color:#43a047!important;caret-color:#43a047!important}.v-application .green.darken-2{background-color:#388e3c!important;border-color:#388e3c!important}.v-application .green--text.text--darken-2{color:#388e3c!important;caret-color:#388e3c!important}.v-application .green.darken-3{background-color:#2e7d32!important;border-color:#2e7d32!important}.v-application .green--text.text--darken-3{color:#2e7d32!important;caret-color:#2e7d32!important}.v-application .green.darken-4{background-color:#1b5e20!important;border-color:#1b5e20!important}.v-application .green--text.text--darken-4{color:#1b5e20!important;caret-color:#1b5e20!important}.v-application .green.accent-1{background-color:#b9f6ca!important;border-color:#b9f6ca!important}.v-application .green--text.text--accent-1{color:#b9f6ca!important;caret-color:#b9f6ca!important}.v-application .green.accent-2{background-color:#69f0ae!important;border-color:#69f0ae!important}.v-application .green--text.text--accent-2{color:#69f0ae!important;caret-color:#69f0ae!important}.v-application .green.accent-3{background-color:#00e676!important;border-color:#00e676!important}.v-application .green--text.text--accent-3{color:#00e676!important;caret-color:#00e676!important}.v-application .green.accent-4{background-color:#00c853!important;border-color:#00c853!important}.v-application .green--text.text--accent-4{color:#00c853!important;caret-color:#00c853!important}.v-application .light-green{background-color:#8bc34a!important;border-color:#8bc34a!important}.v-application .light-green--text{color:#8bc34a!important;caret-color:#8bc34a!important}.v-application .light-green.lighten-5{background-color:#f1f8e9!important;border-color:#f1f8e9!important}.v-application .light-green--text.text--lighten-5{color:#f1f8e9!important;caret-color:#f1f8e9!important}.v-application .light-green.lighten-4{background-color:#dcedc8!important;border-color:#dcedc8!important}.v-application .light-green--text.text--lighten-4{color:#dcedc8!important;caret-color:#dcedc8!important}.v-application .light-green.lighten-3{background-color:#c5e1a5!important;border-color:#c5e1a5!important}.v-application .light-green--text.text--lighten-3{color:#c5e1a5!important;caret-color:#c5e1a5!important}.v-application .light-green.lighten-2{background-color:#aed581!important;border-color:#aed581!important}.v-application .light-green--text.text--lighten-2{color:#aed581!important;caret-color:#aed581!important}.v-application .light-green.lighten-1{background-color:#9ccc65!important;border-color:#9ccc65!important}.v-application .light-green--text.text--lighten-1{color:#9ccc65!important;caret-color:#9ccc65!important}.v-application .light-green.darken-1{background-color:#7cb342!important;border-color:#7cb342!important}.v-application .light-green--text.text--darken-1{color:#7cb342!important;caret-color:#7cb342!important}.v-application .light-green.darken-2{background-color:#689f38!important;border-color:#689f38!important}.v-application .light-green--text.text--darken-2{color:#689f38!important;caret-color:#689f38!important}.v-application .light-green.darken-3{background-color:#558b2f!important;border-color:#558b2f!important}.v-application .light-green--text.text--darken-3{color:#558b2f!important;caret-color:#558b2f!important}.v-application .light-green.darken-4{background-color:#33691e!important;border-color:#33691e!important}.v-application .light-green--text.text--darken-4{color:#33691e!important;caret-color:#33691e!important}.v-application .light-green.accent-1{background-color:#ccff90!important;border-color:#ccff90!important}.v-application .light-green--text.text--accent-1{color:#ccff90!important;caret-color:#ccff90!important}.v-application .light-green.accent-2{background-color:#b2ff59!important;border-color:#b2ff59!important}.v-application .light-green--text.text--accent-2{color:#b2ff59!important;caret-color:#b2ff59!important}.v-application .light-green.accent-3{background-color:#76ff03!important;border-color:#76ff03!important}.v-application .light-green--text.text--accent-3{color:#76ff03!important;caret-color:#76ff03!important}.v-application .light-green.accent-4{background-color:#64dd17!important;border-color:#64dd17!important}.v-application .light-green--text.text--accent-4{color:#64dd17!important;caret-color:#64dd17!important}.v-application .lime{background-color:#cddc39!important;border-color:#cddc39!important}.v-application .lime--text{color:#cddc39!important;caret-color:#cddc39!important}.v-application .lime.lighten-5{background-color:#f9fbe7!important;border-color:#f9fbe7!important}.v-application .lime--text.text--lighten-5{color:#f9fbe7!important;caret-color:#f9fbe7!important}.v-application .lime.lighten-4{background-color:#f0f4c3!important;border-color:#f0f4c3!important}.v-application .lime--text.text--lighten-4{color:#f0f4c3!important;caret-color:#f0f4c3!important}.v-application .lime.lighten-3{background-color:#e6ee9c!important;border-color:#e6ee9c!important}.v-application .lime--text.text--lighten-3{color:#e6ee9c!important;caret-color:#e6ee9c!important}.v-application .lime.lighten-2{background-color:#dce775!important;border-color:#dce775!important}.v-application .lime--text.text--lighten-2{color:#dce775!important;caret-color:#dce775!important}.v-application .lime.lighten-1{background-color:#d4e157!important;border-color:#d4e157!important}.v-application .lime--text.text--lighten-1{color:#d4e157!important;caret-color:#d4e157!important}.v-application .lime.darken-1{background-color:#c0ca33!important;border-color:#c0ca33!important}.v-application .lime--text.text--darken-1{color:#c0ca33!important;caret-color:#c0ca33!important}.v-application .lime.darken-2{background-color:#afb42b!important;border-color:#afb42b!important}.v-application .lime--text.text--darken-2{color:#afb42b!important;caret-color:#afb42b!important}.v-application .lime.darken-3{background-color:#9e9d24!important;border-color:#9e9d24!important}.v-application .lime--text.text--darken-3{color:#9e9d24!important;caret-color:#9e9d24!important}.v-application .lime.darken-4{background-color:#827717!important;border-color:#827717!important}.v-application .lime--text.text--darken-4{color:#827717!important;caret-color:#827717!important}.v-application .lime.accent-1{background-color:#f4ff81!important;border-color:#f4ff81!important}.v-application .lime--text.text--accent-1{color:#f4ff81!important;caret-color:#f4ff81!important}.v-application .lime.accent-2{background-color:#eeff41!important;border-color:#eeff41!important}.v-application .lime--text.text--accent-2{color:#eeff41!important;caret-color:#eeff41!important}.v-application .lime.accent-3{background-color:#c6ff00!important;border-color:#c6ff00!important}.v-application .lime--text.text--accent-3{color:#c6ff00!important;caret-color:#c6ff00!important}.v-application .lime.accent-4{background-color:#aeea00!important;border-color:#aeea00!important}.v-application .lime--text.text--accent-4{color:#aeea00!important;caret-color:#aeea00!important}.v-application .yellow{background-color:#ffeb3b!important;border-color:#ffeb3b!important}.v-application .yellow--text{color:#ffeb3b!important;caret-color:#ffeb3b!important}.v-application .yellow.lighten-5{background-color:#fffde7!important;border-color:#fffde7!important}.v-application .yellow--text.text--lighten-5{color:#fffde7!important;caret-color:#fffde7!important}.v-application .yellow.lighten-4{background-color:#fff9c4!important;border-color:#fff9c4!important}.v-application .yellow--text.text--lighten-4{color:#fff9c4!important;caret-color:#fff9c4!important}.v-application .yellow.lighten-3{background-color:#fff59d!important;border-color:#fff59d!important}.v-application .yellow--text.text--lighten-3{color:#fff59d!important;caret-color:#fff59d!important}.v-application .yellow.lighten-2{background-color:#fff176!important;border-color:#fff176!important}.v-application .yellow--text.text--lighten-2{color:#fff176!important;caret-color:#fff176!important}.v-application .yellow.lighten-1{background-color:#ffee58!important;border-color:#ffee58!important}.v-application .yellow--text.text--lighten-1{color:#ffee58!important;caret-color:#ffee58!important}.v-application .yellow.darken-1{background-color:#fdd835!important;border-color:#fdd835!important}.v-application .yellow--text.text--darken-1{color:#fdd835!important;caret-color:#fdd835!important}.v-application .yellow.darken-2{background-color:#fbc02d!important;border-color:#fbc02d!important}.v-application .yellow--text.text--darken-2{color:#fbc02d!important;caret-color:#fbc02d!important}.v-application .yellow.darken-3{background-color:#f9a825!important;border-color:#f9a825!important}.v-application .yellow--text.text--darken-3{color:#f9a825!important;caret-color:#f9a825!important}.v-application .yellow.darken-4{background-color:#f57f17!important;border-color:#f57f17!important}.v-application .yellow--text.text--darken-4{color:#f57f17!important;caret-color:#f57f17!important}.v-application .yellow.accent-1{background-color:#ffff8d!important;border-color:#ffff8d!important}.v-application .yellow--text.text--accent-1{color:#ffff8d!important;caret-color:#ffff8d!important}.v-application .yellow.accent-2{background-color:#ff0!important;border-color:#ff0!important}.v-application .yellow--text.text--accent-2{color:#ff0!important;caret-color:#ff0!important}.v-application .yellow.accent-3{background-color:#ffea00!important;border-color:#ffea00!important}.v-application .yellow--text.text--accent-3{color:#ffea00!important;caret-color:#ffea00!important}.v-application .yellow.accent-4{background-color:#ffd600!important;border-color:#ffd600!important}.v-application .yellow--text.text--accent-4{color:#ffd600!important;caret-color:#ffd600!important}.v-application .amber{background-color:#ffc107!important;border-color:#ffc107!important}.v-application .amber--text{color:#ffc107!important;caret-color:#ffc107!important}.v-application .amber.lighten-5{background-color:#fff8e1!important;border-color:#fff8e1!important}.v-application .amber--text.text--lighten-5{color:#fff8e1!important;caret-color:#fff8e1!important}.v-application .amber.lighten-4{background-color:#ffecb3!important;border-color:#ffecb3!important}.v-application .amber--text.text--lighten-4{color:#ffecb3!important;caret-color:#ffecb3!important}.v-application .amber.lighten-3{background-color:#ffe082!important;border-color:#ffe082!important}.v-application .amber--text.text--lighten-3{color:#ffe082!important;caret-color:#ffe082!important}.v-application .amber.lighten-2{background-color:#ffd54f!important;border-color:#ffd54f!important}.v-application .amber--text.text--lighten-2{color:#ffd54f!important;caret-color:#ffd54f!important}.v-application .amber.lighten-1{background-color:#ffca28!important;border-color:#ffca28!important}.v-application .amber--text.text--lighten-1{color:#ffca28!important;caret-color:#ffca28!important}.v-application .amber.darken-1{background-color:#ffb300!important;border-color:#ffb300!important}.v-application .amber--text.text--darken-1{color:#ffb300!important;caret-color:#ffb300!important}.v-application .amber.darken-2{background-color:#ffa000!important;border-color:#ffa000!important}.v-application .amber--text.text--darken-2{color:#ffa000!important;caret-color:#ffa000!important}.v-application .amber.darken-3{background-color:#ff8f00!important;border-color:#ff8f00!important}.v-application .amber--text.text--darken-3{color:#ff8f00!important;caret-color:#ff8f00!important}.v-application .amber.darken-4{background-color:#ff6f00!important;border-color:#ff6f00!important}.v-application .amber--text.text--darken-4{color:#ff6f00!important;caret-color:#ff6f00!important}.v-application .amber.accent-1{background-color:#ffe57f!important;border-color:#ffe57f!important}.v-application .amber--text.text--accent-1{color:#ffe57f!important;caret-color:#ffe57f!important}.v-application .amber.accent-2{background-color:#ffd740!important;border-color:#ffd740!important}.v-application .amber--text.text--accent-2{color:#ffd740!important;caret-color:#ffd740!important}.v-application .amber.accent-3{background-color:#ffc400!important;border-color:#ffc400!important}.v-application .amber--text.text--accent-3{color:#ffc400!important;caret-color:#ffc400!important}.v-application .amber.accent-4{background-color:#ffab00!important;border-color:#ffab00!important}.v-application .amber--text.text--accent-4{color:#ffab00!important;caret-color:#ffab00!important}.v-application .orange{background-color:#ff9800!important;border-color:#ff9800!important}.v-application .orange--text{color:#ff9800!important;caret-color:#ff9800!important}.v-application .orange.lighten-5{background-color:#fff3e0!important;border-color:#fff3e0!important}.v-application .orange--text.text--lighten-5{color:#fff3e0!important;caret-color:#fff3e0!important}.v-application .orange.lighten-4{background-color:#ffe0b2!important;border-color:#ffe0b2!important}.v-application .orange--text.text--lighten-4{color:#ffe0b2!important;caret-color:#ffe0b2!important}.v-application .orange.lighten-3{background-color:#ffcc80!important;border-color:#ffcc80!important}.v-application .orange--text.text--lighten-3{color:#ffcc80!important;caret-color:#ffcc80!important}.v-application .orange.lighten-2{background-color:#ffb74d!important;border-color:#ffb74d!important}.v-application .orange--text.text--lighten-2{color:#ffb74d!important;caret-color:#ffb74d!important}.v-application .orange.lighten-1{background-color:#ffa726!important;border-color:#ffa726!important}.v-application .orange--text.text--lighten-1{color:#ffa726!important;caret-color:#ffa726!important}.v-application .orange.darken-1{background-color:#fb8c00!important;border-color:#fb8c00!important}.v-application .orange--text.text--darken-1{color:#fb8c00!important;caret-color:#fb8c00!important}.v-application .orange.darken-2{background-color:#f57c00!important;border-color:#f57c00!important}.v-application .orange--text.text--darken-2{color:#f57c00!important;caret-color:#f57c00!important}.v-application .orange.darken-3{background-color:#ef6c00!important;border-color:#ef6c00!important}.v-application .orange--text.text--darken-3{color:#ef6c00!important;caret-color:#ef6c00!important}.v-application .orange.darken-4{background-color:#e65100!important;border-color:#e65100!important}.v-application .orange--text.text--darken-4{color:#e65100!important;caret-color:#e65100!important}.v-application .orange.accent-1{background-color:#ffd180!important;border-color:#ffd180!important}.v-application .orange--text.text--accent-1{color:#ffd180!important;caret-color:#ffd180!important}.v-application .orange.accent-2{background-color:#ffab40!important;border-color:#ffab40!important}.v-application .orange--text.text--accent-2{color:#ffab40!important;caret-color:#ffab40!important}.v-application .orange.accent-3{background-color:#ff9100!important;border-color:#ff9100!important}.v-application .orange--text.text--accent-3{color:#ff9100!important;caret-color:#ff9100!important}.v-application .orange.accent-4{background-color:#ff6d00!important;border-color:#ff6d00!important}.v-application .orange--text.text--accent-4{color:#ff6d00!important;caret-color:#ff6d00!important}.v-application .deep-orange{background-color:#ff5722!important;border-color:#ff5722!important}.v-application .deep-orange--text{color:#ff5722!important;caret-color:#ff5722!important}.v-application .deep-orange.lighten-5{background-color:#fbe9e7!important;border-color:#fbe9e7!important}.v-application .deep-orange--text.text--lighten-5{color:#fbe9e7!important;caret-color:#fbe9e7!important}.v-application .deep-orange.lighten-4{background-color:#ffccbc!important;border-color:#ffccbc!important}.v-application .deep-orange--text.text--lighten-4{color:#ffccbc!important;caret-color:#ffccbc!important}.v-application .deep-orange.lighten-3{background-color:#ffab91!important;border-color:#ffab91!important}.v-application .deep-orange--text.text--lighten-3{color:#ffab91!important;caret-color:#ffab91!important}.v-application .deep-orange.lighten-2{background-color:#ff8a65!important;border-color:#ff8a65!important}.v-application .deep-orange--text.text--lighten-2{color:#ff8a65!important;caret-color:#ff8a65!important}.v-application .deep-orange.lighten-1{background-color:#ff7043!important;border-color:#ff7043!important}.v-application .deep-orange--text.text--lighten-1{color:#ff7043!important;caret-color:#ff7043!important}.v-application .deep-orange.darken-1{background-color:#f4511e!important;border-color:#f4511e!important}.v-application .deep-orange--text.text--darken-1{color:#f4511e!important;caret-color:#f4511e!important}.v-application .deep-orange.darken-2{background-color:#e64a19!important;border-color:#e64a19!important}.v-application .deep-orange--text.text--darken-2{color:#e64a19!important;caret-color:#e64a19!important}.v-application .deep-orange.darken-3{background-color:#d84315!important;border-color:#d84315!important}.v-application .deep-orange--text.text--darken-3{color:#d84315!important;caret-color:#d84315!important}.v-application .deep-orange.darken-4{background-color:#bf360c!important;border-color:#bf360c!important}.v-application .deep-orange--text.text--darken-4{color:#bf360c!important;caret-color:#bf360c!important}.v-application .deep-orange.accent-1{background-color:#ff9e80!important;border-color:#ff9e80!important}.v-application .deep-orange--text.text--accent-1{color:#ff9e80!important;caret-color:#ff9e80!important}.v-application .deep-orange.accent-2{background-color:#ff6e40!important;border-color:#ff6e40!important}.v-application .deep-orange--text.text--accent-2{color:#ff6e40!important;caret-color:#ff6e40!important}.v-application .deep-orange.accent-3{background-color:#ff3d00!important;border-color:#ff3d00!important}.v-application .deep-orange--text.text--accent-3{color:#ff3d00!important;caret-color:#ff3d00!important}.v-application .deep-orange.accent-4{background-color:#dd2c00!important;border-color:#dd2c00!important}.v-application .deep-orange--text.text--accent-4{color:#dd2c00!important;caret-color:#dd2c00!important}.v-application .brown{background-color:#795548!important;border-color:#795548!important}.v-application .brown--text{color:#795548!important;caret-color:#795548!important}.v-application .brown.lighten-5{background-color:#efebe9!important;border-color:#efebe9!important}.v-application .brown--text.text--lighten-5{color:#efebe9!important;caret-color:#efebe9!important}.v-application .brown.lighten-4{background-color:#d7ccc8!important;border-color:#d7ccc8!important}.v-application .brown--text.text--lighten-4{color:#d7ccc8!important;caret-color:#d7ccc8!important}.v-application .brown.lighten-3{background-color:#bcaaa4!important;border-color:#bcaaa4!important}.v-application .brown--text.text--lighten-3{color:#bcaaa4!important;caret-color:#bcaaa4!important}.v-application .brown.lighten-2{background-color:#a1887f!important;border-color:#a1887f!important}.v-application .brown--text.text--lighten-2{color:#a1887f!important;caret-color:#a1887f!important}.v-application .brown.lighten-1{background-color:#8d6e63!important;border-color:#8d6e63!important}.v-application .brown--text.text--lighten-1{color:#8d6e63!important;caret-color:#8d6e63!important}.v-application .brown.darken-1{background-color:#6d4c41!important;border-color:#6d4c41!important}.v-application .brown--text.text--darken-1{color:#6d4c41!important;caret-color:#6d4c41!important}.v-application .brown.darken-2{background-color:#5d4037!important;border-color:#5d4037!important}.v-application .brown--text.text--darken-2{color:#5d4037!important;caret-color:#5d4037!important}.v-application .brown.darken-3{background-color:#4e342e!important;border-color:#4e342e!important}.v-application .brown--text.text--darken-3{color:#4e342e!important;caret-color:#4e342e!important}.v-application .brown.darken-4{background-color:#3e2723!important;border-color:#3e2723!important}.v-application .brown--text.text--darken-4{color:#3e2723!important;caret-color:#3e2723!important}.v-application .blue-grey{background-color:#607d8b!important;border-color:#607d8b!important}.v-application .blue-grey--text{color:#607d8b!important;caret-color:#607d8b!important}.v-application .blue-grey.lighten-5{background-color:#eceff1!important;border-color:#eceff1!important}.v-application .blue-grey--text.text--lighten-5{color:#eceff1!important;caret-color:#eceff1!important}.v-application .blue-grey.lighten-4{background-color:#cfd8dc!important;border-color:#cfd8dc!important}.v-application .blue-grey--text.text--lighten-4{color:#cfd8dc!important;caret-color:#cfd8dc!important}.v-application .blue-grey.lighten-3{background-color:#b0bec5!important;border-color:#b0bec5!important}.v-application .blue-grey--text.text--lighten-3{color:#b0bec5!important;caret-color:#b0bec5!important}.v-application .blue-grey.lighten-2{background-color:#90a4ae!important;border-color:#90a4ae!important}.v-application .blue-grey--text.text--lighten-2{color:#90a4ae!important;caret-color:#90a4ae!important}.v-application .blue-grey.lighten-1{background-color:#78909c!important;border-color:#78909c!important}.v-application .blue-grey--text.text--lighten-1{color:#78909c!important;caret-color:#78909c!important}.v-application .blue-grey.darken-1{background-color:#546e7a!important;border-color:#546e7a!important}.v-application .blue-grey--text.text--darken-1{color:#546e7a!important;caret-color:#546e7a!important}.v-application .blue-grey.darken-2{background-color:#455a64!important;border-color:#455a64!important}.v-application .blue-grey--text.text--darken-2{color:#455a64!important;caret-color:#455a64!important}.v-application .blue-grey.darken-3{background-color:#37474f!important;border-color:#37474f!important}.v-application .blue-grey--text.text--darken-3{color:#37474f!important;caret-color:#37474f!important}.v-application .blue-grey.darken-4{background-color:#263238!important;border-color:#263238!important}.v-application .blue-grey--text.text--darken-4{color:#263238!important;caret-color:#263238!important}.v-application .grey{background-color:#9e9e9e!important;border-color:#9e9e9e!important}.v-application .grey--text{color:#9e9e9e!important;caret-color:#9e9e9e!important}.v-application .grey.lighten-5{background-color:#fafafa!important;border-color:#fafafa!important}.v-application .grey--text.text--lighten-5{color:#fafafa!important;caret-color:#fafafa!important}.v-application .grey.lighten-4{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.v-application .grey--text.text--lighten-4{color:#f5f5f5!important;caret-color:#f5f5f5!important}.v-application .grey.lighten-3{background-color:#eee!important;border-color:#eee!important}.v-application .grey--text.text--lighten-3{color:#eee!important;caret-color:#eee!important}.v-application .grey.lighten-2{background-color:#e0e0e0!important;border-color:#e0e0e0!important}.v-application .grey--text.text--lighten-2{color:#e0e0e0!important;caret-color:#e0e0e0!important}.v-application .grey.lighten-1{background-color:#bdbdbd!important;border-color:#bdbdbd!important}.v-application .grey--text.text--lighten-1{color:#bdbdbd!important;caret-color:#bdbdbd!important}.v-application .grey.darken-1{background-color:#757575!important;border-color:#757575!important}.v-application .grey--text.text--darken-1{color:#757575!important;caret-color:#757575!important}.v-application .grey.darken-2{background-color:#616161!important;border-color:#616161!important}.v-application .grey--text.text--darken-2{color:#616161!important;caret-color:#616161!important}.v-application .grey.darken-3{background-color:#424242!important;border-color:#424242!important}.v-application .grey--text.text--darken-3{color:#424242!important;caret-color:#424242!important}.v-application .grey.darken-4{background-color:#212121!important;border-color:#212121!important}.v-application .grey--text.text--darken-4{color:#212121!important;caret-color:#212121!important}.v-application .shades.black{background-color:#000!important;border-color:#000!important}.v-application .shades--text.text--black{color:#000!important;caret-color:#000!important}.v-application .shades.white{background-color:#fff!important;border-color:#fff!important}.v-application .shades--text.text--white{color:#fff!important;caret-color:#fff!important}.v-application .shades.transparent{background-color:transparent!important;border-color:transparent!important}.v-application .shades--text.text--transparent{color:transparent!important;caret-color:transparent!important}/*!
+ * ress.css • v2.0.4
+ * MIT License
+ * github.com/filipelinhares/ress
+ */html{box-sizing:border-box;overflow-y:scroll;-webkit-text-size-adjust:100%;word-break:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{padding:0;margin:0}hr{overflow:visible;height:0}details,main{display:block}summary{display:list-item}small{font-size:80%}[hidden]{display:none}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a{background-color:transparent}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}pre{font-size:1em}b,strong{font-weight:bolder}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[disabled]{cursor:default}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}button,select{text-transform:none}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer;color:inherit}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,input,select,textarea{background-color:transparent;border-style:none}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;white-space:normal;max-width:100%}::-webkit-file-upload-button{-webkit-appearance:button;color:inherit;font:inherit}img{border-style:none}progress{vertical-align:baseline}svg:not([fill]){fill:currentColor}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled=true]{cursor:default}.v-application .elevation-24{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)!important}.v-application .elevation-23{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)!important}.v-application .elevation-22{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)!important}.v-application .elevation-21{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)!important}.v-application .elevation-20{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)!important}.v-application .elevation-19{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)!important}.v-application .elevation-18{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)!important}.v-application .elevation-17{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)!important}.v-application .elevation-16{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)!important}.v-application .elevation-15{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)!important}.v-application .elevation-14{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)!important}.v-application .elevation-13{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)!important}.v-application .elevation-12{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)!important}.v-application .elevation-11{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)!important}.v-application .elevation-10{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)!important}.v-application .elevation-9{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)!important}.v-application .elevation-8{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)!important}.v-application .elevation-7{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)!important}.v-application .elevation-6{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)!important}.v-application .elevation-5{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)!important}.v-application .elevation-4{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)!important}.v-application .elevation-3{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)!important}.v-application .elevation-2{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)!important}.v-application .elevation-1{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)!important}.v-application .elevation-0{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)!important}.v-application .carousel-transition-enter{transform:translate(100%)}.v-application .carousel-transition-leave,.v-application .carousel-transition-leave-to{position:absolute;top:0;transform:translate(-100%)}.carousel-reverse-transition-enter{transform:translate(-100%)}.carousel-reverse-transition-leave,.carousel-reverse-transition-leave-to{position:absolute;top:0;transform:translate(100%)}.dialog-transition-enter,.dialog-transition-leave-to{transform:scale(.5);opacity:0}.dialog-transition-enter-to,.dialog-transition-leave{opacity:1}.dialog-bottom-transition-enter,.dialog-bottom-transition-leave-to{transform:translateY(100%)}.picker-reverse-transition-enter-active,.picker-reverse-transition-leave-active,.picker-transition-enter-active,.picker-transition-leave-active{transition:.3s cubic-bezier(0,0,.2,1)}.picker-reverse-transition-enter,.picker-reverse-transition-leave-to,.picker-transition-enter,.picker-transition-leave-to{opacity:0}.picker-reverse-transition-leave,.picker-reverse-transition-leave-active,.picker-reverse-transition-leave-to,.picker-transition-leave,.picker-transition-leave-active,.picker-transition-leave-to{position:absolute!important}.picker-transition-enter{transform:translateY(100%)}.picker-reverse-transition-enter,.picker-transition-leave-to{transform:translateY(-100%)}.picker-reverse-transition-leave-to{transform:translateY(100%)}.picker-title-transition-enter-to,.picker-title-transition-leave{transform:translate(0)}.picker-title-transition-enter{transform:translate(-100%)}.picker-title-transition-leave-to{opacity:0;transform:translate(100%)}.picker-title-transition-leave,.picker-title-transition-leave-active,.picker-title-transition-leave-to{position:absolute!important}.tab-transition-enter{transform:translate(100%)}.tab-transition-leave,.tab-transition-leave-active{position:absolute;top:0}.tab-transition-leave-to{position:absolute}.tab-reverse-transition-enter,.tab-transition-leave-to{transform:translate(-100%)}.tab-reverse-transition-leave,.tab-reverse-transition-leave-to{top:0;position:absolute;transform:translate(100%)}.expand-transition-enter-active,.expand-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.expand-transition-move{transition:transform .6s}.expand-x-transition-enter-active,.expand-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.expand-x-transition-move{transition:transform .6s}.scale-transition-enter-active,.scale-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scale-transition-move{transition:transform .6s}.scale-transition-enter,.scale-transition-leave,.scale-transition-leave-to{opacity:0;transform:scale(0)}.scale-rotate-transition-enter-active,.scale-rotate-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scale-rotate-transition-move{transition:transform .6s}.scale-rotate-transition-enter,.scale-rotate-transition-leave,.scale-rotate-transition-leave-to{opacity:0;transform:scale(0) rotate(-45deg)}.scale-rotate-reverse-transition-enter-active,.scale-rotate-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scale-rotate-reverse-transition-move{transition:transform .6s}.scale-rotate-reverse-transition-enter,.scale-rotate-reverse-transition-leave,.scale-rotate-reverse-transition-leave-to{opacity:0;transform:scale(0) rotate(45deg)}.message-transition-enter-active,.message-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.message-transition-move{transition:transform .6s}.message-transition-enter,.message-transition-leave-to{opacity:0;transform:translateY(-15px)}.message-transition-leave,.message-transition-leave-active{position:absolute}.slide-y-transition-enter-active,.slide-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.slide-y-transition-move{transition:transform .6s}.slide-y-transition-enter,.slide-y-transition-leave-to{opacity:0;transform:translateY(-15px)}.slide-y-reverse-transition-enter-active,.slide-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.slide-y-reverse-transition-move{transition:transform .6s}.slide-y-reverse-transition-enter,.slide-y-reverse-transition-leave-to{opacity:0;transform:translateY(15px)}.scroll-y-transition-enter-active,.scroll-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scroll-y-transition-move{transition:transform .6s}.scroll-y-transition-enter,.scroll-y-transition-leave-to{opacity:0}.scroll-y-transition-enter{transform:translateY(-15px)}.scroll-y-transition-leave-to{transform:translateY(15px)}.scroll-y-reverse-transition-enter-active,.scroll-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scroll-y-reverse-transition-move{transition:transform .6s}.scroll-y-reverse-transition-enter,.scroll-y-reverse-transition-leave-to{opacity:0}.scroll-y-reverse-transition-enter{transform:translateY(15px)}.scroll-y-reverse-transition-leave-to{transform:translateY(-15px)}.scroll-x-transition-enter-active,.scroll-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scroll-x-transition-move{transition:transform .6s}.scroll-x-transition-enter,.scroll-x-transition-leave-to{opacity:0}.scroll-x-transition-enter{transform:translateX(-15px)}.scroll-x-transition-leave-to{transform:translateX(15px)}.scroll-x-reverse-transition-enter-active,.scroll-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.scroll-x-reverse-transition-move{transition:transform .6s}.scroll-x-reverse-transition-enter,.scroll-x-reverse-transition-leave-to{opacity:0}.scroll-x-reverse-transition-enter{transform:translateX(15px)}.scroll-x-reverse-transition-leave-to{transform:translateX(-15px)}.slide-x-transition-enter-active,.slide-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.slide-x-transition-move{transition:transform .6s}.slide-x-transition-enter,.slide-x-transition-leave-to{opacity:0;transform:translateX(-15px)}.slide-x-reverse-transition-enter-active,.slide-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.slide-x-reverse-transition-move{transition:transform .6s}.slide-x-reverse-transition-enter,.slide-x-reverse-transition-leave-to{opacity:0;transform:translateX(15px)}.fade-transition-enter-active,.fade-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.fade-transition-move{transition:transform .6s}.fade-transition-enter,.fade-transition-leave-to{opacity:0!important}.fab-transition-enter-active,.fab-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.fab-transition-move{transition:transform .6s}.fab-transition-enter,.fab-transition-leave-to{transform:scale(0) rotate(-45deg)}.v-application .blockquote{padding:16px 0 16px 24px;font-size:18px;font-weight:300}.v-application code,.v-application kbd{border-radius:3px;font-size:85%;font-weight:900}.v-application code{background-color:#fbe5e1;color:#c0341d;padding:0 .4rem}.v-application kbd{background:#212529;color:#fff;padding:.2rem .4rem}html{font-size:16px;overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0)}html.overflow-y-hidden{overflow-y:hidden!important}.v-application{font-family:Roboto,sans-serif;line-height:1.5}.v-application ::-ms-clear,.v-application ::-ms-reveal{display:none}.v-application .theme--light.heading{color:rgba(0,0,0,.87)}.v-application .theme--dark.heading{color:#fff}.v-application ol,.v-application ul{padding-left:24px}.v-application .display-4{font-size:6rem!important;line-height:6rem;letter-spacing:-.015625em!important}.v-application .display-3,.v-application .display-4{font-weight:300;font-family:Roboto,sans-serif!important}.v-application .display-3{font-size:3.75rem!important;line-height:3.75rem;letter-spacing:-.0083333333em!important}.v-application .display-2{font-size:3rem!important;line-height:3.125rem;letter-spacing:normal!important}.v-application .display-1,.v-application .display-2{font-weight:400;font-family:Roboto,sans-serif!important}.v-application .display-1{font-size:2.125rem!important;line-height:2.5rem;letter-spacing:.0073529412em!important}.v-application .headline{font-size:1.5rem!important;font-weight:400;letter-spacing:normal!important}.v-application .headline,.v-application .title{line-height:2rem;font-family:Roboto,sans-serif!important}.v-application .title{font-size:1.25rem!important;font-weight:500;letter-spacing:.0125em!important}.v-application .subtitle-2{font-size:.875rem!important;font-weight:500;letter-spacing:.0071428571em!important;line-height:1.375rem;font-family:Roboto,sans-serif!important}.v-application .subtitle-1{font-size:1rem!important;letter-spacing:.009375em!important;line-height:1.75rem}.v-application .body-2,.v-application .subtitle-1{font-weight:400;font-family:Roboto,sans-serif!important}.v-application .body-2{font-size:.875rem!important;letter-spacing:.0178571429em!important;line-height:1.25rem}.v-application .body-1{font-size:1rem!important;letter-spacing:.03125em!important;line-height:1.5rem}.v-application .body-1,.v-application .caption{font-weight:400;font-family:Roboto,sans-serif!important}.v-application .caption{font-size:.75rem!important;letter-spacing:.0333333333em!important;line-height:1.25rem}.v-application .overline{font-size:.75rem!important;font-weight:500;letter-spacing:.1666666667em!important;line-height:2rem;text-transform:uppercase;font-family:Roboto,sans-serif!important}.v-application p{margin-bottom:16px}@media only print{.v-application .hidden-print-only{display:none!important}}@media only screen{.v-application .hidden-screen-only{display:none!important}}@media only screen and (max-width:599px){.v-application .hidden-xs-only{display:none!important}}@media only screen and (min-width:600px)and (max-width:959px){.v-application .hidden-sm-only{display:none!important}}@media only screen and (max-width:959px){.v-application .hidden-sm-and-down{display:none!important}}@media only screen and (min-width:600px){.v-application .hidden-sm-and-up{display:none!important}}@media only screen and (min-width:960px)and (max-width:1263px){.v-application .hidden-md-only{display:none!important}}@media only screen and (max-width:1263px){.v-application .hidden-md-and-down{display:none!important}}@media only screen and (min-width:960px){.v-application .hidden-md-and-up{display:none!important}}@media only screen and (min-width:1264px)and (max-width:1903px){.v-application .hidden-lg-only{display:none!important}}@media only screen and (max-width:1903px){.v-application .hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1264px){.v-application .hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1904px){.v-application .hidden-xl-only{display:none!important}}.d-sr-only,.d-sr-only-focusable:not(:focus){border:0!important;clip:rect(0,0,0,0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.v-application .font-weight-thin{font-weight:100!important}.v-application .font-weight-light{font-weight:300!important}.v-application .font-weight-regular{font-weight:400!important}.v-application .font-weight-medium{font-weight:500!important}.v-application .font-weight-bold{font-weight:700!important}.v-application .font-weight-black{font-weight:900!important}.v-application .font-italic{font-style:italic!important}.v-application .transition-fast-out-slow-in{transition:.3s cubic-bezier(.4,0,.2,1)!important}.v-application .transition-linear-out-slow-in{transition:.3s cubic-bezier(0,0,.2,1)!important}.v-application .transition-fast-out-linear-in{transition:.3s cubic-bezier(.4,0,1,1)!important}.v-application .transition-ease-in-out{transition:.3s cubic-bezier(.4,0,.6,1)!important}.v-application .transition-fast-in-fast-out{transition:.3s cubic-bezier(.25,.8,.25,1)!important}.v-application .transition-swing{transition:.3s cubic-bezier(.25,.8,.5,1)!important}.v-application .overflow-auto{overflow:auto!important}.v-application .overflow-hidden{overflow:hidden!important}.v-application .overflow-visible{overflow:visible!important}.v-application .overflow-x-auto{overflow-x:auto!important}.v-application .overflow-x-hidden{overflow-x:hidden!important}.v-application .overflow-y-auto{overflow-y:auto!important}.v-application .overflow-y-hidden{overflow-y:hidden!important}.v-application .d-none{display:none!important}.v-application .d-inline{display:inline!important}.v-application .d-inline-block{display:inline-block!important}.v-application .d-block{display:block!important}.v-application .d-table{display:table!important}.v-application .d-table-row{display:table-row!important}.v-application .d-table-cell{display:table-cell!important}.v-application .d-flex{display:flex!important}.v-application .d-inline-flex{display:inline-flex!important}.v-application .float-none{float:none!important}.v-application .float-left{float:left!important}.v-application .float-right{float:right!important}.v-application .flex-fill{flex:1 1 auto!important}.v-application .flex-row{flex-direction:row!important}.v-application .flex-column{flex-direction:column!important}.v-application .flex-row-reverse{flex-direction:row-reverse!important}.v-application .flex-column-reverse{flex-direction:column-reverse!important}.v-application .flex-grow-0{flex-grow:0!important}.v-application .flex-grow-1{flex-grow:1!important}.v-application .flex-shrink-0{flex-shrink:0!important}.v-application .flex-shrink-1{flex-shrink:1!important}.v-application .flex-wrap{flex-wrap:wrap!important}.v-application .flex-nowrap{flex-wrap:nowrap!important}.v-application .flex-wrap-reverse{flex-wrap:wrap-reverse!important}.v-application .justify-start{justify-content:flex-start!important}.v-application .justify-end{justify-content:flex-end!important}.v-application .justify-center{justify-content:center!important}.v-application .justify-space-between{justify-content:space-between!important}.v-application .justify-space-around{justify-content:space-around!important}.v-application .align-start{align-items:flex-start!important}.v-application .align-end{align-items:flex-end!important}.v-application .align-center{align-items:center!important}.v-application .align-baseline{align-items:baseline!important}.v-application .align-stretch{align-items:stretch!important}.v-application .align-content-start{align-content:flex-start!important}.v-application .align-content-end{align-content:flex-end!important}.v-application .align-content-center{align-content:center!important}.v-application .align-content-space-between{align-content:space-between!important}.v-application .align-content-space-around{align-content:space-around!important}.v-application .align-content-stretch{align-content:stretch!important}.v-application .align-self-auto{align-self:auto!important}.v-application .align-self-start{align-self:flex-start!important}.v-application .align-self-end{align-self:flex-end!important}.v-application .align-self-center{align-self:center!important}.v-application .align-self-baseline{align-self:baseline!important}.v-application .align-self-stretch{align-self:stretch!important}.v-application .order-first{order:-1!important}.v-application .order-0{order:0!important}.v-application .order-1{order:1!important}.v-application .order-2{order:2!important}.v-application .order-3{order:3!important}.v-application .order-4{order:4!important}.v-application .order-5{order:5!important}.v-application .order-6{order:6!important}.v-application .order-7{order:7!important}.v-application .order-8{order:8!important}.v-application .order-9{order:9!important}.v-application .order-10{order:10!important}.v-application .order-11{order:11!important}.v-application .order-12{order:12!important}.v-application .order-last{order:13!important}.v-application .ma-0{margin:0!important}.v-application .ma-1{margin:4px!important}.v-application .ma-2{margin:8px!important}.v-application .ma-3{margin:12px!important}.v-application .ma-4{margin:16px!important}.v-application .ma-5{margin:20px!important}.v-application .ma-6{margin:24px!important}.v-application .ma-7{margin:28px!important}.v-application .ma-8{margin:32px!important}.v-application .ma-9{margin:36px!important}.v-application .ma-10{margin:40px!important}.v-application .ma-11{margin:44px!important}.v-application .ma-12{margin:48px!important}.v-application .ma-13{margin:52px!important}.v-application .ma-14{margin:56px!important}.v-application .ma-15{margin:60px!important}.v-application .ma-16{margin:64px!important}.v-application .ma-auto{margin:auto!important}.v-application .mx-0{margin-right:0!important;margin-left:0!important}.v-application .mx-1{margin-right:4px!important;margin-left:4px!important}.v-application .mx-2{margin-right:8px!important;margin-left:8px!important}.v-application .mx-3{margin-right:12px!important;margin-left:12px!important}.v-application .mx-4{margin-right:16px!important;margin-left:16px!important}.v-application .mx-5{margin-right:20px!important;margin-left:20px!important}.v-application .mx-6{margin-right:24px!important;margin-left:24px!important}.v-application .mx-7{margin-right:28px!important;margin-left:28px!important}.v-application .mx-8{margin-right:32px!important;margin-left:32px!important}.v-application .mx-9{margin-right:36px!important;margin-left:36px!important}.v-application .mx-10{margin-right:40px!important;margin-left:40px!important}.v-application .mx-11{margin-right:44px!important;margin-left:44px!important}.v-application .mx-12{margin-right:48px!important;margin-left:48px!important}.v-application .mx-13{margin-right:52px!important;margin-left:52px!important}.v-application .mx-14{margin-right:56px!important;margin-left:56px!important}.v-application .mx-15{margin-right:60px!important;margin-left:60px!important}.v-application .mx-16{margin-right:64px!important;margin-left:64px!important}.v-application .mx-auto{margin-right:auto!important;margin-left:auto!important}.v-application .my-0{margin-top:0!important;margin-bottom:0!important}.v-application .my-1{margin-top:4px!important;margin-bottom:4px!important}.v-application .my-2{margin-top:8px!important;margin-bottom:8px!important}.v-application .my-3{margin-top:12px!important;margin-bottom:12px!important}.v-application .my-4{margin-top:16px!important;margin-bottom:16px!important}.v-application .my-5{margin-top:20px!important;margin-bottom:20px!important}.v-application .my-6{margin-top:24px!important;margin-bottom:24px!important}.v-application .my-7{margin-top:28px!important;margin-bottom:28px!important}.v-application .my-8{margin-top:32px!important;margin-bottom:32px!important}.v-application .my-9{margin-top:36px!important;margin-bottom:36px!important}.v-application .my-10{margin-top:40px!important;margin-bottom:40px!important}.v-application .my-11{margin-top:44px!important;margin-bottom:44px!important}.v-application .my-12{margin-top:48px!important;margin-bottom:48px!important}.v-application .my-13{margin-top:52px!important;margin-bottom:52px!important}.v-application .my-14{margin-top:56px!important;margin-bottom:56px!important}.v-application .my-15{margin-top:60px!important;margin-bottom:60px!important}.v-application .my-16{margin-top:64px!important;margin-bottom:64px!important}.v-application .my-auto{margin-top:auto!important;margin-bottom:auto!important}.v-application .mt-0{margin-top:0!important}.v-application .mt-1{margin-top:4px!important}.v-application .mt-2{margin-top:8px!important}.v-application .mt-3{margin-top:12px!important}.v-application .mt-4{margin-top:16px!important}.v-application .mt-5{margin-top:20px!important}.v-application .mt-6{margin-top:24px!important}.v-application .mt-7{margin-top:28px!important}.v-application .mt-8{margin-top:32px!important}.v-application .mt-9{margin-top:36px!important}.v-application .mt-10{margin-top:40px!important}.v-application .mt-11{margin-top:44px!important}.v-application .mt-12{margin-top:48px!important}.v-application .mt-13{margin-top:52px!important}.v-application .mt-14{margin-top:56px!important}.v-application .mt-15{margin-top:60px!important}.v-application .mt-16{margin-top:64px!important}.v-application .mt-auto{margin-top:auto!important}.v-application .mr-0{margin-right:0!important}.v-application .mr-1{margin-right:4px!important}.v-application .mr-2{margin-right:8px!important}.v-application .mr-3{margin-right:12px!important}.v-application .mr-4{margin-right:16px!important}.v-application .mr-5{margin-right:20px!important}.v-application .mr-6{margin-right:24px!important}.v-application .mr-7{margin-right:28px!important}.v-application .mr-8{margin-right:32px!important}.v-application .mr-9{margin-right:36px!important}.v-application .mr-10{margin-right:40px!important}.v-application .mr-11{margin-right:44px!important}.v-application .mr-12{margin-right:48px!important}.v-application .mr-13{margin-right:52px!important}.v-application .mr-14{margin-right:56px!important}.v-application .mr-15{margin-right:60px!important}.v-application .mr-16{margin-right:64px!important}.v-application .mr-auto{margin-right:auto!important}.v-application .mb-0{margin-bottom:0!important}.v-application .mb-1{margin-bottom:4px!important}.v-application .mb-2{margin-bottom:8px!important}.v-application .mb-3{margin-bottom:12px!important}.v-application .mb-4{margin-bottom:16px!important}.v-application .mb-5{margin-bottom:20px!important}.v-application .mb-6{margin-bottom:24px!important}.v-application .mb-7{margin-bottom:28px!important}.v-application .mb-8{margin-bottom:32px!important}.v-application .mb-9{margin-bottom:36px!important}.v-application .mb-10{margin-bottom:40px!important}.v-application .mb-11{margin-bottom:44px!important}.v-application .mb-12{margin-bottom:48px!important}.v-application .mb-13{margin-bottom:52px!important}.v-application .mb-14{margin-bottom:56px!important}.v-application .mb-15{margin-bottom:60px!important}.v-application .mb-16{margin-bottom:64px!important}.v-application .mb-auto{margin-bottom:auto!important}.v-application .ml-0{margin-left:0!important}.v-application .ml-1{margin-left:4px!important}.v-application .ml-2{margin-left:8px!important}.v-application .ml-3{margin-left:12px!important}.v-application .ml-4{margin-left:16px!important}.v-application .ml-5{margin-left:20px!important}.v-application .ml-6{margin-left:24px!important}.v-application .ml-7{margin-left:28px!important}.v-application .ml-8{margin-left:32px!important}.v-application .ml-9{margin-left:36px!important}.v-application .ml-10{margin-left:40px!important}.v-application .ml-11{margin-left:44px!important}.v-application .ml-12{margin-left:48px!important}.v-application .ml-13{margin-left:52px!important}.v-application .ml-14{margin-left:56px!important}.v-application .ml-15{margin-left:60px!important}.v-application .ml-16{margin-left:64px!important}.v-application .ml-auto{margin-left:auto!important}.v-application--is-ltr .ms-0{margin-left:0!important}.v-application--is-rtl .ms-0{margin-right:0!important}.v-application--is-ltr .ms-1{margin-left:4px!important}.v-application--is-rtl .ms-1{margin-right:4px!important}.v-application--is-ltr .ms-2{margin-left:8px!important}.v-application--is-rtl .ms-2{margin-right:8px!important}.v-application--is-ltr .ms-3{margin-left:12px!important}.v-application--is-rtl .ms-3{margin-right:12px!important}.v-application--is-ltr .ms-4{margin-left:16px!important}.v-application--is-rtl .ms-4{margin-right:16px!important}.v-application--is-ltr .ms-5{margin-left:20px!important}.v-application--is-rtl .ms-5{margin-right:20px!important}.v-application--is-ltr .ms-6{margin-left:24px!important}.v-application--is-rtl .ms-6{margin-right:24px!important}.v-application--is-ltr .ms-7{margin-left:28px!important}.v-application--is-rtl .ms-7{margin-right:28px!important}.v-application--is-ltr .ms-8{margin-left:32px!important}.v-application--is-rtl .ms-8{margin-right:32px!important}.v-application--is-ltr .ms-9{margin-left:36px!important}.v-application--is-rtl .ms-9{margin-right:36px!important}.v-application--is-ltr .ms-10{margin-left:40px!important}.v-application--is-rtl .ms-10{margin-right:40px!important}.v-application--is-ltr .ms-11{margin-left:44px!important}.v-application--is-rtl .ms-11{margin-right:44px!important}.v-application--is-ltr .ms-12{margin-left:48px!important}.v-application--is-rtl .ms-12{margin-right:48px!important}.v-application--is-ltr .ms-13{margin-left:52px!important}.v-application--is-rtl .ms-13{margin-right:52px!important}.v-application--is-ltr .ms-14{margin-left:56px!important}.v-application--is-rtl .ms-14{margin-right:56px!important}.v-application--is-ltr .ms-15{margin-left:60px!important}.v-application--is-rtl .ms-15{margin-right:60px!important}.v-application--is-ltr .ms-16{margin-left:64px!important}.v-application--is-rtl .ms-16{margin-right:64px!important}.v-application--is-ltr .ms-auto{margin-left:auto!important}.v-application--is-rtl .ms-auto{margin-right:auto!important}.v-application--is-ltr .me-0{margin-right:0!important}.v-application--is-rtl .me-0{margin-left:0!important}.v-application--is-ltr .me-1{margin-right:4px!important}.v-application--is-rtl .me-1{margin-left:4px!important}.v-application--is-ltr .me-2{margin-right:8px!important}.v-application--is-rtl .me-2{margin-left:8px!important}.v-application--is-ltr .me-3{margin-right:12px!important}.v-application--is-rtl .me-3{margin-left:12px!important}.v-application--is-ltr .me-4{margin-right:16px!important}.v-application--is-rtl .me-4{margin-left:16px!important}.v-application--is-ltr .me-5{margin-right:20px!important}.v-application--is-rtl .me-5{margin-left:20px!important}.v-application--is-ltr .me-6{margin-right:24px!important}.v-application--is-rtl .me-6{margin-left:24px!important}.v-application--is-ltr .me-7{margin-right:28px!important}.v-application--is-rtl .me-7{margin-left:28px!important}.v-application--is-ltr .me-8{margin-right:32px!important}.v-application--is-rtl .me-8{margin-left:32px!important}.v-application--is-ltr .me-9{margin-right:36px!important}.v-application--is-rtl .me-9{margin-left:36px!important}.v-application--is-ltr .me-10{margin-right:40px!important}.v-application--is-rtl .me-10{margin-left:40px!important}.v-application--is-ltr .me-11{margin-right:44px!important}.v-application--is-rtl .me-11{margin-left:44px!important}.v-application--is-ltr .me-12{margin-right:48px!important}.v-application--is-rtl .me-12{margin-left:48px!important}.v-application--is-ltr .me-13{margin-right:52px!important}.v-application--is-rtl .me-13{margin-left:52px!important}.v-application--is-ltr .me-14{margin-right:56px!important}.v-application--is-rtl .me-14{margin-left:56px!important}.v-application--is-ltr .me-15{margin-right:60px!important}.v-application--is-rtl .me-15{margin-left:60px!important}.v-application--is-ltr .me-16{margin-right:64px!important}.v-application--is-rtl .me-16{margin-left:64px!important}.v-application--is-ltr .me-auto{margin-right:auto!important}.v-application--is-rtl .me-auto{margin-left:auto!important}.v-application .ma-n1{margin:-4px!important}.v-application .ma-n2{margin:-8px!important}.v-application .ma-n3{margin:-12px!important}.v-application .ma-n4{margin:-16px!important}.v-application .ma-n5{margin:-20px!important}.v-application .ma-n6{margin:-24px!important}.v-application .ma-n7{margin:-28px!important}.v-application .ma-n8{margin:-32px!important}.v-application .ma-n9{margin:-36px!important}.v-application .ma-n10{margin:-40px!important}.v-application .ma-n11{margin:-44px!important}.v-application .ma-n12{margin:-48px!important}.v-application .ma-n13{margin:-52px!important}.v-application .ma-n14{margin:-56px!important}.v-application .ma-n15{margin:-60px!important}.v-application .ma-n16{margin:-64px!important}.v-application .mx-n1{margin-right:-4px!important;margin-left:-4px!important}.v-application .mx-n2{margin-right:-8px!important;margin-left:-8px!important}.v-application .mx-n3{margin-right:-12px!important;margin-left:-12px!important}.v-application .mx-n4{margin-right:-16px!important;margin-left:-16px!important}.v-application .mx-n5{margin-right:-20px!important;margin-left:-20px!important}.v-application .mx-n6{margin-right:-24px!important;margin-left:-24px!important}.v-application .mx-n7{margin-right:-28px!important;margin-left:-28px!important}.v-application .mx-n8{margin-right:-32px!important;margin-left:-32px!important}.v-application .mx-n9{margin-right:-36px!important;margin-left:-36px!important}.v-application .mx-n10{margin-right:-40px!important;margin-left:-40px!important}.v-application .mx-n11{margin-right:-44px!important;margin-left:-44px!important}.v-application .mx-n12{margin-right:-48px!important;margin-left:-48px!important}.v-application .mx-n13{margin-right:-52px!important;margin-left:-52px!important}.v-application .mx-n14{margin-right:-56px!important;margin-left:-56px!important}.v-application .mx-n15{margin-right:-60px!important;margin-left:-60px!important}.v-application .mx-n16{margin-right:-64px!important;margin-left:-64px!important}.v-application .my-n1{margin-top:-4px!important;margin-bottom:-4px!important}.v-application .my-n2{margin-top:-8px!important;margin-bottom:-8px!important}.v-application .my-n3{margin-top:-12px!important;margin-bottom:-12px!important}.v-application .my-n4{margin-top:-16px!important;margin-bottom:-16px!important}.v-application .my-n5{margin-top:-20px!important;margin-bottom:-20px!important}.v-application .my-n6{margin-top:-24px!important;margin-bottom:-24px!important}.v-application .my-n7{margin-top:-28px!important;margin-bottom:-28px!important}.v-application .my-n8{margin-top:-32px!important;margin-bottom:-32px!important}.v-application .my-n9{margin-top:-36px!important;margin-bottom:-36px!important}.v-application .my-n10{margin-top:-40px!important;margin-bottom:-40px!important}.v-application .my-n11{margin-top:-44px!important;margin-bottom:-44px!important}.v-application .my-n12{margin-top:-48px!important;margin-bottom:-48px!important}.v-application .my-n13{margin-top:-52px!important;margin-bottom:-52px!important}.v-application .my-n14{margin-top:-56px!important;margin-bottom:-56px!important}.v-application .my-n15{margin-top:-60px!important;margin-bottom:-60px!important}.v-application .my-n16{margin-top:-64px!important;margin-bottom:-64px!important}.v-application .mt-n1{margin-top:-4px!important}.v-application .mt-n2{margin-top:-8px!important}.v-application .mt-n3{margin-top:-12px!important}.v-application .mt-n4{margin-top:-16px!important}.v-application .mt-n5{margin-top:-20px!important}.v-application .mt-n6{margin-top:-24px!important}.v-application .mt-n7{margin-top:-28px!important}.v-application .mt-n8{margin-top:-32px!important}.v-application .mt-n9{margin-top:-36px!important}.v-application .mt-n10{margin-top:-40px!important}.v-application .mt-n11{margin-top:-44px!important}.v-application .mt-n12{margin-top:-48px!important}.v-application .mt-n13{margin-top:-52px!important}.v-application .mt-n14{margin-top:-56px!important}.v-application .mt-n15{margin-top:-60px!important}.v-application .mt-n16{margin-top:-64px!important}.v-application .mr-n1{margin-right:-4px!important}.v-application .mr-n2{margin-right:-8px!important}.v-application .mr-n3{margin-right:-12px!important}.v-application .mr-n4{margin-right:-16px!important}.v-application .mr-n5{margin-right:-20px!important}.v-application .mr-n6{margin-right:-24px!important}.v-application .mr-n7{margin-right:-28px!important}.v-application .mr-n8{margin-right:-32px!important}.v-application .mr-n9{margin-right:-36px!important}.v-application .mr-n10{margin-right:-40px!important}.v-application .mr-n11{margin-right:-44px!important}.v-application .mr-n12{margin-right:-48px!important}.v-application .mr-n13{margin-right:-52px!important}.v-application .mr-n14{margin-right:-56px!important}.v-application .mr-n15{margin-right:-60px!important}.v-application .mr-n16{margin-right:-64px!important}.v-application .mb-n1{margin-bottom:-4px!important}.v-application .mb-n2{margin-bottom:-8px!important}.v-application .mb-n3{margin-bottom:-12px!important}.v-application .mb-n4{margin-bottom:-16px!important}.v-application .mb-n5{margin-bottom:-20px!important}.v-application .mb-n6{margin-bottom:-24px!important}.v-application .mb-n7{margin-bottom:-28px!important}.v-application .mb-n8{margin-bottom:-32px!important}.v-application .mb-n9{margin-bottom:-36px!important}.v-application .mb-n10{margin-bottom:-40px!important}.v-application .mb-n11{margin-bottom:-44px!important}.v-application .mb-n12{margin-bottom:-48px!important}.v-application .mb-n13{margin-bottom:-52px!important}.v-application .mb-n14{margin-bottom:-56px!important}.v-application .mb-n15{margin-bottom:-60px!important}.v-application .mb-n16{margin-bottom:-64px!important}.v-application .ml-n1{margin-left:-4px!important}.v-application .ml-n2{margin-left:-8px!important}.v-application .ml-n3{margin-left:-12px!important}.v-application .ml-n4{margin-left:-16px!important}.v-application .ml-n5{margin-left:-20px!important}.v-application .ml-n6{margin-left:-24px!important}.v-application .ml-n7{margin-left:-28px!important}.v-application .ml-n8{margin-left:-32px!important}.v-application .ml-n9{margin-left:-36px!important}.v-application .ml-n10{margin-left:-40px!important}.v-application .ml-n11{margin-left:-44px!important}.v-application .ml-n12{margin-left:-48px!important}.v-application .ml-n13{margin-left:-52px!important}.v-application .ml-n14{margin-left:-56px!important}.v-application .ml-n15{margin-left:-60px!important}.v-application .ml-n16{margin-left:-64px!important}.v-application--is-ltr .ms-n1{margin-left:-4px!important}.v-application--is-rtl .ms-n1{margin-right:-4px!important}.v-application--is-ltr .ms-n2{margin-left:-8px!important}.v-application--is-rtl .ms-n2{margin-right:-8px!important}.v-application--is-ltr .ms-n3{margin-left:-12px!important}.v-application--is-rtl .ms-n3{margin-right:-12px!important}.v-application--is-ltr .ms-n4{margin-left:-16px!important}.v-application--is-rtl .ms-n4{margin-right:-16px!important}.v-application--is-ltr .ms-n5{margin-left:-20px!important}.v-application--is-rtl .ms-n5{margin-right:-20px!important}.v-application--is-ltr .ms-n6{margin-left:-24px!important}.v-application--is-rtl .ms-n6{margin-right:-24px!important}.v-application--is-ltr .ms-n7{margin-left:-28px!important}.v-application--is-rtl .ms-n7{margin-right:-28px!important}.v-application--is-ltr .ms-n8{margin-left:-32px!important}.v-application--is-rtl .ms-n8{margin-right:-32px!important}.v-application--is-ltr .ms-n9{margin-left:-36px!important}.v-application--is-rtl .ms-n9{margin-right:-36px!important}.v-application--is-ltr .ms-n10{margin-left:-40px!important}.v-application--is-rtl .ms-n10{margin-right:-40px!important}.v-application--is-ltr .ms-n11{margin-left:-44px!important}.v-application--is-rtl .ms-n11{margin-right:-44px!important}.v-application--is-ltr .ms-n12{margin-left:-48px!important}.v-application--is-rtl .ms-n12{margin-right:-48px!important}.v-application--is-ltr .ms-n13{margin-left:-52px!important}.v-application--is-rtl .ms-n13{margin-right:-52px!important}.v-application--is-ltr .ms-n14{margin-left:-56px!important}.v-application--is-rtl .ms-n14{margin-right:-56px!important}.v-application--is-ltr .ms-n15{margin-left:-60px!important}.v-application--is-rtl .ms-n15{margin-right:-60px!important}.v-application--is-ltr .ms-n16{margin-left:-64px!important}.v-application--is-rtl .ms-n16{margin-right:-64px!important}.v-application--is-ltr .me-n1{margin-right:-4px!important}.v-application--is-rtl .me-n1{margin-left:-4px!important}.v-application--is-ltr .me-n2{margin-right:-8px!important}.v-application--is-rtl .me-n2{margin-left:-8px!important}.v-application--is-ltr .me-n3{margin-right:-12px!important}.v-application--is-rtl .me-n3{margin-left:-12px!important}.v-application--is-ltr .me-n4{margin-right:-16px!important}.v-application--is-rtl .me-n4{margin-left:-16px!important}.v-application--is-ltr .me-n5{margin-right:-20px!important}.v-application--is-rtl .me-n5{margin-left:-20px!important}.v-application--is-ltr .me-n6{margin-right:-24px!important}.v-application--is-rtl .me-n6{margin-left:-24px!important}.v-application--is-ltr .me-n7{margin-right:-28px!important}.v-application--is-rtl .me-n7{margin-left:-28px!important}.v-application--is-ltr .me-n8{margin-right:-32px!important}.v-application--is-rtl .me-n8{margin-left:-32px!important}.v-application--is-ltr .me-n9{margin-right:-36px!important}.v-application--is-rtl .me-n9{margin-left:-36px!important}.v-application--is-ltr .me-n10{margin-right:-40px!important}.v-application--is-rtl .me-n10{margin-left:-40px!important}.v-application--is-ltr .me-n11{margin-right:-44px!important}.v-application--is-rtl .me-n11{margin-left:-44px!important}.v-application--is-ltr .me-n12{margin-right:-48px!important}.v-application--is-rtl .me-n12{margin-left:-48px!important}.v-application--is-ltr .me-n13{margin-right:-52px!important}.v-application--is-rtl .me-n13{margin-left:-52px!important}.v-application--is-ltr .me-n14{margin-right:-56px!important}.v-application--is-rtl .me-n14{margin-left:-56px!important}.v-application--is-ltr .me-n15{margin-right:-60px!important}.v-application--is-rtl .me-n15{margin-left:-60px!important}.v-application--is-ltr .me-n16{margin-right:-64px!important}.v-application--is-rtl .me-n16{margin-left:-64px!important}.v-application .pa-0{padding:0!important}.v-application .pa-1{padding:4px!important}.v-application .pa-2{padding:8px!important}.v-application .pa-3{padding:12px!important}.v-application .pa-4{padding:16px!important}.v-application .pa-5{padding:20px!important}.v-application .pa-6{padding:24px!important}.v-application .pa-7{padding:28px!important}.v-application .pa-8{padding:32px!important}.v-application .pa-9{padding:36px!important}.v-application .pa-10{padding:40px!important}.v-application .pa-11{padding:44px!important}.v-application .pa-12{padding:48px!important}.v-application .pa-13{padding:52px!important}.v-application .pa-14{padding:56px!important}.v-application .pa-15{padding:60px!important}.v-application .pa-16{padding:64px!important}.v-application .px-0{padding-right:0!important;padding-left:0!important}.v-application .px-1{padding-right:4px!important;padding-left:4px!important}.v-application .px-2{padding-right:8px!important;padding-left:8px!important}.v-application .px-3{padding-right:12px!important;padding-left:12px!important}.v-application .px-4{padding-right:16px!important;padding-left:16px!important}.v-application .px-5{padding-right:20px!important;padding-left:20px!important}.v-application .px-6{padding-right:24px!important;padding-left:24px!important}.v-application .px-7{padding-right:28px!important;padding-left:28px!important}.v-application .px-8{padding-right:32px!important;padding-left:32px!important}.v-application .px-9{padding-right:36px!important;padding-left:36px!important}.v-application .px-10{padding-right:40px!important;padding-left:40px!important}.v-application .px-11{padding-right:44px!important;padding-left:44px!important}.v-application .px-12{padding-right:48px!important;padding-left:48px!important}.v-application .px-13{padding-right:52px!important;padding-left:52px!important}.v-application .px-14{padding-right:56px!important;padding-left:56px!important}.v-application .px-15{padding-right:60px!important;padding-left:60px!important}.v-application .px-16{padding-right:64px!important;padding-left:64px!important}.v-application .py-0{padding-top:0!important;padding-bottom:0!important}.v-application .py-1{padding-top:4px!important;padding-bottom:4px!important}.v-application .py-2{padding-top:8px!important;padding-bottom:8px!important}.v-application .py-3{padding-top:12px!important;padding-bottom:12px!important}.v-application .py-4{padding-top:16px!important;padding-bottom:16px!important}.v-application .py-5{padding-top:20px!important;padding-bottom:20px!important}.v-application .py-6{padding-top:24px!important;padding-bottom:24px!important}.v-application .py-7{padding-top:28px!important;padding-bottom:28px!important}.v-application .py-8{padding-top:32px!important;padding-bottom:32px!important}.v-application .py-9{padding-top:36px!important;padding-bottom:36px!important}.v-application .py-10{padding-top:40px!important;padding-bottom:40px!important}.v-application .py-11{padding-top:44px!important;padding-bottom:44px!important}.v-application .py-12{padding-top:48px!important;padding-bottom:48px!important}.v-application .py-13{padding-top:52px!important;padding-bottom:52px!important}.v-application .py-14{padding-top:56px!important;padding-bottom:56px!important}.v-application .py-15{padding-top:60px!important;padding-bottom:60px!important}.v-application .py-16{padding-top:64px!important;padding-bottom:64px!important}.v-application .pt-0{padding-top:0!important}.v-application .pt-1{padding-top:4px!important}.v-application .pt-2{padding-top:8px!important}.v-application .pt-3{padding-top:12px!important}.v-application .pt-4{padding-top:16px!important}.v-application .pt-5{padding-top:20px!important}.v-application .pt-6{padding-top:24px!important}.v-application .pt-7{padding-top:28px!important}.v-application .pt-8{padding-top:32px!important}.v-application .pt-9{padding-top:36px!important}.v-application .pt-10{padding-top:40px!important}.v-application .pt-11{padding-top:44px!important}.v-application .pt-12{padding-top:48px!important}.v-application .pt-13{padding-top:52px!important}.v-application .pt-14{padding-top:56px!important}.v-application .pt-15{padding-top:60px!important}.v-application .pt-16{padding-top:64px!important}.v-application .pr-0{padding-right:0!important}.v-application .pr-1{padding-right:4px!important}.v-application .pr-2{padding-right:8px!important}.v-application .pr-3{padding-right:12px!important}.v-application .pr-4{padding-right:16px!important}.v-application .pr-5{padding-right:20px!important}.v-application .pr-6{padding-right:24px!important}.v-application .pr-7{padding-right:28px!important}.v-application .pr-8{padding-right:32px!important}.v-application .pr-9{padding-right:36px!important}.v-application .pr-10{padding-right:40px!important}.v-application .pr-11{padding-right:44px!important}.v-application .pr-12{padding-right:48px!important}.v-application .pr-13{padding-right:52px!important}.v-application .pr-14{padding-right:56px!important}.v-application .pr-15{padding-right:60px!important}.v-application .pr-16{padding-right:64px!important}.v-application .pb-0{padding-bottom:0!important}.v-application .pb-1{padding-bottom:4px!important}.v-application .pb-2{padding-bottom:8px!important}.v-application .pb-3{padding-bottom:12px!important}.v-application .pb-4{padding-bottom:16px!important}.v-application .pb-5{padding-bottom:20px!important}.v-application .pb-6{padding-bottom:24px!important}.v-application .pb-7{padding-bottom:28px!important}.v-application .pb-8{padding-bottom:32px!important}.v-application .pb-9{padding-bottom:36px!important}.v-application .pb-10{padding-bottom:40px!important}.v-application .pb-11{padding-bottom:44px!important}.v-application .pb-12{padding-bottom:48px!important}.v-application .pb-13{padding-bottom:52px!important}.v-application .pb-14{padding-bottom:56px!important}.v-application .pb-15{padding-bottom:60px!important}.v-application .pb-16{padding-bottom:64px!important}.v-application .pl-0{padding-left:0!important}.v-application .pl-1{padding-left:4px!important}.v-application .pl-2{padding-left:8px!important}.v-application .pl-3{padding-left:12px!important}.v-application .pl-4{padding-left:16px!important}.v-application .pl-5{padding-left:20px!important}.v-application .pl-6{padding-left:24px!important}.v-application .pl-7{padding-left:28px!important}.v-application .pl-8{padding-left:32px!important}.v-application .pl-9{padding-left:36px!important}.v-application .pl-10{padding-left:40px!important}.v-application .pl-11{padding-left:44px!important}.v-application .pl-12{padding-left:48px!important}.v-application .pl-13{padding-left:52px!important}.v-application .pl-14{padding-left:56px!important}.v-application .pl-15{padding-left:60px!important}.v-application .pl-16{padding-left:64px!important}.v-application--is-ltr .ps-0{padding-left:0!important}.v-application--is-rtl .ps-0{padding-right:0!important}.v-application--is-ltr .ps-1{padding-left:4px!important}.v-application--is-rtl .ps-1{padding-right:4px!important}.v-application--is-ltr .ps-2{padding-left:8px!important}.v-application--is-rtl .ps-2{padding-right:8px!important}.v-application--is-ltr .ps-3{padding-left:12px!important}.v-application--is-rtl .ps-3{padding-right:12px!important}.v-application--is-ltr .ps-4{padding-left:16px!important}.v-application--is-rtl .ps-4{padding-right:16px!important}.v-application--is-ltr .ps-5{padding-left:20px!important}.v-application--is-rtl .ps-5{padding-right:20px!important}.v-application--is-ltr .ps-6{padding-left:24px!important}.v-application--is-rtl .ps-6{padding-right:24px!important}.v-application--is-ltr .ps-7{padding-left:28px!important}.v-application--is-rtl .ps-7{padding-right:28px!important}.v-application--is-ltr .ps-8{padding-left:32px!important}.v-application--is-rtl .ps-8{padding-right:32px!important}.v-application--is-ltr .ps-9{padding-left:36px!important}.v-application--is-rtl .ps-9{padding-right:36px!important}.v-application--is-ltr .ps-10{padding-left:40px!important}.v-application--is-rtl .ps-10{padding-right:40px!important}.v-application--is-ltr .ps-11{padding-left:44px!important}.v-application--is-rtl .ps-11{padding-right:44px!important}.v-application--is-ltr .ps-12{padding-left:48px!important}.v-application--is-rtl .ps-12{padding-right:48px!important}.v-application--is-ltr .ps-13{padding-left:52px!important}.v-application--is-rtl .ps-13{padding-right:52px!important}.v-application--is-ltr .ps-14{padding-left:56px!important}.v-application--is-rtl .ps-14{padding-right:56px!important}.v-application--is-ltr .ps-15{padding-left:60px!important}.v-application--is-rtl .ps-15{padding-right:60px!important}.v-application--is-ltr .ps-16{padding-left:64px!important}.v-application--is-rtl .ps-16{padding-right:64px!important}.v-application--is-ltr .pe-0{padding-right:0!important}.v-application--is-rtl .pe-0{padding-left:0!important}.v-application--is-ltr .pe-1{padding-right:4px!important}.v-application--is-rtl .pe-1{padding-left:4px!important}.v-application--is-ltr .pe-2{padding-right:8px!important}.v-application--is-rtl .pe-2{padding-left:8px!important}.v-application--is-ltr .pe-3{padding-right:12px!important}.v-application--is-rtl .pe-3{padding-left:12px!important}.v-application--is-ltr .pe-4{padding-right:16px!important}.v-application--is-rtl .pe-4{padding-left:16px!important}.v-application--is-ltr .pe-5{padding-right:20px!important}.v-application--is-rtl .pe-5{padding-left:20px!important}.v-application--is-ltr .pe-6{padding-right:24px!important}.v-application--is-rtl .pe-6{padding-left:24px!important}.v-application--is-ltr .pe-7{padding-right:28px!important}.v-application--is-rtl .pe-7{padding-left:28px!important}.v-application--is-ltr .pe-8{padding-right:32px!important}.v-application--is-rtl .pe-8{padding-left:32px!important}.v-application--is-ltr .pe-9{padding-right:36px!important}.v-application--is-rtl .pe-9{padding-left:36px!important}.v-application--is-ltr .pe-10{padding-right:40px!important}.v-application--is-rtl .pe-10{padding-left:40px!important}.v-application--is-ltr .pe-11{padding-right:44px!important}.v-application--is-rtl .pe-11{padding-left:44px!important}.v-application--is-ltr .pe-12{padding-right:48px!important}.v-application--is-rtl .pe-12{padding-left:48px!important}.v-application--is-ltr .pe-13{padding-right:52px!important}.v-application--is-rtl .pe-13{padding-left:52px!important}.v-application--is-ltr .pe-14{padding-right:56px!important}.v-application--is-rtl .pe-14{padding-left:56px!important}.v-application--is-ltr .pe-15{padding-right:60px!important}.v-application--is-rtl .pe-15{padding-left:60px!important}.v-application--is-ltr .pe-16{padding-right:64px!important}.v-application--is-rtl .pe-16{padding-left:64px!important}.v-application .rounded-0{border-radius:0!important}.v-application .rounded-sm{border-radius:2px!important}.v-application .rounded{border-radius:4px!important}.v-application .rounded-lg{border-radius:8px!important}.v-application .rounded-xl{border-radius:24px!important}.v-application .rounded-pill{border-radius:9999px!important}.v-application .rounded-circle{border-radius:50%!important}.v-application .rounded-t-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.v-application .rounded-t-sm{border-top-left-radius:2px!important;border-top-right-radius:2px!important}.v-application .rounded-t{border-top-left-radius:4px!important;border-top-right-radius:4px!important}.v-application .rounded-t-lg{border-top-left-radius:8px!important;border-top-right-radius:8px!important}.v-application .rounded-t-xl{border-top-left-radius:24px!important;border-top-right-radius:24px!important}.v-application .rounded-t-pill{border-top-left-radius:9999px!important;border-top-right-radius:9999px!important}.v-application .rounded-t-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.v-application .rounded-r-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.v-application .rounded-r-sm{border-top-right-radius:2px!important;border-bottom-right-radius:2px!important}.v-application .rounded-r{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}.v-application .rounded-r-lg{border-top-right-radius:8px!important;border-bottom-right-radius:8px!important}.v-application .rounded-r-xl{border-top-right-radius:24px!important;border-bottom-right-radius:24px!important}.v-application .rounded-r-pill{border-top-right-radius:9999px!important;border-bottom-right-radius:9999px!important}.v-application .rounded-r-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.v-application .rounded-b-0{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.v-application .rounded-b-sm{border-bottom-left-radius:2px!important;border-bottom-right-radius:2px!important}.v-application .rounded-b{border-bottom-left-radius:4px!important;border-bottom-right-radius:4px!important}.v-application .rounded-b-lg{border-bottom-left-radius:8px!important;border-bottom-right-radius:8px!important}.v-application .rounded-b-xl{border-bottom-left-radius:24px!important;border-bottom-right-radius:24px!important}.v-application .rounded-b-pill{border-bottom-left-radius:9999px!important;border-bottom-right-radius:9999px!important}.v-application .rounded-b-circle{border-bottom-left-radius:50%!important;border-bottom-right-radius:50%!important}.v-application .rounded-l-0{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.v-application .rounded-l-sm{border-top-left-radius:2px!important;border-bottom-left-radius:2px!important}.v-application .rounded-l{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important}.v-application .rounded-l-lg{border-top-left-radius:8px!important;border-bottom-left-radius:8px!important}.v-application .rounded-l-xl{border-top-left-radius:24px!important;border-bottom-left-radius:24px!important}.v-application .rounded-l-pill{border-top-left-radius:9999px!important;border-bottom-left-radius:9999px!important}.v-application .rounded-l-circle{border-top-left-radius:50%!important;border-bottom-left-radius:50%!important}.v-application .rounded-tl-0{border-top-left-radius:0!important}.v-application .rounded-tl-sm{border-top-left-radius:2px!important}.v-application .rounded-tl{border-top-left-radius:4px!important}.v-application .rounded-tl-lg{border-top-left-radius:8px!important}.v-application .rounded-tl-xl{border-top-left-radius:24px!important}.v-application .rounded-tl-pill{border-top-left-radius:9999px!important}.v-application .rounded-tl-circle{border-top-left-radius:50%!important}.v-application .rounded-tr-0{border-top-right-radius:0!important}.v-application .rounded-tr-sm{border-top-right-radius:2px!important}.v-application .rounded-tr{border-top-right-radius:4px!important}.v-application .rounded-tr-lg{border-top-right-radius:8px!important}.v-application .rounded-tr-xl{border-top-right-radius:24px!important}.v-application .rounded-tr-pill{border-top-right-radius:9999px!important}.v-application .rounded-tr-circle{border-top-right-radius:50%!important}.v-application .rounded-br-0{border-bottom-right-radius:0!important}.v-application .rounded-br-sm{border-bottom-right-radius:2px!important}.v-application .rounded-br{border-bottom-right-radius:4px!important}.v-application .rounded-br-lg{border-bottom-right-radius:8px!important}.v-application .rounded-br-xl{border-bottom-right-radius:24px!important}.v-application .rounded-br-pill{border-bottom-right-radius:9999px!important}.v-application .rounded-br-circle{border-bottom-right-radius:50%!important}.v-application .rounded-bl-0{border-bottom-left-radius:0!important}.v-application .rounded-bl-sm{border-bottom-left-radius:2px!important}.v-application .rounded-bl{border-bottom-left-radius:4px!important}.v-application .rounded-bl-lg{border-bottom-left-radius:8px!important}.v-application .rounded-bl-xl{border-bottom-left-radius:24px!important}.v-application .rounded-bl-pill{border-bottom-left-radius:9999px!important}.v-application .rounded-bl-circle{border-bottom-left-radius:50%!important}.v-application .text-left{text-align:left!important}.v-application .text-right{text-align:right!important}.v-application .text-center{text-align:center!important}.v-application .text-justify{text-align:justify!important}.v-application .text-start{text-align:start!important}.v-application .text-end{text-align:end!important}.v-application .text-decoration-line-through{text-decoration:line-through!important}.v-application .text-decoration-none{text-decoration:none!important}.v-application .text-decoration-overline{text-decoration:overline!important}.v-application .text-decoration-underline{text-decoration:underline!important}.v-application .text-wrap{white-space:normal!important}.v-application .text-no-wrap{white-space:nowrap!important}.v-application .text-break{overflow-wrap:break-word!important;word-break:break-word!important}.v-application .text-truncate{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.v-application .text-none{text-transform:none!important}.v-application .text-capitalize{text-transform:capitalize!important}.v-application .text-lowercase{text-transform:lowercase!important}.v-application .text-uppercase{text-transform:uppercase!important}.v-application .text-h1{font-size:6rem!important;line-height:6rem;letter-spacing:-.015625em!important}.v-application .text-h1,.v-application .text-h2{font-weight:300;font-family:Roboto,sans-serif!important}.v-application .text-h2{font-size:3.75rem!important;line-height:3.75rem;letter-spacing:-.0083333333em!important}.v-application .text-h3{font-size:3rem!important;line-height:3.125rem;letter-spacing:normal!important}.v-application .text-h3,.v-application .text-h4{font-weight:400;font-family:Roboto,sans-serif!important}.v-application .text-h4{font-size:2.125rem!important;line-height:2.5rem;letter-spacing:.0073529412em!important}.v-application .text-h5{font-size:1.5rem!important;font-weight:400;letter-spacing:normal!important}.v-application .text-h5,.v-application .text-h6{line-height:2rem;font-family:Roboto,sans-serif!important}.v-application .text-h6{font-size:1.25rem!important;font-weight:500;letter-spacing:.0125em!important}.v-application .text-subtitle-1{font-size:1rem!important;font-weight:400;line-height:1.75rem;letter-spacing:.009375em!important;font-family:Roboto,sans-serif!important}.v-application .text-subtitle-2{font-size:.875rem!important;font-weight:500;line-height:1.375rem;letter-spacing:.0071428571em!important;font-family:Roboto,sans-serif!important}.v-application .text-body-1{font-size:1rem!important;font-weight:400;line-height:1.5rem;letter-spacing:.03125em!important;font-family:Roboto,sans-serif!important}.v-application .text-body-2{font-weight:400;line-height:1.25rem;letter-spacing:.0178571429em!important}.v-application .text-body-2,.v-application .text-button{font-size:.875rem!important;font-family:Roboto,sans-serif!important}.v-application .text-button{font-weight:500;line-height:2.25rem;letter-spacing:.0892857143em!important;text-transform:uppercase!important}.v-application .text-caption{font-weight:400;line-height:1.25rem;letter-spacing:.0333333333em!important}.v-application .text-caption,.v-application .text-overline{font-size:.75rem!important;font-family:Roboto,sans-serif!important}.v-application .text-overline{font-weight:500;line-height:2rem;letter-spacing:.1666666667em!important;text-transform:uppercase!important}@media(min-width:600px){.v-application .d-sm-none{display:none!important}.v-application .d-sm-inline{display:inline!important}.v-application .d-sm-inline-block{display:inline-block!important}.v-application .d-sm-block{display:block!important}.v-application .d-sm-table{display:table!important}.v-application .d-sm-table-row{display:table-row!important}.v-application .d-sm-table-cell{display:table-cell!important}.v-application .d-sm-flex{display:flex!important}.v-application .d-sm-inline-flex{display:inline-flex!important}.v-application .float-sm-none{float:none!important}.v-application .float-sm-left{float:left!important}.v-application .float-sm-right{float:right!important}.v-application .flex-sm-fill{flex:1 1 auto!important}.v-application .flex-sm-row{flex-direction:row!important}.v-application .flex-sm-column{flex-direction:column!important}.v-application .flex-sm-row-reverse{flex-direction:row-reverse!important}.v-application .flex-sm-column-reverse{flex-direction:column-reverse!important}.v-application .flex-sm-grow-0{flex-grow:0!important}.v-application .flex-sm-grow-1{flex-grow:1!important}.v-application .flex-sm-shrink-0{flex-shrink:0!important}.v-application .flex-sm-shrink-1{flex-shrink:1!important}.v-application .flex-sm-wrap{flex-wrap:wrap!important}.v-application .flex-sm-nowrap{flex-wrap:nowrap!important}.v-application .flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.v-application .justify-sm-start{justify-content:flex-start!important}.v-application .justify-sm-end{justify-content:flex-end!important}.v-application .justify-sm-center{justify-content:center!important}.v-application .justify-sm-space-between{justify-content:space-between!important}.v-application .justify-sm-space-around{justify-content:space-around!important}.v-application .align-sm-start{align-items:flex-start!important}.v-application .align-sm-end{align-items:flex-end!important}.v-application .align-sm-center{align-items:center!important}.v-application .align-sm-baseline{align-items:baseline!important}.v-application .align-sm-stretch{align-items:stretch!important}.v-application .align-content-sm-start{align-content:flex-start!important}.v-application .align-content-sm-end{align-content:flex-end!important}.v-application .align-content-sm-center{align-content:center!important}.v-application .align-content-sm-space-between{align-content:space-between!important}.v-application .align-content-sm-space-around{align-content:space-around!important}.v-application .align-content-sm-stretch{align-content:stretch!important}.v-application .align-self-sm-auto{align-self:auto!important}.v-application .align-self-sm-start{align-self:flex-start!important}.v-application .align-self-sm-end{align-self:flex-end!important}.v-application .align-self-sm-center{align-self:center!important}.v-application .align-self-sm-baseline{align-self:baseline!important}.v-application .align-self-sm-stretch{align-self:stretch!important}.v-application .order-sm-first{order:-1!important}.v-application .order-sm-0{order:0!important}.v-application .order-sm-1{order:1!important}.v-application .order-sm-2{order:2!important}.v-application .order-sm-3{order:3!important}.v-application .order-sm-4{order:4!important}.v-application .order-sm-5{order:5!important}.v-application .order-sm-6{order:6!important}.v-application .order-sm-7{order:7!important}.v-application .order-sm-8{order:8!important}.v-application .order-sm-9{order:9!important}.v-application .order-sm-10{order:10!important}.v-application .order-sm-11{order:11!important}.v-application .order-sm-12{order:12!important}.v-application .order-sm-last{order:13!important}.v-application .ma-sm-0{margin:0!important}.v-application .ma-sm-1{margin:4px!important}.v-application .ma-sm-2{margin:8px!important}.v-application .ma-sm-3{margin:12px!important}.v-application .ma-sm-4{margin:16px!important}.v-application .ma-sm-5{margin:20px!important}.v-application .ma-sm-6{margin:24px!important}.v-application .ma-sm-7{margin:28px!important}.v-application .ma-sm-8{margin:32px!important}.v-application .ma-sm-9{margin:36px!important}.v-application .ma-sm-10{margin:40px!important}.v-application .ma-sm-11{margin:44px!important}.v-application .ma-sm-12{margin:48px!important}.v-application .ma-sm-13{margin:52px!important}.v-application .ma-sm-14{margin:56px!important}.v-application .ma-sm-15{margin:60px!important}.v-application .ma-sm-16{margin:64px!important}.v-application .ma-sm-auto{margin:auto!important}.v-application .mx-sm-0{margin-right:0!important;margin-left:0!important}.v-application .mx-sm-1{margin-right:4px!important;margin-left:4px!important}.v-application .mx-sm-2{margin-right:8px!important;margin-left:8px!important}.v-application .mx-sm-3{margin-right:12px!important;margin-left:12px!important}.v-application .mx-sm-4{margin-right:16px!important;margin-left:16px!important}.v-application .mx-sm-5{margin-right:20px!important;margin-left:20px!important}.v-application .mx-sm-6{margin-right:24px!important;margin-left:24px!important}.v-application .mx-sm-7{margin-right:28px!important;margin-left:28px!important}.v-application .mx-sm-8{margin-right:32px!important;margin-left:32px!important}.v-application .mx-sm-9{margin-right:36px!important;margin-left:36px!important}.v-application .mx-sm-10{margin-right:40px!important;margin-left:40px!important}.v-application .mx-sm-11{margin-right:44px!important;margin-left:44px!important}.v-application .mx-sm-12{margin-right:48px!important;margin-left:48px!important}.v-application .mx-sm-13{margin-right:52px!important;margin-left:52px!important}.v-application .mx-sm-14{margin-right:56px!important;margin-left:56px!important}.v-application .mx-sm-15{margin-right:60px!important;margin-left:60px!important}.v-application .mx-sm-16{margin-right:64px!important;margin-left:64px!important}.v-application .mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.v-application .my-sm-0{margin-top:0!important;margin-bottom:0!important}.v-application .my-sm-1{margin-top:4px!important;margin-bottom:4px!important}.v-application .my-sm-2{margin-top:8px!important;margin-bottom:8px!important}.v-application .my-sm-3{margin-top:12px!important;margin-bottom:12px!important}.v-application .my-sm-4{margin-top:16px!important;margin-bottom:16px!important}.v-application .my-sm-5{margin-top:20px!important;margin-bottom:20px!important}.v-application .my-sm-6{margin-top:24px!important;margin-bottom:24px!important}.v-application .my-sm-7{margin-top:28px!important;margin-bottom:28px!important}.v-application .my-sm-8{margin-top:32px!important;margin-bottom:32px!important}.v-application .my-sm-9{margin-top:36px!important;margin-bottom:36px!important}.v-application .my-sm-10{margin-top:40px!important;margin-bottom:40px!important}.v-application .my-sm-11{margin-top:44px!important;margin-bottom:44px!important}.v-application .my-sm-12{margin-top:48px!important;margin-bottom:48px!important}.v-application .my-sm-13{margin-top:52px!important;margin-bottom:52px!important}.v-application .my-sm-14{margin-top:56px!important;margin-bottom:56px!important}.v-application .my-sm-15{margin-top:60px!important;margin-bottom:60px!important}.v-application .my-sm-16{margin-top:64px!important;margin-bottom:64px!important}.v-application .my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.v-application .mt-sm-0{margin-top:0!important}.v-application .mt-sm-1{margin-top:4px!important}.v-application .mt-sm-2{margin-top:8px!important}.v-application .mt-sm-3{margin-top:12px!important}.v-application .mt-sm-4{margin-top:16px!important}.v-application .mt-sm-5{margin-top:20px!important}.v-application .mt-sm-6{margin-top:24px!important}.v-application .mt-sm-7{margin-top:28px!important}.v-application .mt-sm-8{margin-top:32px!important}.v-application .mt-sm-9{margin-top:36px!important}.v-application .mt-sm-10{margin-top:40px!important}.v-application .mt-sm-11{margin-top:44px!important}.v-application .mt-sm-12{margin-top:48px!important}.v-application .mt-sm-13{margin-top:52px!important}.v-application .mt-sm-14{margin-top:56px!important}.v-application .mt-sm-15{margin-top:60px!important}.v-application .mt-sm-16{margin-top:64px!important}.v-application .mt-sm-auto{margin-top:auto!important}.v-application .mr-sm-0{margin-right:0!important}.v-application .mr-sm-1{margin-right:4px!important}.v-application .mr-sm-2{margin-right:8px!important}.v-application .mr-sm-3{margin-right:12px!important}.v-application .mr-sm-4{margin-right:16px!important}.v-application .mr-sm-5{margin-right:20px!important}.v-application .mr-sm-6{margin-right:24px!important}.v-application .mr-sm-7{margin-right:28px!important}.v-application .mr-sm-8{margin-right:32px!important}.v-application .mr-sm-9{margin-right:36px!important}.v-application .mr-sm-10{margin-right:40px!important}.v-application .mr-sm-11{margin-right:44px!important}.v-application .mr-sm-12{margin-right:48px!important}.v-application .mr-sm-13{margin-right:52px!important}.v-application .mr-sm-14{margin-right:56px!important}.v-application .mr-sm-15{margin-right:60px!important}.v-application .mr-sm-16{margin-right:64px!important}.v-application .mr-sm-auto{margin-right:auto!important}.v-application .mb-sm-0{margin-bottom:0!important}.v-application .mb-sm-1{margin-bottom:4px!important}.v-application .mb-sm-2{margin-bottom:8px!important}.v-application .mb-sm-3{margin-bottom:12px!important}.v-application .mb-sm-4{margin-bottom:16px!important}.v-application .mb-sm-5{margin-bottom:20px!important}.v-application .mb-sm-6{margin-bottom:24px!important}.v-application .mb-sm-7{margin-bottom:28px!important}.v-application .mb-sm-8{margin-bottom:32px!important}.v-application .mb-sm-9{margin-bottom:36px!important}.v-application .mb-sm-10{margin-bottom:40px!important}.v-application .mb-sm-11{margin-bottom:44px!important}.v-application .mb-sm-12{margin-bottom:48px!important}.v-application .mb-sm-13{margin-bottom:52px!important}.v-application .mb-sm-14{margin-bottom:56px!important}.v-application .mb-sm-15{margin-bottom:60px!important}.v-application .mb-sm-16{margin-bottom:64px!important}.v-application .mb-sm-auto{margin-bottom:auto!important}.v-application .ml-sm-0{margin-left:0!important}.v-application .ml-sm-1{margin-left:4px!important}.v-application .ml-sm-2{margin-left:8px!important}.v-application .ml-sm-3{margin-left:12px!important}.v-application .ml-sm-4{margin-left:16px!important}.v-application .ml-sm-5{margin-left:20px!important}.v-application .ml-sm-6{margin-left:24px!important}.v-application .ml-sm-7{margin-left:28px!important}.v-application .ml-sm-8{margin-left:32px!important}.v-application .ml-sm-9{margin-left:36px!important}.v-application .ml-sm-10{margin-left:40px!important}.v-application .ml-sm-11{margin-left:44px!important}.v-application .ml-sm-12{margin-left:48px!important}.v-application .ml-sm-13{margin-left:52px!important}.v-application .ml-sm-14{margin-left:56px!important}.v-application .ml-sm-15{margin-left:60px!important}.v-application .ml-sm-16{margin-left:64px!important}.v-application .ml-sm-auto{margin-left:auto!important}.v-application--is-ltr .ms-sm-0{margin-left:0!important}.v-application--is-rtl .ms-sm-0{margin-right:0!important}.v-application--is-ltr .ms-sm-1{margin-left:4px!important}.v-application--is-rtl .ms-sm-1{margin-right:4px!important}.v-application--is-ltr .ms-sm-2{margin-left:8px!important}.v-application--is-rtl .ms-sm-2{margin-right:8px!important}.v-application--is-ltr .ms-sm-3{margin-left:12px!important}.v-application--is-rtl .ms-sm-3{margin-right:12px!important}.v-application--is-ltr .ms-sm-4{margin-left:16px!important}.v-application--is-rtl .ms-sm-4{margin-right:16px!important}.v-application--is-ltr .ms-sm-5{margin-left:20px!important}.v-application--is-rtl .ms-sm-5{margin-right:20px!important}.v-application--is-ltr .ms-sm-6{margin-left:24px!important}.v-application--is-rtl .ms-sm-6{margin-right:24px!important}.v-application--is-ltr .ms-sm-7{margin-left:28px!important}.v-application--is-rtl .ms-sm-7{margin-right:28px!important}.v-application--is-ltr .ms-sm-8{margin-left:32px!important}.v-application--is-rtl .ms-sm-8{margin-right:32px!important}.v-application--is-ltr .ms-sm-9{margin-left:36px!important}.v-application--is-rtl .ms-sm-9{margin-right:36px!important}.v-application--is-ltr .ms-sm-10{margin-left:40px!important}.v-application--is-rtl .ms-sm-10{margin-right:40px!important}.v-application--is-ltr .ms-sm-11{margin-left:44px!important}.v-application--is-rtl .ms-sm-11{margin-right:44px!important}.v-application--is-ltr .ms-sm-12{margin-left:48px!important}.v-application--is-rtl .ms-sm-12{margin-right:48px!important}.v-application--is-ltr .ms-sm-13{margin-left:52px!important}.v-application--is-rtl .ms-sm-13{margin-right:52px!important}.v-application--is-ltr .ms-sm-14{margin-left:56px!important}.v-application--is-rtl .ms-sm-14{margin-right:56px!important}.v-application--is-ltr .ms-sm-15{margin-left:60px!important}.v-application--is-rtl .ms-sm-15{margin-right:60px!important}.v-application--is-ltr .ms-sm-16{margin-left:64px!important}.v-application--is-rtl .ms-sm-16{margin-right:64px!important}.v-application--is-ltr .ms-sm-auto{margin-left:auto!important}.v-application--is-rtl .ms-sm-auto{margin-right:auto!important}.v-application--is-ltr .me-sm-0{margin-right:0!important}.v-application--is-rtl .me-sm-0{margin-left:0!important}.v-application--is-ltr .me-sm-1{margin-right:4px!important}.v-application--is-rtl .me-sm-1{margin-left:4px!important}.v-application--is-ltr .me-sm-2{margin-right:8px!important}.v-application--is-rtl .me-sm-2{margin-left:8px!important}.v-application--is-ltr .me-sm-3{margin-right:12px!important}.v-application--is-rtl .me-sm-3{margin-left:12px!important}.v-application--is-ltr .me-sm-4{margin-right:16px!important}.v-application--is-rtl .me-sm-4{margin-left:16px!important}.v-application--is-ltr .me-sm-5{margin-right:20px!important}.v-application--is-rtl .me-sm-5{margin-left:20px!important}.v-application--is-ltr .me-sm-6{margin-right:24px!important}.v-application--is-rtl .me-sm-6{margin-left:24px!important}.v-application--is-ltr .me-sm-7{margin-right:28px!important}.v-application--is-rtl .me-sm-7{margin-left:28px!important}.v-application--is-ltr .me-sm-8{margin-right:32px!important}.v-application--is-rtl .me-sm-8{margin-left:32px!important}.v-application--is-ltr .me-sm-9{margin-right:36px!important}.v-application--is-rtl .me-sm-9{margin-left:36px!important}.v-application--is-ltr .me-sm-10{margin-right:40px!important}.v-application--is-rtl .me-sm-10{margin-left:40px!important}.v-application--is-ltr .me-sm-11{margin-right:44px!important}.v-application--is-rtl .me-sm-11{margin-left:44px!important}.v-application--is-ltr .me-sm-12{margin-right:48px!important}.v-application--is-rtl .me-sm-12{margin-left:48px!important}.v-application--is-ltr .me-sm-13{margin-right:52px!important}.v-application--is-rtl .me-sm-13{margin-left:52px!important}.v-application--is-ltr .me-sm-14{margin-right:56px!important}.v-application--is-rtl .me-sm-14{margin-left:56px!important}.v-application--is-ltr .me-sm-15{margin-right:60px!important}.v-application--is-rtl .me-sm-15{margin-left:60px!important}.v-application--is-ltr .me-sm-16{margin-right:64px!important}.v-application--is-rtl .me-sm-16{margin-left:64px!important}.v-application--is-ltr .me-sm-auto{margin-right:auto!important}.v-application--is-rtl .me-sm-auto{margin-left:auto!important}.v-application .ma-sm-n1{margin:-4px!important}.v-application .ma-sm-n2{margin:-8px!important}.v-application .ma-sm-n3{margin:-12px!important}.v-application .ma-sm-n4{margin:-16px!important}.v-application .ma-sm-n5{margin:-20px!important}.v-application .ma-sm-n6{margin:-24px!important}.v-application .ma-sm-n7{margin:-28px!important}.v-application .ma-sm-n8{margin:-32px!important}.v-application .ma-sm-n9{margin:-36px!important}.v-application .ma-sm-n10{margin:-40px!important}.v-application .ma-sm-n11{margin:-44px!important}.v-application .ma-sm-n12{margin:-48px!important}.v-application .ma-sm-n13{margin:-52px!important}.v-application .ma-sm-n14{margin:-56px!important}.v-application .ma-sm-n15{margin:-60px!important}.v-application .ma-sm-n16{margin:-64px!important}.v-application .mx-sm-n1{margin-right:-4px!important;margin-left:-4px!important}.v-application .mx-sm-n2{margin-right:-8px!important;margin-left:-8px!important}.v-application .mx-sm-n3{margin-right:-12px!important;margin-left:-12px!important}.v-application .mx-sm-n4{margin-right:-16px!important;margin-left:-16px!important}.v-application .mx-sm-n5{margin-right:-20px!important;margin-left:-20px!important}.v-application .mx-sm-n6{margin-right:-24px!important;margin-left:-24px!important}.v-application .mx-sm-n7{margin-right:-28px!important;margin-left:-28px!important}.v-application .mx-sm-n8{margin-right:-32px!important;margin-left:-32px!important}.v-application .mx-sm-n9{margin-right:-36px!important;margin-left:-36px!important}.v-application .mx-sm-n10{margin-right:-40px!important;margin-left:-40px!important}.v-application .mx-sm-n11{margin-right:-44px!important;margin-left:-44px!important}.v-application .mx-sm-n12{margin-right:-48px!important;margin-left:-48px!important}.v-application .mx-sm-n13{margin-right:-52px!important;margin-left:-52px!important}.v-application .mx-sm-n14{margin-right:-56px!important;margin-left:-56px!important}.v-application .mx-sm-n15{margin-right:-60px!important;margin-left:-60px!important}.v-application .mx-sm-n16{margin-right:-64px!important;margin-left:-64px!important}.v-application .my-sm-n1{margin-top:-4px!important;margin-bottom:-4px!important}.v-application .my-sm-n2{margin-top:-8px!important;margin-bottom:-8px!important}.v-application .my-sm-n3{margin-top:-12px!important;margin-bottom:-12px!important}.v-application .my-sm-n4{margin-top:-16px!important;margin-bottom:-16px!important}.v-application .my-sm-n5{margin-top:-20px!important;margin-bottom:-20px!important}.v-application .my-sm-n6{margin-top:-24px!important;margin-bottom:-24px!important}.v-application .my-sm-n7{margin-top:-28px!important;margin-bottom:-28px!important}.v-application .my-sm-n8{margin-top:-32px!important;margin-bottom:-32px!important}.v-application .my-sm-n9{margin-top:-36px!important;margin-bottom:-36px!important}.v-application .my-sm-n10{margin-top:-40px!important;margin-bottom:-40px!important}.v-application .my-sm-n11{margin-top:-44px!important;margin-bottom:-44px!important}.v-application .my-sm-n12{margin-top:-48px!important;margin-bottom:-48px!important}.v-application .my-sm-n13{margin-top:-52px!important;margin-bottom:-52px!important}.v-application .my-sm-n14{margin-top:-56px!important;margin-bottom:-56px!important}.v-application .my-sm-n15{margin-top:-60px!important;margin-bottom:-60px!important}.v-application .my-sm-n16{margin-top:-64px!important;margin-bottom:-64px!important}.v-application .mt-sm-n1{margin-top:-4px!important}.v-application .mt-sm-n2{margin-top:-8px!important}.v-application .mt-sm-n3{margin-top:-12px!important}.v-application .mt-sm-n4{margin-top:-16px!important}.v-application .mt-sm-n5{margin-top:-20px!important}.v-application .mt-sm-n6{margin-top:-24px!important}.v-application .mt-sm-n7{margin-top:-28px!important}.v-application .mt-sm-n8{margin-top:-32px!important}.v-application .mt-sm-n9{margin-top:-36px!important}.v-application .mt-sm-n10{margin-top:-40px!important}.v-application .mt-sm-n11{margin-top:-44px!important}.v-application .mt-sm-n12{margin-top:-48px!important}.v-application .mt-sm-n13{margin-top:-52px!important}.v-application .mt-sm-n14{margin-top:-56px!important}.v-application .mt-sm-n15{margin-top:-60px!important}.v-application .mt-sm-n16{margin-top:-64px!important}.v-application .mr-sm-n1{margin-right:-4px!important}.v-application .mr-sm-n2{margin-right:-8px!important}.v-application .mr-sm-n3{margin-right:-12px!important}.v-application .mr-sm-n4{margin-right:-16px!important}.v-application .mr-sm-n5{margin-right:-20px!important}.v-application .mr-sm-n6{margin-right:-24px!important}.v-application .mr-sm-n7{margin-right:-28px!important}.v-application .mr-sm-n8{margin-right:-32px!important}.v-application .mr-sm-n9{margin-right:-36px!important}.v-application .mr-sm-n10{margin-right:-40px!important}.v-application .mr-sm-n11{margin-right:-44px!important}.v-application .mr-sm-n12{margin-right:-48px!important}.v-application .mr-sm-n13{margin-right:-52px!important}.v-application .mr-sm-n14{margin-right:-56px!important}.v-application .mr-sm-n15{margin-right:-60px!important}.v-application .mr-sm-n16{margin-right:-64px!important}.v-application .mb-sm-n1{margin-bottom:-4px!important}.v-application .mb-sm-n2{margin-bottom:-8px!important}.v-application .mb-sm-n3{margin-bottom:-12px!important}.v-application .mb-sm-n4{margin-bottom:-16px!important}.v-application .mb-sm-n5{margin-bottom:-20px!important}.v-application .mb-sm-n6{margin-bottom:-24px!important}.v-application .mb-sm-n7{margin-bottom:-28px!important}.v-application .mb-sm-n8{margin-bottom:-32px!important}.v-application .mb-sm-n9{margin-bottom:-36px!important}.v-application .mb-sm-n10{margin-bottom:-40px!important}.v-application .mb-sm-n11{margin-bottom:-44px!important}.v-application .mb-sm-n12{margin-bottom:-48px!important}.v-application .mb-sm-n13{margin-bottom:-52px!important}.v-application .mb-sm-n14{margin-bottom:-56px!important}.v-application .mb-sm-n15{margin-bottom:-60px!important}.v-application .mb-sm-n16{margin-bottom:-64px!important}.v-application .ml-sm-n1{margin-left:-4px!important}.v-application .ml-sm-n2{margin-left:-8px!important}.v-application .ml-sm-n3{margin-left:-12px!important}.v-application .ml-sm-n4{margin-left:-16px!important}.v-application .ml-sm-n5{margin-left:-20px!important}.v-application .ml-sm-n6{margin-left:-24px!important}.v-application .ml-sm-n7{margin-left:-28px!important}.v-application .ml-sm-n8{margin-left:-32px!important}.v-application .ml-sm-n9{margin-left:-36px!important}.v-application .ml-sm-n10{margin-left:-40px!important}.v-application .ml-sm-n11{margin-left:-44px!important}.v-application .ml-sm-n12{margin-left:-48px!important}.v-application .ml-sm-n13{margin-left:-52px!important}.v-application .ml-sm-n14{margin-left:-56px!important}.v-application .ml-sm-n15{margin-left:-60px!important}.v-application .ml-sm-n16{margin-left:-64px!important}.v-application--is-ltr .ms-sm-n1{margin-left:-4px!important}.v-application--is-rtl .ms-sm-n1{margin-right:-4px!important}.v-application--is-ltr .ms-sm-n2{margin-left:-8px!important}.v-application--is-rtl .ms-sm-n2{margin-right:-8px!important}.v-application--is-ltr .ms-sm-n3{margin-left:-12px!important}.v-application--is-rtl .ms-sm-n3{margin-right:-12px!important}.v-application--is-ltr .ms-sm-n4{margin-left:-16px!important}.v-application--is-rtl .ms-sm-n4{margin-right:-16px!important}.v-application--is-ltr .ms-sm-n5{margin-left:-20px!important}.v-application--is-rtl .ms-sm-n5{margin-right:-20px!important}.v-application--is-ltr .ms-sm-n6{margin-left:-24px!important}.v-application--is-rtl .ms-sm-n6{margin-right:-24px!important}.v-application--is-ltr .ms-sm-n7{margin-left:-28px!important}.v-application--is-rtl .ms-sm-n7{margin-right:-28px!important}.v-application--is-ltr .ms-sm-n8{margin-left:-32px!important}.v-application--is-rtl .ms-sm-n8{margin-right:-32px!important}.v-application--is-ltr .ms-sm-n9{margin-left:-36px!important}.v-application--is-rtl .ms-sm-n9{margin-right:-36px!important}.v-application--is-ltr .ms-sm-n10{margin-left:-40px!important}.v-application--is-rtl .ms-sm-n10{margin-right:-40px!important}.v-application--is-ltr .ms-sm-n11{margin-left:-44px!important}.v-application--is-rtl .ms-sm-n11{margin-right:-44px!important}.v-application--is-ltr .ms-sm-n12{margin-left:-48px!important}.v-application--is-rtl .ms-sm-n12{margin-right:-48px!important}.v-application--is-ltr .ms-sm-n13{margin-left:-52px!important}.v-application--is-rtl .ms-sm-n13{margin-right:-52px!important}.v-application--is-ltr .ms-sm-n14{margin-left:-56px!important}.v-application--is-rtl .ms-sm-n14{margin-right:-56px!important}.v-application--is-ltr .ms-sm-n15{margin-left:-60px!important}.v-application--is-rtl .ms-sm-n15{margin-right:-60px!important}.v-application--is-ltr .ms-sm-n16{margin-left:-64px!important}.v-application--is-rtl .ms-sm-n16{margin-right:-64px!important}.v-application--is-ltr .me-sm-n1{margin-right:-4px!important}.v-application--is-rtl .me-sm-n1{margin-left:-4px!important}.v-application--is-ltr .me-sm-n2{margin-right:-8px!important}.v-application--is-rtl .me-sm-n2{margin-left:-8px!important}.v-application--is-ltr .me-sm-n3{margin-right:-12px!important}.v-application--is-rtl .me-sm-n3{margin-left:-12px!important}.v-application--is-ltr .me-sm-n4{margin-right:-16px!important}.v-application--is-rtl .me-sm-n4{margin-left:-16px!important}.v-application--is-ltr .me-sm-n5{margin-right:-20px!important}.v-application--is-rtl .me-sm-n5{margin-left:-20px!important}.v-application--is-ltr .me-sm-n6{margin-right:-24px!important}.v-application--is-rtl .me-sm-n6{margin-left:-24px!important}.v-application--is-ltr .me-sm-n7{margin-right:-28px!important}.v-application--is-rtl .me-sm-n7{margin-left:-28px!important}.v-application--is-ltr .me-sm-n8{margin-right:-32px!important}.v-application--is-rtl .me-sm-n8{margin-left:-32px!important}.v-application--is-ltr .me-sm-n9{margin-right:-36px!important}.v-application--is-rtl .me-sm-n9{margin-left:-36px!important}.v-application--is-ltr .me-sm-n10{margin-right:-40px!important}.v-application--is-rtl .me-sm-n10{margin-left:-40px!important}.v-application--is-ltr .me-sm-n11{margin-right:-44px!important}.v-application--is-rtl .me-sm-n11{margin-left:-44px!important}.v-application--is-ltr .me-sm-n12{margin-right:-48px!important}.v-application--is-rtl .me-sm-n12{margin-left:-48px!important}.v-application--is-ltr .me-sm-n13{margin-right:-52px!important}.v-application--is-rtl .me-sm-n13{margin-left:-52px!important}.v-application--is-ltr .me-sm-n14{margin-right:-56px!important}.v-application--is-rtl .me-sm-n14{margin-left:-56px!important}.v-application--is-ltr .me-sm-n15{margin-right:-60px!important}.v-application--is-rtl .me-sm-n15{margin-left:-60px!important}.v-application--is-ltr .me-sm-n16{margin-right:-64px!important}.v-application--is-rtl .me-sm-n16{margin-left:-64px!important}.v-application .pa-sm-0{padding:0!important}.v-application .pa-sm-1{padding:4px!important}.v-application .pa-sm-2{padding:8px!important}.v-application .pa-sm-3{padding:12px!important}.v-application .pa-sm-4{padding:16px!important}.v-application .pa-sm-5{padding:20px!important}.v-application .pa-sm-6{padding:24px!important}.v-application .pa-sm-7{padding:28px!important}.v-application .pa-sm-8{padding:32px!important}.v-application .pa-sm-9{padding:36px!important}.v-application .pa-sm-10{padding:40px!important}.v-application .pa-sm-11{padding:44px!important}.v-application .pa-sm-12{padding:48px!important}.v-application .pa-sm-13{padding:52px!important}.v-application .pa-sm-14{padding:56px!important}.v-application .pa-sm-15{padding:60px!important}.v-application .pa-sm-16{padding:64px!important}.v-application .px-sm-0{padding-right:0!important;padding-left:0!important}.v-application .px-sm-1{padding-right:4px!important;padding-left:4px!important}.v-application .px-sm-2{padding-right:8px!important;padding-left:8px!important}.v-application .px-sm-3{padding-right:12px!important;padding-left:12px!important}.v-application .px-sm-4{padding-right:16px!important;padding-left:16px!important}.v-application .px-sm-5{padding-right:20px!important;padding-left:20px!important}.v-application .px-sm-6{padding-right:24px!important;padding-left:24px!important}.v-application .px-sm-7{padding-right:28px!important;padding-left:28px!important}.v-application .px-sm-8{padding-right:32px!important;padding-left:32px!important}.v-application .px-sm-9{padding-right:36px!important;padding-left:36px!important}.v-application .px-sm-10{padding-right:40px!important;padding-left:40px!important}.v-application .px-sm-11{padding-right:44px!important;padding-left:44px!important}.v-application .px-sm-12{padding-right:48px!important;padding-left:48px!important}.v-application .px-sm-13{padding-right:52px!important;padding-left:52px!important}.v-application .px-sm-14{padding-right:56px!important;padding-left:56px!important}.v-application .px-sm-15{padding-right:60px!important;padding-left:60px!important}.v-application .px-sm-16{padding-right:64px!important;padding-left:64px!important}.v-application .py-sm-0{padding-top:0!important;padding-bottom:0!important}.v-application .py-sm-1{padding-top:4px!important;padding-bottom:4px!important}.v-application .py-sm-2{padding-top:8px!important;padding-bottom:8px!important}.v-application .py-sm-3{padding-top:12px!important;padding-bottom:12px!important}.v-application .py-sm-4{padding-top:16px!important;padding-bottom:16px!important}.v-application .py-sm-5{padding-top:20px!important;padding-bottom:20px!important}.v-application .py-sm-6{padding-top:24px!important;padding-bottom:24px!important}.v-application .py-sm-7{padding-top:28px!important;padding-bottom:28px!important}.v-application .py-sm-8{padding-top:32px!important;padding-bottom:32px!important}.v-application .py-sm-9{padding-top:36px!important;padding-bottom:36px!important}.v-application .py-sm-10{padding-top:40px!important;padding-bottom:40px!important}.v-application .py-sm-11{padding-top:44px!important;padding-bottom:44px!important}.v-application .py-sm-12{padding-top:48px!important;padding-bottom:48px!important}.v-application .py-sm-13{padding-top:52px!important;padding-bottom:52px!important}.v-application .py-sm-14{padding-top:56px!important;padding-bottom:56px!important}.v-application .py-sm-15{padding-top:60px!important;padding-bottom:60px!important}.v-application .py-sm-16{padding-top:64px!important;padding-bottom:64px!important}.v-application .pt-sm-0{padding-top:0!important}.v-application .pt-sm-1{padding-top:4px!important}.v-application .pt-sm-2{padding-top:8px!important}.v-application .pt-sm-3{padding-top:12px!important}.v-application .pt-sm-4{padding-top:16px!important}.v-application .pt-sm-5{padding-top:20px!important}.v-application .pt-sm-6{padding-top:24px!important}.v-application .pt-sm-7{padding-top:28px!important}.v-application .pt-sm-8{padding-top:32px!important}.v-application .pt-sm-9{padding-top:36px!important}.v-application .pt-sm-10{padding-top:40px!important}.v-application .pt-sm-11{padding-top:44px!important}.v-application .pt-sm-12{padding-top:48px!important}.v-application .pt-sm-13{padding-top:52px!important}.v-application .pt-sm-14{padding-top:56px!important}.v-application .pt-sm-15{padding-top:60px!important}.v-application .pt-sm-16{padding-top:64px!important}.v-application .pr-sm-0{padding-right:0!important}.v-application .pr-sm-1{padding-right:4px!important}.v-application .pr-sm-2{padding-right:8px!important}.v-application .pr-sm-3{padding-right:12px!important}.v-application .pr-sm-4{padding-right:16px!important}.v-application .pr-sm-5{padding-right:20px!important}.v-application .pr-sm-6{padding-right:24px!important}.v-application .pr-sm-7{padding-right:28px!important}.v-application .pr-sm-8{padding-right:32px!important}.v-application .pr-sm-9{padding-right:36px!important}.v-application .pr-sm-10{padding-right:40px!important}.v-application .pr-sm-11{padding-right:44px!important}.v-application .pr-sm-12{padding-right:48px!important}.v-application .pr-sm-13{padding-right:52px!important}.v-application .pr-sm-14{padding-right:56px!important}.v-application .pr-sm-15{padding-right:60px!important}.v-application .pr-sm-16{padding-right:64px!important}.v-application .pb-sm-0{padding-bottom:0!important}.v-application .pb-sm-1{padding-bottom:4px!important}.v-application .pb-sm-2{padding-bottom:8px!important}.v-application .pb-sm-3{padding-bottom:12px!important}.v-application .pb-sm-4{padding-bottom:16px!important}.v-application .pb-sm-5{padding-bottom:20px!important}.v-application .pb-sm-6{padding-bottom:24px!important}.v-application .pb-sm-7{padding-bottom:28px!important}.v-application .pb-sm-8{padding-bottom:32px!important}.v-application .pb-sm-9{padding-bottom:36px!important}.v-application .pb-sm-10{padding-bottom:40px!important}.v-application .pb-sm-11{padding-bottom:44px!important}.v-application .pb-sm-12{padding-bottom:48px!important}.v-application .pb-sm-13{padding-bottom:52px!important}.v-application .pb-sm-14{padding-bottom:56px!important}.v-application .pb-sm-15{padding-bottom:60px!important}.v-application .pb-sm-16{padding-bottom:64px!important}.v-application .pl-sm-0{padding-left:0!important}.v-application .pl-sm-1{padding-left:4px!important}.v-application .pl-sm-2{padding-left:8px!important}.v-application .pl-sm-3{padding-left:12px!important}.v-application .pl-sm-4{padding-left:16px!important}.v-application .pl-sm-5{padding-left:20px!important}.v-application .pl-sm-6{padding-left:24px!important}.v-application .pl-sm-7{padding-left:28px!important}.v-application .pl-sm-8{padding-left:32px!important}.v-application .pl-sm-9{padding-left:36px!important}.v-application .pl-sm-10{padding-left:40px!important}.v-application .pl-sm-11{padding-left:44px!important}.v-application .pl-sm-12{padding-left:48px!important}.v-application .pl-sm-13{padding-left:52px!important}.v-application .pl-sm-14{padding-left:56px!important}.v-application .pl-sm-15{padding-left:60px!important}.v-application .pl-sm-16{padding-left:64px!important}.v-application--is-ltr .ps-sm-0{padding-left:0!important}.v-application--is-rtl .ps-sm-0{padding-right:0!important}.v-application--is-ltr .ps-sm-1{padding-left:4px!important}.v-application--is-rtl .ps-sm-1{padding-right:4px!important}.v-application--is-ltr .ps-sm-2{padding-left:8px!important}.v-application--is-rtl .ps-sm-2{padding-right:8px!important}.v-application--is-ltr .ps-sm-3{padding-left:12px!important}.v-application--is-rtl .ps-sm-3{padding-right:12px!important}.v-application--is-ltr .ps-sm-4{padding-left:16px!important}.v-application--is-rtl .ps-sm-4{padding-right:16px!important}.v-application--is-ltr .ps-sm-5{padding-left:20px!important}.v-application--is-rtl .ps-sm-5{padding-right:20px!important}.v-application--is-ltr .ps-sm-6{padding-left:24px!important}.v-application--is-rtl .ps-sm-6{padding-right:24px!important}.v-application--is-ltr .ps-sm-7{padding-left:28px!important}.v-application--is-rtl .ps-sm-7{padding-right:28px!important}.v-application--is-ltr .ps-sm-8{padding-left:32px!important}.v-application--is-rtl .ps-sm-8{padding-right:32px!important}.v-application--is-ltr .ps-sm-9{padding-left:36px!important}.v-application--is-rtl .ps-sm-9{padding-right:36px!important}.v-application--is-ltr .ps-sm-10{padding-left:40px!important}.v-application--is-rtl .ps-sm-10{padding-right:40px!important}.v-application--is-ltr .ps-sm-11{padding-left:44px!important}.v-application--is-rtl .ps-sm-11{padding-right:44px!important}.v-application--is-ltr .ps-sm-12{padding-left:48px!important}.v-application--is-rtl .ps-sm-12{padding-right:48px!important}.v-application--is-ltr .ps-sm-13{padding-left:52px!important}.v-application--is-rtl .ps-sm-13{padding-right:52px!important}.v-application--is-ltr .ps-sm-14{padding-left:56px!important}.v-application--is-rtl .ps-sm-14{padding-right:56px!important}.v-application--is-ltr .ps-sm-15{padding-left:60px!important}.v-application--is-rtl .ps-sm-15{padding-right:60px!important}.v-application--is-ltr .ps-sm-16{padding-left:64px!important}.v-application--is-rtl .ps-sm-16{padding-right:64px!important}.v-application--is-ltr .pe-sm-0{padding-right:0!important}.v-application--is-rtl .pe-sm-0{padding-left:0!important}.v-application--is-ltr .pe-sm-1{padding-right:4px!important}.v-application--is-rtl .pe-sm-1{padding-left:4px!important}.v-application--is-ltr .pe-sm-2{padding-right:8px!important}.v-application--is-rtl .pe-sm-2{padding-left:8px!important}.v-application--is-ltr .pe-sm-3{padding-right:12px!important}.v-application--is-rtl .pe-sm-3{padding-left:12px!important}.v-application--is-ltr .pe-sm-4{padding-right:16px!important}.v-application--is-rtl .pe-sm-4{padding-left:16px!important}.v-application--is-ltr .pe-sm-5{padding-right:20px!important}.v-application--is-rtl .pe-sm-5{padding-left:20px!important}.v-application--is-ltr .pe-sm-6{padding-right:24px!important}.v-application--is-rtl .pe-sm-6{padding-left:24px!important}.v-application--is-ltr .pe-sm-7{padding-right:28px!important}.v-application--is-rtl .pe-sm-7{padding-left:28px!important}.v-application--is-ltr .pe-sm-8{padding-right:32px!important}.v-application--is-rtl .pe-sm-8{padding-left:32px!important}.v-application--is-ltr .pe-sm-9{padding-right:36px!important}.v-application--is-rtl .pe-sm-9{padding-left:36px!important}.v-application--is-ltr .pe-sm-10{padding-right:40px!important}.v-application--is-rtl .pe-sm-10{padding-left:40px!important}.v-application--is-ltr .pe-sm-11{padding-right:44px!important}.v-application--is-rtl .pe-sm-11{padding-left:44px!important}.v-application--is-ltr .pe-sm-12{padding-right:48px!important}.v-application--is-rtl .pe-sm-12{padding-left:48px!important}.v-application--is-ltr .pe-sm-13{padding-right:52px!important}.v-application--is-rtl .pe-sm-13{padding-left:52px!important}.v-application--is-ltr .pe-sm-14{padding-right:56px!important}.v-application--is-rtl .pe-sm-14{padding-left:56px!important}.v-application--is-ltr .pe-sm-15{padding-right:60px!important}.v-application--is-rtl .pe-sm-15{padding-left:60px!important}.v-application--is-ltr .pe-sm-16{padding-right:64px!important}.v-application--is-rtl .pe-sm-16{padding-left:64px!important}.v-application .text-sm-left{text-align:left!important}.v-application .text-sm-right{text-align:right!important}.v-application .text-sm-center{text-align:center!important}.v-application .text-sm-justify{text-align:justify!important}.v-application .text-sm-start{text-align:start!important}.v-application .text-sm-end{text-align:end!important}.v-application .text-sm-h1{font-size:6rem!important;line-height:6rem;letter-spacing:-.015625em!important}.v-application .text-sm-h1,.v-application .text-sm-h2{font-weight:300;font-family:Roboto,sans-serif!important}.v-application .text-sm-h2{font-size:3.75rem!important;line-height:3.75rem;letter-spacing:-.0083333333em!important}.v-application .text-sm-h3{font-size:3rem!important;line-height:3.125rem;letter-spacing:normal!important}.v-application .text-sm-h3,.v-application .text-sm-h4{font-weight:400;font-family:Roboto,sans-serif!important}.v-application .text-sm-h4{font-size:2.125rem!important;line-height:2.5rem;letter-spacing:.0073529412em!important}.v-application .text-sm-h5{font-size:1.5rem!important;font-weight:400;letter-spacing:normal!important}.v-application .text-sm-h5,.v-application .text-sm-h6{line-height:2rem;font-family:Roboto,sans-serif!important}.v-application .text-sm-h6{font-size:1.25rem!important;font-weight:500;letter-spacing:.0125em!important}.v-application .text-sm-subtitle-1{font-size:1rem!important;font-weight:400;line-height:1.75rem;letter-spacing:.009375em!important;font-family:Roboto,sans-serif!important}.v-application .text-sm-subtitle-2{font-size:.875rem!important;font-weight:500;line-height:1.375rem;letter-spacing:.0071428571em!important;font-family:Roboto,sans-serif!important}.v-application .text-sm-body-1{font-size:1rem!important;font-weight:400;line-height:1.5rem;letter-spacing:.03125em!important;font-family:Roboto,sans-serif!important}.v-application .text-sm-body-2{font-weight:400;line-height:1.25rem;letter-spacing:.0178571429em!important}.v-application .text-sm-body-2,.v-application .text-sm-button{font-size:.875rem!important;font-family:Roboto,sans-serif!important}.v-application .text-sm-button{font-weight:500;line-height:2.25rem;letter-spacing:.0892857143em!important;text-transform:uppercase!important}.v-application .text-sm-caption{font-weight:400;line-height:1.25rem;letter-spacing:.0333333333em!important}.v-application .text-sm-caption,.v-application .text-sm-overline{font-size:.75rem!important;font-family:Roboto,sans-serif!important}.v-application .text-sm-overline{font-weight:500;line-height:2rem;letter-spacing:.1666666667em!important;text-transform:uppercase!important}}@media(min-width:960px){.v-application .d-md-none{display:none!important}.v-application .d-md-inline{display:inline!important}.v-application .d-md-inline-block{display:inline-block!important}.v-application .d-md-block{display:block!important}.v-application .d-md-table{display:table!important}.v-application .d-md-table-row{display:table-row!important}.v-application .d-md-table-cell{display:table-cell!important}.v-application .d-md-flex{display:flex!important}.v-application .d-md-inline-flex{display:inline-flex!important}.v-application .float-md-none{float:none!important}.v-application .float-md-left{float:left!important}.v-application .float-md-right{float:right!important}.v-application .flex-md-fill{flex:1 1 auto!important}.v-application .flex-md-row{flex-direction:row!important}.v-application .flex-md-column{flex-direction:column!important}.v-application .flex-md-row-reverse{flex-direction:row-reverse!important}.v-application .flex-md-column-reverse{flex-direction:column-reverse!important}.v-application .flex-md-grow-0{flex-grow:0!important}.v-application .flex-md-grow-1{flex-grow:1!important}.v-application .flex-md-shrink-0{flex-shrink:0!important}.v-application .flex-md-shrink-1{flex-shrink:1!important}.v-application .flex-md-wrap{flex-wrap:wrap!important}.v-application .flex-md-nowrap{flex-wrap:nowrap!important}.v-application .flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.v-application .justify-md-start{justify-content:flex-start!important}.v-application .justify-md-end{justify-content:flex-end!important}.v-application .justify-md-center{justify-content:center!important}.v-application .justify-md-space-between{justify-content:space-between!important}.v-application .justify-md-space-around{justify-content:space-around!important}.v-application .align-md-start{align-items:flex-start!important}.v-application .align-md-end{align-items:flex-end!important}.v-application .align-md-center{align-items:center!important}.v-application .align-md-baseline{align-items:baseline!important}.v-application .align-md-stretch{align-items:stretch!important}.v-application .align-content-md-start{align-content:flex-start!important}.v-application .align-content-md-end{align-content:flex-end!important}.v-application .align-content-md-center{align-content:center!important}.v-application .align-content-md-space-between{align-content:space-between!important}.v-application .align-content-md-space-around{align-content:space-around!important}.v-application .align-content-md-stretch{align-content:stretch!important}.v-application .align-self-md-auto{align-self:auto!important}.v-application .align-self-md-start{align-self:flex-start!important}.v-application .align-self-md-end{align-self:flex-end!important}.v-application .align-self-md-center{align-self:center!important}.v-application .align-self-md-baseline{align-self:baseline!important}.v-application .align-self-md-stretch{align-self:stretch!important}.v-application .order-md-first{order:-1!important}.v-application .order-md-0{order:0!important}.v-application .order-md-1{order:1!important}.v-application .order-md-2{order:2!important}.v-application .order-md-3{order:3!important}.v-application .order-md-4{order:4!important}.v-application .order-md-5{order:5!important}.v-application .order-md-6{order:6!important}.v-application .order-md-7{order:7!important}.v-application .order-md-8{order:8!important}.v-application .order-md-9{order:9!important}.v-application .order-md-10{order:10!important}.v-application .order-md-11{order:11!important}.v-application .order-md-12{order:12!important}.v-application .order-md-last{order:13!important}.v-application .ma-md-0{margin:0!important}.v-application .ma-md-1{margin:4px!important}.v-application .ma-md-2{margin:8px!important}.v-application .ma-md-3{margin:12px!important}.v-application .ma-md-4{margin:16px!important}.v-application .ma-md-5{margin:20px!important}.v-application .ma-md-6{margin:24px!important}.v-application .ma-md-7{margin:28px!important}.v-application .ma-md-8{margin:32px!important}.v-application .ma-md-9{margin:36px!important}.v-application .ma-md-10{margin:40px!important}.v-application .ma-md-11{margin:44px!important}.v-application .ma-md-12{margin:48px!important}.v-application .ma-md-13{margin:52px!important}.v-application .ma-md-14{margin:56px!important}.v-application .ma-md-15{margin:60px!important}.v-application .ma-md-16{margin:64px!important}.v-application .ma-md-auto{margin:auto!important}.v-application .mx-md-0{margin-right:0!important;margin-left:0!important}.v-application .mx-md-1{margin-right:4px!important;margin-left:4px!important}.v-application .mx-md-2{margin-right:8px!important;margin-left:8px!important}.v-application .mx-md-3{margin-right:12px!important;margin-left:12px!important}.v-application .mx-md-4{margin-right:16px!important;margin-left:16px!important}.v-application .mx-md-5{margin-right:20px!important;margin-left:20px!important}.v-application .mx-md-6{margin-right:24px!important;margin-left:24px!important}.v-application .mx-md-7{margin-right:28px!important;margin-left:28px!important}.v-application .mx-md-8{margin-right:32px!important;margin-left:32px!important}.v-application .mx-md-9{margin-right:36px!important;margin-left:36px!important}.v-application .mx-md-10{margin-right:40px!important;margin-left:40px!important}.v-application .mx-md-11{margin-right:44px!important;margin-left:44px!important}.v-application .mx-md-12{margin-right:48px!important;margin-left:48px!important}.v-application .mx-md-13{margin-right:52px!important;margin-left:52px!important}.v-application .mx-md-14{margin-right:56px!important;margin-left:56px!important}.v-application .mx-md-15{margin-right:60px!important;margin-left:60px!important}.v-application .mx-md-16{margin-right:64px!important;margin-left:64px!important}.v-application .mx-md-auto{margin-right:auto!important;margin-left:auto!important}.v-application .my-md-0{margin-top:0!important;margin-bottom:0!important}.v-application .my-md-1{margin-top:4px!important;margin-bottom:4px!important}.v-application .my-md-2{margin-top:8px!important;margin-bottom:8px!important}.v-application .my-md-3{margin-top:12px!important;margin-bottom:12px!important}.v-application .my-md-4{margin-top:16px!important;margin-bottom:16px!important}.v-application .my-md-5{margin-top:20px!important;margin-bottom:20px!important}.v-application .my-md-6{margin-top:24px!important;margin-bottom:24px!important}.v-application .my-md-7{margin-top:28px!important;margin-bottom:28px!important}.v-application .my-md-8{margin-top:32px!important;margin-bottom:32px!important}.v-application .my-md-9{margin-top:36px!important;margin-bottom:36px!important}.v-application .my-md-10{margin-top:40px!important;margin-bottom:40px!important}.v-application .my-md-11{margin-top:44px!important;margin-bottom:44px!important}.v-application .my-md-12{margin-top:48px!important;margin-bottom:48px!important}.v-application .my-md-13{margin-top:52px!important;margin-bottom:52px!important}.v-application .my-md-14{margin-top:56px!important;margin-bottom:56px!important}.v-application .my-md-15{margin-top:60px!important;margin-bottom:60px!important}.v-application .my-md-16{margin-top:64px!important;margin-bottom:64px!important}.v-application .my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.v-application .mt-md-0{margin-top:0!important}.v-application .mt-md-1{margin-top:4px!important}.v-application .mt-md-2{margin-top:8px!important}.v-application .mt-md-3{margin-top:12px!important}.v-application .mt-md-4{margin-top:16px!important}.v-application .mt-md-5{margin-top:20px!important}.v-application .mt-md-6{margin-top:24px!important}.v-application .mt-md-7{margin-top:28px!important}.v-application .mt-md-8{margin-top:32px!important}.v-application .mt-md-9{margin-top:36px!important}.v-application .mt-md-10{margin-top:40px!important}.v-application .mt-md-11{margin-top:44px!important}.v-application .mt-md-12{margin-top:48px!important}.v-application .mt-md-13{margin-top:52px!important}.v-application .mt-md-14{margin-top:56px!important}.v-application .mt-md-15{margin-top:60px!important}.v-application .mt-md-16{margin-top:64px!important}.v-application .mt-md-auto{margin-top:auto!important}.v-application .mr-md-0{margin-right:0!important}.v-application .mr-md-1{margin-right:4px!important}.v-application .mr-md-2{margin-right:8px!important}.v-application .mr-md-3{margin-right:12px!important}.v-application .mr-md-4{margin-right:16px!important}.v-application .mr-md-5{margin-right:20px!important}.v-application .mr-md-6{margin-right:24px!important}.v-application .mr-md-7{margin-right:28px!important}.v-application .mr-md-8{margin-right:32px!important}.v-application .mr-md-9{margin-right:36px!important}.v-application .mr-md-10{margin-right:40px!important}.v-application .mr-md-11{margin-right:44px!important}.v-application .mr-md-12{margin-right:48px!important}.v-application .mr-md-13{margin-right:52px!important}.v-application .mr-md-14{margin-right:56px!important}.v-application .mr-md-15{margin-right:60px!important}.v-application .mr-md-16{margin-right:64px!important}.v-application .mr-md-auto{margin-right:auto!important}.v-application .mb-md-0{margin-bottom:0!important}.v-application .mb-md-1{margin-bottom:4px!important}.v-application .mb-md-2{margin-bottom:8px!important}.v-application .mb-md-3{margin-bottom:12px!important}.v-application .mb-md-4{margin-bottom:16px!important}.v-application .mb-md-5{margin-bottom:20px!important}.v-application .mb-md-6{margin-bottom:24px!important}.v-application .mb-md-7{margin-bottom:28px!important}.v-application .mb-md-8{margin-bottom:32px!important}.v-application .mb-md-9{margin-bottom:36px!important}.v-application .mb-md-10{margin-bottom:40px!important}.v-application .mb-md-11{margin-bottom:44px!important}.v-application .mb-md-12{margin-bottom:48px!important}.v-application .mb-md-13{margin-bottom:52px!important}.v-application .mb-md-14{margin-bottom:56px!important}.v-application .mb-md-15{margin-bottom:60px!important}.v-application .mb-md-16{margin-bottom:64px!important}.v-application .mb-md-auto{margin-bottom:auto!important}.v-application .ml-md-0{margin-left:0!important}.v-application .ml-md-1{margin-left:4px!important}.v-application .ml-md-2{margin-left:8px!important}.v-application .ml-md-3{margin-left:12px!important}.v-application .ml-md-4{margin-left:16px!important}.v-application .ml-md-5{margin-left:20px!important}.v-application .ml-md-6{margin-left:24px!important}.v-application .ml-md-7{margin-left:28px!important}.v-application .ml-md-8{margin-left:32px!important}.v-application .ml-md-9{margin-left:36px!important}.v-application .ml-md-10{margin-left:40px!important}.v-application .ml-md-11{margin-left:44px!important}.v-application .ml-md-12{margin-left:48px!important}.v-application .ml-md-13{margin-left:52px!important}.v-application .ml-md-14{margin-left:56px!important}.v-application .ml-md-15{margin-left:60px!important}.v-application .ml-md-16{margin-left:64px!important}.v-application .ml-md-auto{margin-left:auto!important}.v-application--is-ltr .ms-md-0{margin-left:0!important}.v-application--is-rtl .ms-md-0{margin-right:0!important}.v-application--is-ltr .ms-md-1{margin-left:4px!important}.v-application--is-rtl .ms-md-1{margin-right:4px!important}.v-application--is-ltr .ms-md-2{margin-left:8px!important}.v-application--is-rtl .ms-md-2{margin-right:8px!important}.v-application--is-ltr .ms-md-3{margin-left:12px!important}.v-application--is-rtl .ms-md-3{margin-right:12px!important}.v-application--is-ltr .ms-md-4{margin-left:16px!important}.v-application--is-rtl .ms-md-4{margin-right:16px!important}.v-application--is-ltr .ms-md-5{margin-left:20px!important}.v-application--is-rtl .ms-md-5{margin-right:20px!important}.v-application--is-ltr .ms-md-6{margin-left:24px!important}.v-application--is-rtl .ms-md-6{margin-right:24px!important}.v-application--is-ltr .ms-md-7{margin-left:28px!important}.v-application--is-rtl .ms-md-7{margin-right:28px!important}.v-application--is-ltr .ms-md-8{margin-left:32px!important}.v-application--is-rtl .ms-md-8{margin-right:32px!important}.v-application--is-ltr .ms-md-9{margin-left:36px!important}.v-application--is-rtl .ms-md-9{margin-right:36px!important}.v-application--is-ltr .ms-md-10{margin-left:40px!important}.v-application--is-rtl .ms-md-10{margin-right:40px!important}.v-application--is-ltr .ms-md-11{margin-left:44px!important}.v-application--is-rtl .ms-md-11{margin-right:44px!important}.v-application--is-ltr .ms-md-12{margin-left:48px!important}.v-application--is-rtl .ms-md-12{margin-right:48px!important}.v-application--is-ltr .ms-md-13{margin-left:52px!important}.v-application--is-rtl .ms-md-13{margin-right:52px!important}.v-application--is-ltr .ms-md-14{margin-left:56px!important}.v-application--is-rtl .ms-md-14{margin-right:56px!important}.v-application--is-ltr .ms-md-15{margin-left:60px!important}.v-application--is-rtl .ms-md-15{margin-right:60px!important}.v-application--is-ltr .ms-md-16{margin-left:64px!important}.v-application--is-rtl .ms-md-16{margin-right:64px!important}.v-application--is-ltr .ms-md-auto{margin-left:auto!important}.v-application--is-rtl .ms-md-auto{margin-right:auto!important}.v-application--is-ltr .me-md-0{margin-right:0!important}.v-application--is-rtl .me-md-0{margin-left:0!important}.v-application--is-ltr .me-md-1{margin-right:4px!important}.v-application--is-rtl .me-md-1{margin-left:4px!important}.v-application--is-ltr .me-md-2{margin-right:8px!important}.v-application--is-rtl .me-md-2{margin-left:8px!important}.v-application--is-ltr .me-md-3{margin-right:12px!important}.v-application--is-rtl .me-md-3{margin-left:12px!important}.v-application--is-ltr .me-md-4{margin-right:16px!important}.v-application--is-rtl .me-md-4{margin-left:16px!important}.v-application--is-ltr .me-md-5{margin-right:20px!important}.v-application--is-rtl .me-md-5{margin-left:20px!important}.v-application--is-ltr .me-md-6{margin-right:24px!important}.v-application--is-rtl .me-md-6{margin-left:24px!important}.v-application--is-ltr .me-md-7{margin-right:28px!important}.v-application--is-rtl .me-md-7{margin-left:28px!important}.v-application--is-ltr .me-md-8{margin-right:32px!important}.v-application--is-rtl .me-md-8{margin-left:32px!important}.v-application--is-ltr .me-md-9{margin-right:36px!important}.v-application--is-rtl .me-md-9{margin-left:36px!important}.v-application--is-ltr .me-md-10{margin-right:40px!important}.v-application--is-rtl .me-md-10{margin-left:40px!important}.v-application--is-ltr .me-md-11{margin-right:44px!important}.v-application--is-rtl .me-md-11{margin-left:44px!important}.v-application--is-ltr .me-md-12{margin-right:48px!important}.v-application--is-rtl .me-md-12{margin-left:48px!important}.v-application--is-ltr .me-md-13{margin-right:52px!important}.v-application--is-rtl .me-md-13{margin-left:52px!important}.v-application--is-ltr .me-md-14{margin-right:56px!important}.v-application--is-rtl .me-md-14{margin-left:56px!important}.v-application--is-ltr .me-md-15{margin-right:60px!important}.v-application--is-rtl .me-md-15{margin-left:60px!important}.v-application--is-ltr .me-md-16{margin-right:64px!important}.v-application--is-rtl .me-md-16{margin-left:64px!important}.v-application--is-ltr .me-md-auto{margin-right:auto!important}.v-application--is-rtl .me-md-auto{margin-left:auto!important}.v-application .ma-md-n1{margin:-4px!important}.v-application .ma-md-n2{margin:-8px!important}.v-application .ma-md-n3{margin:-12px!important}.v-application .ma-md-n4{margin:-16px!important}.v-application .ma-md-n5{margin:-20px!important}.v-application .ma-md-n6{margin:-24px!important}.v-application .ma-md-n7{margin:-28px!important}.v-application .ma-md-n8{margin:-32px!important}.v-application .ma-md-n9{margin:-36px!important}.v-application .ma-md-n10{margin:-40px!important}.v-application .ma-md-n11{margin:-44px!important}.v-application .ma-md-n12{margin:-48px!important}.v-application .ma-md-n13{margin:-52px!important}.v-application .ma-md-n14{margin:-56px!important}.v-application .ma-md-n15{margin:-60px!important}.v-application .ma-md-n16{margin:-64px!important}.v-application .mx-md-n1{margin-right:-4px!important;margin-left:-4px!important}.v-application .mx-md-n2{margin-right:-8px!important;margin-left:-8px!important}.v-application .mx-md-n3{margin-right:-12px!important;margin-left:-12px!important}.v-application .mx-md-n4{margin-right:-16px!important;margin-left:-16px!important}.v-application .mx-md-n5{margin-right:-20px!important;margin-left:-20px!important}.v-application .mx-md-n6{margin-right:-24px!important;margin-left:-24px!important}.v-application .mx-md-n7{margin-right:-28px!important;margin-left:-28px!important}.v-application .mx-md-n8{margin-right:-32px!important;margin-left:-32px!important}.v-application .mx-md-n9{margin-right:-36px!important;margin-left:-36px!important}.v-application .mx-md-n10{margin-right:-40px!important;margin-left:-40px!important}.v-application .mx-md-n11{margin-right:-44px!important;margin-left:-44px!important}.v-application .mx-md-n12{margin-right:-48px!important;margin-left:-48px!important}.v-application .mx-md-n13{margin-right:-52px!important;margin-left:-52px!important}.v-application .mx-md-n14{margin-right:-56px!important;margin-left:-56px!important}.v-application .mx-md-n15{margin-right:-60px!important;margin-left:-60px!important}.v-application .mx-md-n16{margin-right:-64px!important;margin-left:-64px!important}.v-application .my-md-n1{margin-top:-4px!important;margin-bottom:-4px!important}.v-application .my-md-n2{margin-top:-8px!important;margin-bottom:-8px!important}.v-application .my-md-n3{margin-top:-12px!important;margin-bottom:-12px!important}.v-application .my-md-n4{margin-top:-16px!important;margin-bottom:-16px!important}.v-application .my-md-n5{margin-top:-20px!important;margin-bottom:-20px!important}.v-application .my-md-n6{margin-top:-24px!important;margin-bottom:-24px!important}.v-application .my-md-n7{margin-top:-28px!important;margin-bottom:-28px!important}.v-application .my-md-n8{margin-top:-32px!important;margin-bottom:-32px!important}.v-application .my-md-n9{margin-top:-36px!important;margin-bottom:-36px!important}.v-application .my-md-n10{margin-top:-40px!important;margin-bottom:-40px!important}.v-application .my-md-n11{margin-top:-44px!important;margin-bottom:-44px!important}.v-application .my-md-n12{margin-top:-48px!important;margin-bottom:-48px!important}.v-application .my-md-n13{margin-top:-52px!important;margin-bottom:-52px!important}.v-application .my-md-n14{margin-top:-56px!important;margin-bottom:-56px!important}.v-application .my-md-n15{margin-top:-60px!important;margin-bottom:-60px!important}.v-application .my-md-n16{margin-top:-64px!important;margin-bottom:-64px!important}.v-application .mt-md-n1{margin-top:-4px!important}.v-application .mt-md-n2{margin-top:-8px!important}.v-application .mt-md-n3{margin-top:-12px!important}.v-application .mt-md-n4{margin-top:-16px!important}.v-application .mt-md-n5{margin-top:-20px!important}.v-application .mt-md-n6{margin-top:-24px!important}.v-application .mt-md-n7{margin-top:-28px!important}.v-application .mt-md-n8{margin-top:-32px!important}.v-application .mt-md-n9{margin-top:-36px!important}.v-application .mt-md-n10{margin-top:-40px!important}.v-application .mt-md-n11{margin-top:-44px!important}.v-application .mt-md-n12{margin-top:-48px!important}.v-application .mt-md-n13{margin-top:-52px!important}.v-application .mt-md-n14{margin-top:-56px!important}.v-application .mt-md-n15{margin-top:-60px!important}.v-application .mt-md-n16{margin-top:-64px!important}.v-application .mr-md-n1{margin-right:-4px!important}.v-application .mr-md-n2{margin-right:-8px!important}.v-application .mr-md-n3{margin-right:-12px!important}.v-application .mr-md-n4{margin-right:-16px!important}.v-application .mr-md-n5{margin-right:-20px!important}.v-application .mr-md-n6{margin-right:-24px!important}.v-application .mr-md-n7{margin-right:-28px!important}.v-application .mr-md-n8{margin-right:-32px!important}.v-application .mr-md-n9{margin-right:-36px!important}.v-application .mr-md-n10{margin-right:-40px!important}.v-application .mr-md-n11{margin-right:-44px!important}.v-application .mr-md-n12{margin-right:-48px!important}.v-application .mr-md-n13{margin-right:-52px!important}.v-application .mr-md-n14{margin-right:-56px!important}.v-application .mr-md-n15{margin-right:-60px!important}.v-application .mr-md-n16{margin-right:-64px!important}.v-application .mb-md-n1{margin-bottom:-4px!important}.v-application .mb-md-n2{margin-bottom:-8px!important}.v-application .mb-md-n3{margin-bottom:-12px!important}.v-application .mb-md-n4{margin-bottom:-16px!important}.v-application .mb-md-n5{margin-bottom:-20px!important}.v-application .mb-md-n6{margin-bottom:-24px!important}.v-application .mb-md-n7{margin-bottom:-28px!important}.v-application .mb-md-n8{margin-bottom:-32px!important}.v-application .mb-md-n9{margin-bottom:-36px!important}.v-application .mb-md-n10{margin-bottom:-40px!important}.v-application .mb-md-n11{margin-bottom:-44px!important}.v-application .mb-md-n12{margin-bottom:-48px!important}.v-application .mb-md-n13{margin-bottom:-52px!important}.v-application .mb-md-n14{margin-bottom:-56px!important}.v-application .mb-md-n15{margin-bottom:-60px!important}.v-application .mb-md-n16{margin-bottom:-64px!important}.v-application .ml-md-n1{margin-left:-4px!important}.v-application .ml-md-n2{margin-left:-8px!important}.v-application .ml-md-n3{margin-left:-12px!important}.v-application .ml-md-n4{margin-left:-16px!important}.v-application .ml-md-n5{margin-left:-20px!important}.v-application .ml-md-n6{margin-left:-24px!important}.v-application .ml-md-n7{margin-left:-28px!important}.v-application .ml-md-n8{margin-left:-32px!important}.v-application .ml-md-n9{margin-left:-36px!important}.v-application .ml-md-n10{margin-left:-40px!important}.v-application .ml-md-n11{margin-left:-44px!important}.v-application .ml-md-n12{margin-left:-48px!important}.v-application .ml-md-n13{margin-left:-52px!important}.v-application .ml-md-n14{margin-left:-56px!important}.v-application .ml-md-n15{margin-left:-60px!important}.v-application .ml-md-n16{margin-left:-64px!important}.v-application--is-ltr .ms-md-n1{margin-left:-4px!important}.v-application--is-rtl .ms-md-n1{margin-right:-4px!important}.v-application--is-ltr .ms-md-n2{margin-left:-8px!important}.v-application--is-rtl .ms-md-n2{margin-right:-8px!important}.v-application--is-ltr .ms-md-n3{margin-left:-12px!important}.v-application--is-rtl .ms-md-n3{margin-right:-12px!important}.v-application--is-ltr .ms-md-n4{margin-left:-16px!important}.v-application--is-rtl .ms-md-n4{margin-right:-16px!important}.v-application--is-ltr .ms-md-n5{margin-left:-20px!important}.v-application--is-rtl .ms-md-n5{margin-right:-20px!important}.v-application--is-ltr .ms-md-n6{margin-left:-24px!important}.v-application--is-rtl .ms-md-n6{margin-right:-24px!important}.v-application--is-ltr .ms-md-n7{margin-left:-28px!important}.v-application--is-rtl .ms-md-n7{margin-right:-28px!important}.v-application--is-ltr .ms-md-n8{margin-left:-32px!important}.v-application--is-rtl .ms-md-n8{margin-right:-32px!important}.v-application--is-ltr .ms-md-n9{margin-left:-36px!important}.v-application--is-rtl .ms-md-n9{margin-right:-36px!important}.v-application--is-ltr .ms-md-n10{margin-left:-40px!important}.v-application--is-rtl .ms-md-n10{margin-right:-40px!important}.v-application--is-ltr .ms-md-n11{margin-left:-44px!important}.v-application--is-rtl .ms-md-n11{margin-right:-44px!important}.v-application--is-ltr .ms-md-n12{margin-left:-48px!important}.v-application--is-rtl .ms-md-n12{margin-right:-48px!important}.v-application--is-ltr .ms-md-n13{margin-left:-52px!important}.v-application--is-rtl .ms-md-n13{margin-right:-52px!important}.v-application--is-ltr .ms-md-n14{margin-left:-56px!important}.v-application--is-rtl .ms-md-n14{margin-right:-56px!important}.v-application--is-ltr .ms-md-n15{margin-left:-60px!important}.v-application--is-rtl .ms-md-n15{margin-right:-60px!important}.v-application--is-ltr .ms-md-n16{margin-left:-64px!important}.v-application--is-rtl .ms-md-n16{margin-right:-64px!important}.v-application--is-ltr .me-md-n1{margin-right:-4px!important}.v-application--is-rtl .me-md-n1{margin-left:-4px!important}.v-application--is-ltr .me-md-n2{margin-right:-8px!important}.v-application--is-rtl .me-md-n2{margin-left:-8px!important}.v-application--is-ltr .me-md-n3{margin-right:-12px!important}.v-application--is-rtl .me-md-n3{margin-left:-12px!important}.v-application--is-ltr .me-md-n4{margin-right:-16px!important}.v-application--is-rtl .me-md-n4{margin-left:-16px!important}.v-application--is-ltr .me-md-n5{margin-right:-20px!important}.v-application--is-rtl .me-md-n5{margin-left:-20px!important}.v-application--is-ltr .me-md-n6{margin-right:-24px!important}.v-application--is-rtl .me-md-n6{margin-left:-24px!important}.v-application--is-ltr .me-md-n7{margin-right:-28px!important}.v-application--is-rtl .me-md-n7{margin-left:-28px!important}.v-application--is-ltr .me-md-n8{margin-right:-32px!important}.v-application--is-rtl .me-md-n8{margin-left:-32px!important}.v-application--is-ltr .me-md-n9{margin-right:-36px!important}.v-application--is-rtl .me-md-n9{margin-left:-36px!important}.v-application--is-ltr .me-md-n10{margin-right:-40px!important}.v-application--is-rtl .me-md-n10{margin-left:-40px!important}.v-application--is-ltr .me-md-n11{margin-right:-44px!important}.v-application--is-rtl .me-md-n11{margin-left:-44px!important}.v-application--is-ltr .me-md-n12{margin-right:-48px!important}.v-application--is-rtl .me-md-n12{margin-left:-48px!important}.v-application--is-ltr .me-md-n13{margin-right:-52px!important}.v-application--is-rtl .me-md-n13{margin-left:-52px!important}.v-application--is-ltr .me-md-n14{margin-right:-56px!important}.v-application--is-rtl .me-md-n14{margin-left:-56px!important}.v-application--is-ltr .me-md-n15{margin-right:-60px!important}.v-application--is-rtl .me-md-n15{margin-left:-60px!important}.v-application--is-ltr .me-md-n16{margin-right:-64px!important}.v-application--is-rtl .me-md-n16{margin-left:-64px!important}.v-application .pa-md-0{padding:0!important}.v-application .pa-md-1{padding:4px!important}.v-application .pa-md-2{padding:8px!important}.v-application .pa-md-3{padding:12px!important}.v-application .pa-md-4{padding:16px!important}.v-application .pa-md-5{padding:20px!important}.v-application .pa-md-6{padding:24px!important}.v-application .pa-md-7{padding:28px!important}.v-application .pa-md-8{padding:32px!important}.v-application .pa-md-9{padding:36px!important}.v-application .pa-md-10{padding:40px!important}.v-application .pa-md-11{padding:44px!important}.v-application .pa-md-12{padding:48px!important}.v-application .pa-md-13{padding:52px!important}.v-application .pa-md-14{padding:56px!important}.v-application .pa-md-15{padding:60px!important}.v-application .pa-md-16{padding:64px!important}.v-application .px-md-0{padding-right:0!important;padding-left:0!important}.v-application .px-md-1{padding-right:4px!important;padding-left:4px!important}.v-application .px-md-2{padding-right:8px!important;padding-left:8px!important}.v-application .px-md-3{padding-right:12px!important;padding-left:12px!important}.v-application .px-md-4{padding-right:16px!important;padding-left:16px!important}.v-application .px-md-5{padding-right:20px!important;padding-left:20px!important}.v-application .px-md-6{padding-right:24px!important;padding-left:24px!important}.v-application .px-md-7{padding-right:28px!important;padding-left:28px!important}.v-application .px-md-8{padding-right:32px!important;padding-left:32px!important}.v-application .px-md-9{padding-right:36px!important;padding-left:36px!important}.v-application .px-md-10{padding-right:40px!important;padding-left:40px!important}.v-application .px-md-11{padding-right:44px!important;padding-left:44px!important}.v-application .px-md-12{padding-right:48px!important;padding-left:48px!important}.v-application .px-md-13{padding-right:52px!important;padding-left:52px!important}.v-application .px-md-14{padding-right:56px!important;padding-left:56px!important}.v-application .px-md-15{padding-right:60px!important;padding-left:60px!important}.v-application .px-md-16{padding-right:64px!important;padding-left:64px!important}.v-application .py-md-0{padding-top:0!important;padding-bottom:0!important}.v-application .py-md-1{padding-top:4px!important;padding-bottom:4px!important}.v-application .py-md-2{padding-top:8px!important;padding-bottom:8px!important}.v-application .py-md-3{padding-top:12px!important;padding-bottom:12px!important}.v-application .py-md-4{padding-top:16px!important;padding-bottom:16px!important}.v-application .py-md-5{padding-top:20px!important;padding-bottom:20px!important}.v-application .py-md-6{padding-top:24px!important;padding-bottom:24px!important}.v-application .py-md-7{padding-top:28px!important;padding-bottom:28px!important}.v-application .py-md-8{padding-top:32px!important;padding-bottom:32px!important}.v-application .py-md-9{padding-top:36px!important;padding-bottom:36px!important}.v-application .py-md-10{padding-top:40px!important;padding-bottom:40px!important}.v-application .py-md-11{padding-top:44px!important;padding-bottom:44px!important}.v-application .py-md-12{padding-top:48px!important;padding-bottom:48px!important}.v-application .py-md-13{padding-top:52px!important;padding-bottom:52px!important}.v-application .py-md-14{padding-top:56px!important;padding-bottom:56px!important}.v-application .py-md-15{padding-top:60px!important;padding-bottom:60px!important}.v-application .py-md-16{padding-top:64px!important;padding-bottom:64px!important}.v-application .pt-md-0{padding-top:0!important}.v-application .pt-md-1{padding-top:4px!important}.v-application .pt-md-2{padding-top:8px!important}.v-application .pt-md-3{padding-top:12px!important}.v-application .pt-md-4{padding-top:16px!important}.v-application .pt-md-5{padding-top:20px!important}.v-application .pt-md-6{padding-top:24px!important}.v-application .pt-md-7{padding-top:28px!important}.v-application .pt-md-8{padding-top:32px!important}.v-application .pt-md-9{padding-top:36px!important}.v-application .pt-md-10{padding-top:40px!important}.v-application .pt-md-11{padding-top:44px!important}.v-application .pt-md-12{padding-top:48px!important}.v-application .pt-md-13{padding-top:52px!important}.v-application .pt-md-14{padding-top:56px!important}.v-application .pt-md-15{padding-top:60px!important}.v-application .pt-md-16{padding-top:64px!important}.v-application .pr-md-0{padding-right:0!important}.v-application .pr-md-1{padding-right:4px!important}.v-application .pr-md-2{padding-right:8px!important}.v-application .pr-md-3{padding-right:12px!important}.v-application .pr-md-4{padding-right:16px!important}.v-application .pr-md-5{padding-right:20px!important}.v-application .pr-md-6{padding-right:24px!important}.v-application .pr-md-7{padding-right:28px!important}.v-application .pr-md-8{padding-right:32px!important}.v-application .pr-md-9{padding-right:36px!important}.v-application .pr-md-10{padding-right:40px!important}.v-application .pr-md-11{padding-right:44px!important}.v-application .pr-md-12{padding-right:48px!important}.v-application .pr-md-13{padding-right:52px!important}.v-application .pr-md-14{padding-right:56px!important}.v-application .pr-md-15{padding-right:60px!important}.v-application .pr-md-16{padding-right:64px!important}.v-application .pb-md-0{padding-bottom:0!important}.v-application .pb-md-1{padding-bottom:4px!important}.v-application .pb-md-2{padding-bottom:8px!important}.v-application .pb-md-3{padding-bottom:12px!important}.v-application .pb-md-4{padding-bottom:16px!important}.v-application .pb-md-5{padding-bottom:20px!important}.v-application .pb-md-6{padding-bottom:24px!important}.v-application .pb-md-7{padding-bottom:28px!important}.v-application .pb-md-8{padding-bottom:32px!important}.v-application .pb-md-9{padding-bottom:36px!important}.v-application .pb-md-10{padding-bottom:40px!important}.v-application .pb-md-11{padding-bottom:44px!important}.v-application .pb-md-12{padding-bottom:48px!important}.v-application .pb-md-13{padding-bottom:52px!important}.v-application .pb-md-14{padding-bottom:56px!important}.v-application .pb-md-15{padding-bottom:60px!important}.v-application .pb-md-16{padding-bottom:64px!important}.v-application .pl-md-0{padding-left:0!important}.v-application .pl-md-1{padding-left:4px!important}.v-application .pl-md-2{padding-left:8px!important}.v-application .pl-md-3{padding-left:12px!important}.v-application .pl-md-4{padding-left:16px!important}.v-application .pl-md-5{padding-left:20px!important}.v-application .pl-md-6{padding-left:24px!important}.v-application .pl-md-7{padding-left:28px!important}.v-application .pl-md-8{padding-left:32px!important}.v-application .pl-md-9{padding-left:36px!important}.v-application .pl-md-10{padding-left:40px!important}.v-application .pl-md-11{padding-left:44px!important}.v-application .pl-md-12{padding-left:48px!important}.v-application .pl-md-13{padding-left:52px!important}.v-application .pl-md-14{padding-left:56px!important}.v-application .pl-md-15{padding-left:60px!important}.v-application .pl-md-16{padding-left:64px!important}.v-application--is-ltr .ps-md-0{padding-left:0!important}.v-application--is-rtl .ps-md-0{padding-right:0!important}.v-application--is-ltr .ps-md-1{padding-left:4px!important}.v-application--is-rtl .ps-md-1{padding-right:4px!important}.v-application--is-ltr .ps-md-2{padding-left:8px!important}.v-application--is-rtl .ps-md-2{padding-right:8px!important}.v-application--is-ltr .ps-md-3{padding-left:12px!important}.v-application--is-rtl .ps-md-3{padding-right:12px!important}.v-application--is-ltr .ps-md-4{padding-left:16px!important}.v-application--is-rtl .ps-md-4{padding-right:16px!important}.v-application--is-ltr .ps-md-5{padding-left:20px!important}.v-application--is-rtl .ps-md-5{padding-right:20px!important}.v-application--is-ltr .ps-md-6{padding-left:24px!important}.v-application--is-rtl .ps-md-6{padding-right:24px!important}.v-application--is-ltr .ps-md-7{padding-left:28px!important}.v-application--is-rtl .ps-md-7{padding-right:28px!important}.v-application--is-ltr .ps-md-8{padding-left:32px!important}.v-application--is-rtl .ps-md-8{padding-right:32px!important}.v-application--is-ltr .ps-md-9{padding-left:36px!important}.v-application--is-rtl .ps-md-9{padding-right:36px!important}.v-application--is-ltr .ps-md-10{padding-left:40px!important}.v-application--is-rtl .ps-md-10{padding-right:40px!important}.v-application--is-ltr .ps-md-11{padding-left:44px!important}.v-application--is-rtl .ps-md-11{padding-right:44px!important}.v-application--is-ltr .ps-md-12{padding-left:48px!important}.v-application--is-rtl .ps-md-12{padding-right:48px!important}.v-application--is-ltr .ps-md-13{padding-left:52px!important}.v-application--is-rtl .ps-md-13{padding-right:52px!important}.v-application--is-ltr .ps-md-14{padding-left:56px!important}.v-application--is-rtl .ps-md-14{padding-right:56px!important}.v-application--is-ltr .ps-md-15{padding-left:60px!important}.v-application--is-rtl .ps-md-15{padding-right:60px!important}.v-application--is-ltr .ps-md-16{padding-left:64px!important}.v-application--is-rtl .ps-md-16{padding-right:64px!important}.v-application--is-ltr .pe-md-0{padding-right:0!important}.v-application--is-rtl .pe-md-0{padding-left:0!important}.v-application--is-ltr .pe-md-1{padding-right:4px!important}.v-application--is-rtl .pe-md-1{padding-left:4px!important}.v-application--is-ltr .pe-md-2{padding-right:8px!important}.v-application--is-rtl .pe-md-2{padding-left:8px!important}.v-application--is-ltr .pe-md-3{padding-right:12px!important}.v-application--is-rtl .pe-md-3{padding-left:12px!important}.v-application--is-ltr .pe-md-4{padding-right:16px!important}.v-application--is-rtl .pe-md-4{padding-left:16px!important}.v-application--is-ltr .pe-md-5{padding-right:20px!important}.v-application--is-rtl .pe-md-5{padding-left:20px!important}.v-application--is-ltr .pe-md-6{padding-right:24px!important}.v-application--is-rtl .pe-md-6{padding-left:24px!important}.v-application--is-ltr .pe-md-7{padding-right:28px!important}.v-application--is-rtl .pe-md-7{padding-left:28px!important}.v-application--is-ltr .pe-md-8{padding-right:32px!important}.v-application--is-rtl .pe-md-8{padding-left:32px!important}.v-application--is-ltr .pe-md-9{padding-right:36px!important}.v-application--is-rtl .pe-md-9{padding-left:36px!important}.v-application--is-ltr .pe-md-10{padding-right:40px!important}.v-application--is-rtl .pe-md-10{padding-left:40px!important}.v-application--is-ltr .pe-md-11{padding-right:44px!important}.v-application--is-rtl .pe-md-11{padding-left:44px!important}.v-application--is-ltr .pe-md-12{padding-right:48px!important}.v-application--is-rtl .pe-md-12{padding-left:48px!important}.v-application--is-ltr .pe-md-13{padding-right:52px!important}.v-application--is-rtl .pe-md-13{padding-left:52px!important}.v-application--is-ltr .pe-md-14{padding-right:56px!important}.v-application--is-rtl .pe-md-14{padding-left:56px!important}.v-application--is-ltr .pe-md-15{padding-right:60px!important}.v-application--is-rtl .pe-md-15{padding-left:60px!important}.v-application--is-ltr .pe-md-16{padding-right:64px!important}.v-application--is-rtl .pe-md-16{padding-left:64px!important}.v-application .text-md-left{text-align:left!important}.v-application .text-md-right{text-align:right!important}.v-application .text-md-center{text-align:center!important}.v-application .text-md-justify{text-align:justify!important}.v-application .text-md-start{text-align:start!important}.v-application .text-md-end{text-align:end!important}.v-application .text-md-h1{font-size:6rem!important;line-height:6rem;letter-spacing:-.015625em!important}.v-application .text-md-h1,.v-application .text-md-h2{font-weight:300;font-family:Roboto,sans-serif!important}.v-application .text-md-h2{font-size:3.75rem!important;line-height:3.75rem;letter-spacing:-.0083333333em!important}.v-application .text-md-h3{font-size:3rem!important;line-height:3.125rem;letter-spacing:normal!important}.v-application .text-md-h3,.v-application .text-md-h4{font-weight:400;font-family:Roboto,sans-serif!important}.v-application .text-md-h4{font-size:2.125rem!important;line-height:2.5rem;letter-spacing:.0073529412em!important}.v-application .text-md-h5{font-size:1.5rem!important;font-weight:400;letter-spacing:normal!important}.v-application .text-md-h5,.v-application .text-md-h6{line-height:2rem;font-family:Roboto,sans-serif!important}.v-application .text-md-h6{font-size:1.25rem!important;font-weight:500;letter-spacing:.0125em!important}.v-application .text-md-subtitle-1{font-size:1rem!important;font-weight:400;line-height:1.75rem;letter-spacing:.009375em!important;font-family:Roboto,sans-serif!important}.v-application .text-md-subtitle-2{font-size:.875rem!important;font-weight:500;line-height:1.375rem;letter-spacing:.0071428571em!important;font-family:Roboto,sans-serif!important}.v-application .text-md-body-1{font-size:1rem!important;font-weight:400;line-height:1.5rem;letter-spacing:.03125em!important;font-family:Roboto,sans-serif!important}.v-application .text-md-body-2{font-weight:400;line-height:1.25rem;letter-spacing:.0178571429em!important}.v-application .text-md-body-2,.v-application .text-md-button{font-size:.875rem!important;font-family:Roboto,sans-serif!important}.v-application .text-md-button{font-weight:500;line-height:2.25rem;letter-spacing:.0892857143em!important;text-transform:uppercase!important}.v-application .text-md-caption{font-weight:400;line-height:1.25rem;letter-spacing:.0333333333em!important}.v-application .text-md-caption,.v-application .text-md-overline{font-size:.75rem!important;font-family:Roboto,sans-serif!important}.v-application .text-md-overline{font-weight:500;line-height:2rem;letter-spacing:.1666666667em!important;text-transform:uppercase!important}}@media(min-width:1264px){.v-application .d-lg-none{display:none!important}.v-application .d-lg-inline{display:inline!important}.v-application .d-lg-inline-block{display:inline-block!important}.v-application .d-lg-block{display:block!important}.v-application .d-lg-table{display:table!important}.v-application .d-lg-table-row{display:table-row!important}.v-application .d-lg-table-cell{display:table-cell!important}.v-application .d-lg-flex{display:flex!important}.v-application .d-lg-inline-flex{display:inline-flex!important}.v-application .float-lg-none{float:none!important}.v-application .float-lg-left{float:left!important}.v-application .float-lg-right{float:right!important}.v-application .flex-lg-fill{flex:1 1 auto!important}.v-application .flex-lg-row{flex-direction:row!important}.v-application .flex-lg-column{flex-direction:column!important}.v-application .flex-lg-row-reverse{flex-direction:row-reverse!important}.v-application .flex-lg-column-reverse{flex-direction:column-reverse!important}.v-application .flex-lg-grow-0{flex-grow:0!important}.v-application .flex-lg-grow-1{flex-grow:1!important}.v-application .flex-lg-shrink-0{flex-shrink:0!important}.v-application .flex-lg-shrink-1{flex-shrink:1!important}.v-application .flex-lg-wrap{flex-wrap:wrap!important}.v-application .flex-lg-nowrap{flex-wrap:nowrap!important}.v-application .flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.v-application .justify-lg-start{justify-content:flex-start!important}.v-application .justify-lg-end{justify-content:flex-end!important}.v-application .justify-lg-center{justify-content:center!important}.v-application .justify-lg-space-between{justify-content:space-between!important}.v-application .justify-lg-space-around{justify-content:space-around!important}.v-application .align-lg-start{align-items:flex-start!important}.v-application .align-lg-end{align-items:flex-end!important}.v-application .align-lg-center{align-items:center!important}.v-application .align-lg-baseline{align-items:baseline!important}.v-application .align-lg-stretch{align-items:stretch!important}.v-application .align-content-lg-start{align-content:flex-start!important}.v-application .align-content-lg-end{align-content:flex-end!important}.v-application .align-content-lg-center{align-content:center!important}.v-application .align-content-lg-space-between{align-content:space-between!important}.v-application .align-content-lg-space-around{align-content:space-around!important}.v-application .align-content-lg-stretch{align-content:stretch!important}.v-application .align-self-lg-auto{align-self:auto!important}.v-application .align-self-lg-start{align-self:flex-start!important}.v-application .align-self-lg-end{align-self:flex-end!important}.v-application .align-self-lg-center{align-self:center!important}.v-application .align-self-lg-baseline{align-self:baseline!important}.v-application .align-self-lg-stretch{align-self:stretch!important}.v-application .order-lg-first{order:-1!important}.v-application .order-lg-0{order:0!important}.v-application .order-lg-1{order:1!important}.v-application .order-lg-2{order:2!important}.v-application .order-lg-3{order:3!important}.v-application .order-lg-4{order:4!important}.v-application .order-lg-5{order:5!important}.v-application .order-lg-6{order:6!important}.v-application .order-lg-7{order:7!important}.v-application .order-lg-8{order:8!important}.v-application .order-lg-9{order:9!important}.v-application .order-lg-10{order:10!important}.v-application .order-lg-11{order:11!important}.v-application .order-lg-12{order:12!important}.v-application .order-lg-last{order:13!important}.v-application .ma-lg-0{margin:0!important}.v-application .ma-lg-1{margin:4px!important}.v-application .ma-lg-2{margin:8px!important}.v-application .ma-lg-3{margin:12px!important}.v-application .ma-lg-4{margin:16px!important}.v-application .ma-lg-5{margin:20px!important}.v-application .ma-lg-6{margin:24px!important}.v-application .ma-lg-7{margin:28px!important}.v-application .ma-lg-8{margin:32px!important}.v-application .ma-lg-9{margin:36px!important}.v-application .ma-lg-10{margin:40px!important}.v-application .ma-lg-11{margin:44px!important}.v-application .ma-lg-12{margin:48px!important}.v-application .ma-lg-13{margin:52px!important}.v-application .ma-lg-14{margin:56px!important}.v-application .ma-lg-15{margin:60px!important}.v-application .ma-lg-16{margin:64px!important}.v-application .ma-lg-auto{margin:auto!important}.v-application .mx-lg-0{margin-right:0!important;margin-left:0!important}.v-application .mx-lg-1{margin-right:4px!important;margin-left:4px!important}.v-application .mx-lg-2{margin-right:8px!important;margin-left:8px!important}.v-application .mx-lg-3{margin-right:12px!important;margin-left:12px!important}.v-application .mx-lg-4{margin-right:16px!important;margin-left:16px!important}.v-application .mx-lg-5{margin-right:20px!important;margin-left:20px!important}.v-application .mx-lg-6{margin-right:24px!important;margin-left:24px!important}.v-application .mx-lg-7{margin-right:28px!important;margin-left:28px!important}.v-application .mx-lg-8{margin-right:32px!important;margin-left:32px!important}.v-application .mx-lg-9{margin-right:36px!important;margin-left:36px!important}.v-application .mx-lg-10{margin-right:40px!important;margin-left:40px!important}.v-application .mx-lg-11{margin-right:44px!important;margin-left:44px!important}.v-application .mx-lg-12{margin-right:48px!important;margin-left:48px!important}.v-application .mx-lg-13{margin-right:52px!important;margin-left:52px!important}.v-application .mx-lg-14{margin-right:56px!important;margin-left:56px!important}.v-application .mx-lg-15{margin-right:60px!important;margin-left:60px!important}.v-application .mx-lg-16{margin-right:64px!important;margin-left:64px!important}.v-application .mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.v-application .my-lg-0{margin-top:0!important;margin-bottom:0!important}.v-application .my-lg-1{margin-top:4px!important;margin-bottom:4px!important}.v-application .my-lg-2{margin-top:8px!important;margin-bottom:8px!important}.v-application .my-lg-3{margin-top:12px!important;margin-bottom:12px!important}.v-application .my-lg-4{margin-top:16px!important;margin-bottom:16px!important}.v-application .my-lg-5{margin-top:20px!important;margin-bottom:20px!important}.v-application .my-lg-6{margin-top:24px!important;margin-bottom:24px!important}.v-application .my-lg-7{margin-top:28px!important;margin-bottom:28px!important}.v-application .my-lg-8{margin-top:32px!important;margin-bottom:32px!important}.v-application .my-lg-9{margin-top:36px!important;margin-bottom:36px!important}.v-application .my-lg-10{margin-top:40px!important;margin-bottom:40px!important}.v-application .my-lg-11{margin-top:44px!important;margin-bottom:44px!important}.v-application .my-lg-12{margin-top:48px!important;margin-bottom:48px!important}.v-application .my-lg-13{margin-top:52px!important;margin-bottom:52px!important}.v-application .my-lg-14{margin-top:56px!important;margin-bottom:56px!important}.v-application .my-lg-15{margin-top:60px!important;margin-bottom:60px!important}.v-application .my-lg-16{margin-top:64px!important;margin-bottom:64px!important}.v-application .my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.v-application .mt-lg-0{margin-top:0!important}.v-application .mt-lg-1{margin-top:4px!important}.v-application .mt-lg-2{margin-top:8px!important}.v-application .mt-lg-3{margin-top:12px!important}.v-application .mt-lg-4{margin-top:16px!important}.v-application .mt-lg-5{margin-top:20px!important}.v-application .mt-lg-6{margin-top:24px!important}.v-application .mt-lg-7{margin-top:28px!important}.v-application .mt-lg-8{margin-top:32px!important}.v-application .mt-lg-9{margin-top:36px!important}.v-application .mt-lg-10{margin-top:40px!important}.v-application .mt-lg-11{margin-top:44px!important}.v-application .mt-lg-12{margin-top:48px!important}.v-application .mt-lg-13{margin-top:52px!important}.v-application .mt-lg-14{margin-top:56px!important}.v-application .mt-lg-15{margin-top:60px!important}.v-application .mt-lg-16{margin-top:64px!important}.v-application .mt-lg-auto{margin-top:auto!important}.v-application .mr-lg-0{margin-right:0!important}.v-application .mr-lg-1{margin-right:4px!important}.v-application .mr-lg-2{margin-right:8px!important}.v-application .mr-lg-3{margin-right:12px!important}.v-application .mr-lg-4{margin-right:16px!important}.v-application .mr-lg-5{margin-right:20px!important}.v-application .mr-lg-6{margin-right:24px!important}.v-application .mr-lg-7{margin-right:28px!important}.v-application .mr-lg-8{margin-right:32px!important}.v-application .mr-lg-9{margin-right:36px!important}.v-application .mr-lg-10{margin-right:40px!important}.v-application .mr-lg-11{margin-right:44px!important}.v-application .mr-lg-12{margin-right:48px!important}.v-application .mr-lg-13{margin-right:52px!important}.v-application .mr-lg-14{margin-right:56px!important}.v-application .mr-lg-15{margin-right:60px!important}.v-application .mr-lg-16{margin-right:64px!important}.v-application .mr-lg-auto{margin-right:auto!important}.v-application .mb-lg-0{margin-bottom:0!important}.v-application .mb-lg-1{margin-bottom:4px!important}.v-application .mb-lg-2{margin-bottom:8px!important}.v-application .mb-lg-3{margin-bottom:12px!important}.v-application .mb-lg-4{margin-bottom:16px!important}.v-application .mb-lg-5{margin-bottom:20px!important}.v-application .mb-lg-6{margin-bottom:24px!important}.v-application .mb-lg-7{margin-bottom:28px!important}.v-application .mb-lg-8{margin-bottom:32px!important}.v-application .mb-lg-9{margin-bottom:36px!important}.v-application .mb-lg-10{margin-bottom:40px!important}.v-application .mb-lg-11{margin-bottom:44px!important}.v-application .mb-lg-12{margin-bottom:48px!important}.v-application .mb-lg-13{margin-bottom:52px!important}.v-application .mb-lg-14{margin-bottom:56px!important}.v-application .mb-lg-15{margin-bottom:60px!important}.v-application .mb-lg-16{margin-bottom:64px!important}.v-application .mb-lg-auto{margin-bottom:auto!important}.v-application .ml-lg-0{margin-left:0!important}.v-application .ml-lg-1{margin-left:4px!important}.v-application .ml-lg-2{margin-left:8px!important}.v-application .ml-lg-3{margin-left:12px!important}.v-application .ml-lg-4{margin-left:16px!important}.v-application .ml-lg-5{margin-left:20px!important}.v-application .ml-lg-6{margin-left:24px!important}.v-application .ml-lg-7{margin-left:28px!important}.v-application .ml-lg-8{margin-left:32px!important}.v-application .ml-lg-9{margin-left:36px!important}.v-application .ml-lg-10{margin-left:40px!important}.v-application .ml-lg-11{margin-left:44px!important}.v-application .ml-lg-12{margin-left:48px!important}.v-application .ml-lg-13{margin-left:52px!important}.v-application .ml-lg-14{margin-left:56px!important}.v-application .ml-lg-15{margin-left:60px!important}.v-application .ml-lg-16{margin-left:64px!important}.v-application .ml-lg-auto{margin-left:auto!important}.v-application--is-ltr .ms-lg-0{margin-left:0!important}.v-application--is-rtl .ms-lg-0{margin-right:0!important}.v-application--is-ltr .ms-lg-1{margin-left:4px!important}.v-application--is-rtl .ms-lg-1{margin-right:4px!important}.v-application--is-ltr .ms-lg-2{margin-left:8px!important}.v-application--is-rtl .ms-lg-2{margin-right:8px!important}.v-application--is-ltr .ms-lg-3{margin-left:12px!important}.v-application--is-rtl .ms-lg-3{margin-right:12px!important}.v-application--is-ltr .ms-lg-4{margin-left:16px!important}.v-application--is-rtl .ms-lg-4{margin-right:16px!important}.v-application--is-ltr .ms-lg-5{margin-left:20px!important}.v-application--is-rtl .ms-lg-5{margin-right:20px!important}.v-application--is-ltr .ms-lg-6{margin-left:24px!important}.v-application--is-rtl .ms-lg-6{margin-right:24px!important}.v-application--is-ltr .ms-lg-7{margin-left:28px!important}.v-application--is-rtl .ms-lg-7{margin-right:28px!important}.v-application--is-ltr .ms-lg-8{margin-left:32px!important}.v-application--is-rtl .ms-lg-8{margin-right:32px!important}.v-application--is-ltr .ms-lg-9{margin-left:36px!important}.v-application--is-rtl .ms-lg-9{margin-right:36px!important}.v-application--is-ltr .ms-lg-10{margin-left:40px!important}.v-application--is-rtl .ms-lg-10{margin-right:40px!important}.v-application--is-ltr .ms-lg-11{margin-left:44px!important}.v-application--is-rtl .ms-lg-11{margin-right:44px!important}.v-application--is-ltr .ms-lg-12{margin-left:48px!important}.v-application--is-rtl .ms-lg-12{margin-right:48px!important}.v-application--is-ltr .ms-lg-13{margin-left:52px!important}.v-application--is-rtl .ms-lg-13{margin-right:52px!important}.v-application--is-ltr .ms-lg-14{margin-left:56px!important}.v-application--is-rtl .ms-lg-14{margin-right:56px!important}.v-application--is-ltr .ms-lg-15{margin-left:60px!important}.v-application--is-rtl .ms-lg-15{margin-right:60px!important}.v-application--is-ltr .ms-lg-16{margin-left:64px!important}.v-application--is-rtl .ms-lg-16{margin-right:64px!important}.v-application--is-ltr .ms-lg-auto{margin-left:auto!important}.v-application--is-rtl .ms-lg-auto{margin-right:auto!important}.v-application--is-ltr .me-lg-0{margin-right:0!important}.v-application--is-rtl .me-lg-0{margin-left:0!important}.v-application--is-ltr .me-lg-1{margin-right:4px!important}.v-application--is-rtl .me-lg-1{margin-left:4px!important}.v-application--is-ltr .me-lg-2{margin-right:8px!important}.v-application--is-rtl .me-lg-2{margin-left:8px!important}.v-application--is-ltr .me-lg-3{margin-right:12px!important}.v-application--is-rtl .me-lg-3{margin-left:12px!important}.v-application--is-ltr .me-lg-4{margin-right:16px!important}.v-application--is-rtl .me-lg-4{margin-left:16px!important}.v-application--is-ltr .me-lg-5{margin-right:20px!important}.v-application--is-rtl .me-lg-5{margin-left:20px!important}.v-application--is-ltr .me-lg-6{margin-right:24px!important}.v-application--is-rtl .me-lg-6{margin-left:24px!important}.v-application--is-ltr .me-lg-7{margin-right:28px!important}.v-application--is-rtl .me-lg-7{margin-left:28px!important}.v-application--is-ltr .me-lg-8{margin-right:32px!important}.v-application--is-rtl .me-lg-8{margin-left:32px!important}.v-application--is-ltr .me-lg-9{margin-right:36px!important}.v-application--is-rtl .me-lg-9{margin-left:36px!important}.v-application--is-ltr .me-lg-10{margin-right:40px!important}.v-application--is-rtl .me-lg-10{margin-left:40px!important}.v-application--is-ltr .me-lg-11{margin-right:44px!important}.v-application--is-rtl .me-lg-11{margin-left:44px!important}.v-application--is-ltr .me-lg-12{margin-right:48px!important}.v-application--is-rtl .me-lg-12{margin-left:48px!important}.v-application--is-ltr .me-lg-13{margin-right:52px!important}.v-application--is-rtl .me-lg-13{margin-left:52px!important}.v-application--is-ltr .me-lg-14{margin-right:56px!important}.v-application--is-rtl .me-lg-14{margin-left:56px!important}.v-application--is-ltr .me-lg-15{margin-right:60px!important}.v-application--is-rtl .me-lg-15{margin-left:60px!important}.v-application--is-ltr .me-lg-16{margin-right:64px!important}.v-application--is-rtl .me-lg-16{margin-left:64px!important}.v-application--is-ltr .me-lg-auto{margin-right:auto!important}.v-application--is-rtl .me-lg-auto{margin-left:auto!important}.v-application .ma-lg-n1{margin:-4px!important}.v-application .ma-lg-n2{margin:-8px!important}.v-application .ma-lg-n3{margin:-12px!important}.v-application .ma-lg-n4{margin:-16px!important}.v-application .ma-lg-n5{margin:-20px!important}.v-application .ma-lg-n6{margin:-24px!important}.v-application .ma-lg-n7{margin:-28px!important}.v-application .ma-lg-n8{margin:-32px!important}.v-application .ma-lg-n9{margin:-36px!important}.v-application .ma-lg-n10{margin:-40px!important}.v-application .ma-lg-n11{margin:-44px!important}.v-application .ma-lg-n12{margin:-48px!important}.v-application .ma-lg-n13{margin:-52px!important}.v-application .ma-lg-n14{margin:-56px!important}.v-application .ma-lg-n15{margin:-60px!important}.v-application .ma-lg-n16{margin:-64px!important}.v-application .mx-lg-n1{margin-right:-4px!important;margin-left:-4px!important}.v-application .mx-lg-n2{margin-right:-8px!important;margin-left:-8px!important}.v-application .mx-lg-n3{margin-right:-12px!important;margin-left:-12px!important}.v-application .mx-lg-n4{margin-right:-16px!important;margin-left:-16px!important}.v-application .mx-lg-n5{margin-right:-20px!important;margin-left:-20px!important}.v-application .mx-lg-n6{margin-right:-24px!important;margin-left:-24px!important}.v-application .mx-lg-n7{margin-right:-28px!important;margin-left:-28px!important}.v-application .mx-lg-n8{margin-right:-32px!important;margin-left:-32px!important}.v-application .mx-lg-n9{margin-right:-36px!important;margin-left:-36px!important}.v-application .mx-lg-n10{margin-right:-40px!important;margin-left:-40px!important}.v-application .mx-lg-n11{margin-right:-44px!important;margin-left:-44px!important}.v-application .mx-lg-n12{margin-right:-48px!important;margin-left:-48px!important}.v-application .mx-lg-n13{margin-right:-52px!important;margin-left:-52px!important}.v-application .mx-lg-n14{margin-right:-56px!important;margin-left:-56px!important}.v-application .mx-lg-n15{margin-right:-60px!important;margin-left:-60px!important}.v-application .mx-lg-n16{margin-right:-64px!important;margin-left:-64px!important}.v-application .my-lg-n1{margin-top:-4px!important;margin-bottom:-4px!important}.v-application .my-lg-n2{margin-top:-8px!important;margin-bottom:-8px!important}.v-application .my-lg-n3{margin-top:-12px!important;margin-bottom:-12px!important}.v-application .my-lg-n4{margin-top:-16px!important;margin-bottom:-16px!important}.v-application .my-lg-n5{margin-top:-20px!important;margin-bottom:-20px!important}.v-application .my-lg-n6{margin-top:-24px!important;margin-bottom:-24px!important}.v-application .my-lg-n7{margin-top:-28px!important;margin-bottom:-28px!important}.v-application .my-lg-n8{margin-top:-32px!important;margin-bottom:-32px!important}.v-application .my-lg-n9{margin-top:-36px!important;margin-bottom:-36px!important}.v-application .my-lg-n10{margin-top:-40px!important;margin-bottom:-40px!important}.v-application .my-lg-n11{margin-top:-44px!important;margin-bottom:-44px!important}.v-application .my-lg-n12{margin-top:-48px!important;margin-bottom:-48px!important}.v-application .my-lg-n13{margin-top:-52px!important;margin-bottom:-52px!important}.v-application .my-lg-n14{margin-top:-56px!important;margin-bottom:-56px!important}.v-application .my-lg-n15{margin-top:-60px!important;margin-bottom:-60px!important}.v-application .my-lg-n16{margin-top:-64px!important;margin-bottom:-64px!important}.v-application .mt-lg-n1{margin-top:-4px!important}.v-application .mt-lg-n2{margin-top:-8px!important}.v-application .mt-lg-n3{margin-top:-12px!important}.v-application .mt-lg-n4{margin-top:-16px!important}.v-application .mt-lg-n5{margin-top:-20px!important}.v-application .mt-lg-n6{margin-top:-24px!important}.v-application .mt-lg-n7{margin-top:-28px!important}.v-application .mt-lg-n8{margin-top:-32px!important}.v-application .mt-lg-n9{margin-top:-36px!important}.v-application .mt-lg-n10{margin-top:-40px!important}.v-application .mt-lg-n11{margin-top:-44px!important}.v-application .mt-lg-n12{margin-top:-48px!important}.v-application .mt-lg-n13{margin-top:-52px!important}.v-application .mt-lg-n14{margin-top:-56px!important}.v-application .mt-lg-n15{margin-top:-60px!important}.v-application .mt-lg-n16{margin-top:-64px!important}.v-application .mr-lg-n1{margin-right:-4px!important}.v-application .mr-lg-n2{margin-right:-8px!important}.v-application .mr-lg-n3{margin-right:-12px!important}.v-application .mr-lg-n4{margin-right:-16px!important}.v-application .mr-lg-n5{margin-right:-20px!important}.v-application .mr-lg-n6{margin-right:-24px!important}.v-application .mr-lg-n7{margin-right:-28px!important}.v-application .mr-lg-n8{margin-right:-32px!important}.v-application .mr-lg-n9{margin-right:-36px!important}.v-application .mr-lg-n10{margin-right:-40px!important}.v-application .mr-lg-n11{margin-right:-44px!important}.v-application .mr-lg-n12{margin-right:-48px!important}.v-application .mr-lg-n13{margin-right:-52px!important}.v-application .mr-lg-n14{margin-right:-56px!important}.v-application .mr-lg-n15{margin-right:-60px!important}.v-application .mr-lg-n16{margin-right:-64px!important}.v-application .mb-lg-n1{margin-bottom:-4px!important}.v-application .mb-lg-n2{margin-bottom:-8px!important}.v-application .mb-lg-n3{margin-bottom:-12px!important}.v-application .mb-lg-n4{margin-bottom:-16px!important}.v-application .mb-lg-n5{margin-bottom:-20px!important}.v-application .mb-lg-n6{margin-bottom:-24px!important}.v-application .mb-lg-n7{margin-bottom:-28px!important}.v-application .mb-lg-n8{margin-bottom:-32px!important}.v-application .mb-lg-n9{margin-bottom:-36px!important}.v-application .mb-lg-n10{margin-bottom:-40px!important}.v-application .mb-lg-n11{margin-bottom:-44px!important}.v-application .mb-lg-n12{margin-bottom:-48px!important}.v-application .mb-lg-n13{margin-bottom:-52px!important}.v-application .mb-lg-n14{margin-bottom:-56px!important}.v-application .mb-lg-n15{margin-bottom:-60px!important}.v-application .mb-lg-n16{margin-bottom:-64px!important}.v-application .ml-lg-n1{margin-left:-4px!important}.v-application .ml-lg-n2{margin-left:-8px!important}.v-application .ml-lg-n3{margin-left:-12px!important}.v-application .ml-lg-n4{margin-left:-16px!important}.v-application .ml-lg-n5{margin-left:-20px!important}.v-application .ml-lg-n6{margin-left:-24px!important}.v-application .ml-lg-n7{margin-left:-28px!important}.v-application .ml-lg-n8{margin-left:-32px!important}.v-application .ml-lg-n9{margin-left:-36px!important}.v-application .ml-lg-n10{margin-left:-40px!important}.v-application .ml-lg-n11{margin-left:-44px!important}.v-application .ml-lg-n12{margin-left:-48px!important}.v-application .ml-lg-n13{margin-left:-52px!important}.v-application .ml-lg-n14{margin-left:-56px!important}.v-application .ml-lg-n15{margin-left:-60px!important}.v-application .ml-lg-n16{margin-left:-64px!important}.v-application--is-ltr .ms-lg-n1{margin-left:-4px!important}.v-application--is-rtl .ms-lg-n1{margin-right:-4px!important}.v-application--is-ltr .ms-lg-n2{margin-left:-8px!important}.v-application--is-rtl .ms-lg-n2{margin-right:-8px!important}.v-application--is-ltr .ms-lg-n3{margin-left:-12px!important}.v-application--is-rtl .ms-lg-n3{margin-right:-12px!important}.v-application--is-ltr .ms-lg-n4{margin-left:-16px!important}.v-application--is-rtl .ms-lg-n4{margin-right:-16px!important}.v-application--is-ltr .ms-lg-n5{margin-left:-20px!important}.v-application--is-rtl .ms-lg-n5{margin-right:-20px!important}.v-application--is-ltr .ms-lg-n6{margin-left:-24px!important}.v-application--is-rtl .ms-lg-n6{margin-right:-24px!important}.v-application--is-ltr .ms-lg-n7{margin-left:-28px!important}.v-application--is-rtl .ms-lg-n7{margin-right:-28px!important}.v-application--is-ltr .ms-lg-n8{margin-left:-32px!important}.v-application--is-rtl .ms-lg-n8{margin-right:-32px!important}.v-application--is-ltr .ms-lg-n9{margin-left:-36px!important}.v-application--is-rtl .ms-lg-n9{margin-right:-36px!important}.v-application--is-ltr .ms-lg-n10{margin-left:-40px!important}.v-application--is-rtl .ms-lg-n10{margin-right:-40px!important}.v-application--is-ltr .ms-lg-n11{margin-left:-44px!important}.v-application--is-rtl .ms-lg-n11{margin-right:-44px!important}.v-application--is-ltr .ms-lg-n12{margin-left:-48px!important}.v-application--is-rtl .ms-lg-n12{margin-right:-48px!important}.v-application--is-ltr .ms-lg-n13{margin-left:-52px!important}.v-application--is-rtl .ms-lg-n13{margin-right:-52px!important}.v-application--is-ltr .ms-lg-n14{margin-left:-56px!important}.v-application--is-rtl .ms-lg-n14{margin-right:-56px!important}.v-application--is-ltr .ms-lg-n15{margin-left:-60px!important}.v-application--is-rtl .ms-lg-n15{margin-right:-60px!important}.v-application--is-ltr .ms-lg-n16{margin-left:-64px!important}.v-application--is-rtl .ms-lg-n16{margin-right:-64px!important}.v-application--is-ltr .me-lg-n1{margin-right:-4px!important}.v-application--is-rtl .me-lg-n1{margin-left:-4px!important}.v-application--is-ltr .me-lg-n2{margin-right:-8px!important}.v-application--is-rtl .me-lg-n2{margin-left:-8px!important}.v-application--is-ltr .me-lg-n3{margin-right:-12px!important}.v-application--is-rtl .me-lg-n3{margin-left:-12px!important}.v-application--is-ltr .me-lg-n4{margin-right:-16px!important}.v-application--is-rtl .me-lg-n4{margin-left:-16px!important}.v-application--is-ltr .me-lg-n5{margin-right:-20px!important}.v-application--is-rtl .me-lg-n5{margin-left:-20px!important}.v-application--is-ltr .me-lg-n6{margin-right:-24px!important}.v-application--is-rtl .me-lg-n6{margin-left:-24px!important}.v-application--is-ltr .me-lg-n7{margin-right:-28px!important}.v-application--is-rtl .me-lg-n7{margin-left:-28px!important}.v-application--is-ltr .me-lg-n8{margin-right:-32px!important}.v-application--is-rtl .me-lg-n8{margin-left:-32px!important}.v-application--is-ltr .me-lg-n9{margin-right:-36px!important}.v-application--is-rtl .me-lg-n9{margin-left:-36px!important}.v-application--is-ltr .me-lg-n10{margin-right:-40px!important}.v-application--is-rtl .me-lg-n10{margin-left:-40px!important}.v-application--is-ltr .me-lg-n11{margin-right:-44px!important}.v-application--is-rtl .me-lg-n11{margin-left:-44px!important}.v-application--is-ltr .me-lg-n12{margin-right:-48px!important}.v-application--is-rtl .me-lg-n12{margin-left:-48px!important}.v-application--is-ltr .me-lg-n13{margin-right:-52px!important}.v-application--is-rtl .me-lg-n13{margin-left:-52px!important}.v-application--is-ltr .me-lg-n14{margin-right:-56px!important}.v-application--is-rtl .me-lg-n14{margin-left:-56px!important}.v-application--is-ltr .me-lg-n15{margin-right:-60px!important}.v-application--is-rtl .me-lg-n15{margin-left:-60px!important}.v-application--is-ltr .me-lg-n16{margin-right:-64px!important}.v-application--is-rtl .me-lg-n16{margin-left:-64px!important}.v-application .pa-lg-0{padding:0!important}.v-application .pa-lg-1{padding:4px!important}.v-application .pa-lg-2{padding:8px!important}.v-application .pa-lg-3{padding:12px!important}.v-application .pa-lg-4{padding:16px!important}.v-application .pa-lg-5{padding:20px!important}.v-application .pa-lg-6{padding:24px!important}.v-application .pa-lg-7{padding:28px!important}.v-application .pa-lg-8{padding:32px!important}.v-application .pa-lg-9{padding:36px!important}.v-application .pa-lg-10{padding:40px!important}.v-application .pa-lg-11{padding:44px!important}.v-application .pa-lg-12{padding:48px!important}.v-application .pa-lg-13{padding:52px!important}.v-application .pa-lg-14{padding:56px!important}.v-application .pa-lg-15{padding:60px!important}.v-application .pa-lg-16{padding:64px!important}.v-application .px-lg-0{padding-right:0!important;padding-left:0!important}.v-application .px-lg-1{padding-right:4px!important;padding-left:4px!important}.v-application .px-lg-2{padding-right:8px!important;padding-left:8px!important}.v-application .px-lg-3{padding-right:12px!important;padding-left:12px!important}.v-application .px-lg-4{padding-right:16px!important;padding-left:16px!important}.v-application .px-lg-5{padding-right:20px!important;padding-left:20px!important}.v-application .px-lg-6{padding-right:24px!important;padding-left:24px!important}.v-application .px-lg-7{padding-right:28px!important;padding-left:28px!important}.v-application .px-lg-8{padding-right:32px!important;padding-left:32px!important}.v-application .px-lg-9{padding-right:36px!important;padding-left:36px!important}.v-application .px-lg-10{padding-right:40px!important;padding-left:40px!important}.v-application .px-lg-11{padding-right:44px!important;padding-left:44px!important}.v-application .px-lg-12{padding-right:48px!important;padding-left:48px!important}.v-application .px-lg-13{padding-right:52px!important;padding-left:52px!important}.v-application .px-lg-14{padding-right:56px!important;padding-left:56px!important}.v-application .px-lg-15{padding-right:60px!important;padding-left:60px!important}.v-application .px-lg-16{padding-right:64px!important;padding-left:64px!important}.v-application .py-lg-0{padding-top:0!important;padding-bottom:0!important}.v-application .py-lg-1{padding-top:4px!important;padding-bottom:4px!important}.v-application .py-lg-2{padding-top:8px!important;padding-bottom:8px!important}.v-application .py-lg-3{padding-top:12px!important;padding-bottom:12px!important}.v-application .py-lg-4{padding-top:16px!important;padding-bottom:16px!important}.v-application .py-lg-5{padding-top:20px!important;padding-bottom:20px!important}.v-application .py-lg-6{padding-top:24px!important;padding-bottom:24px!important}.v-application .py-lg-7{padding-top:28px!important;padding-bottom:28px!important}.v-application .py-lg-8{padding-top:32px!important;padding-bottom:32px!important}.v-application .py-lg-9{padding-top:36px!important;padding-bottom:36px!important}.v-application .py-lg-10{padding-top:40px!important;padding-bottom:40px!important}.v-application .py-lg-11{padding-top:44px!important;padding-bottom:44px!important}.v-application .py-lg-12{padding-top:48px!important;padding-bottom:48px!important}.v-application .py-lg-13{padding-top:52px!important;padding-bottom:52px!important}.v-application .py-lg-14{padding-top:56px!important;padding-bottom:56px!important}.v-application .py-lg-15{padding-top:60px!important;padding-bottom:60px!important}.v-application .py-lg-16{padding-top:64px!important;padding-bottom:64px!important}.v-application .pt-lg-0{padding-top:0!important}.v-application .pt-lg-1{padding-top:4px!important}.v-application .pt-lg-2{padding-top:8px!important}.v-application .pt-lg-3{padding-top:12px!important}.v-application .pt-lg-4{padding-top:16px!important}.v-application .pt-lg-5{padding-top:20px!important}.v-application .pt-lg-6{padding-top:24px!important}.v-application .pt-lg-7{padding-top:28px!important}.v-application .pt-lg-8{padding-top:32px!important}.v-application .pt-lg-9{padding-top:36px!important}.v-application .pt-lg-10{padding-top:40px!important}.v-application .pt-lg-11{padding-top:44px!important}.v-application .pt-lg-12{padding-top:48px!important}.v-application .pt-lg-13{padding-top:52px!important}.v-application .pt-lg-14{padding-top:56px!important}.v-application .pt-lg-15{padding-top:60px!important}.v-application .pt-lg-16{padding-top:64px!important}.v-application .pr-lg-0{padding-right:0!important}.v-application .pr-lg-1{padding-right:4px!important}.v-application .pr-lg-2{padding-right:8px!important}.v-application .pr-lg-3{padding-right:12px!important}.v-application .pr-lg-4{padding-right:16px!important}.v-application .pr-lg-5{padding-right:20px!important}.v-application .pr-lg-6{padding-right:24px!important}.v-application .pr-lg-7{padding-right:28px!important}.v-application .pr-lg-8{padding-right:32px!important}.v-application .pr-lg-9{padding-right:36px!important}.v-application .pr-lg-10{padding-right:40px!important}.v-application .pr-lg-11{padding-right:44px!important}.v-application .pr-lg-12{padding-right:48px!important}.v-application .pr-lg-13{padding-right:52px!important}.v-application .pr-lg-14{padding-right:56px!important}.v-application .pr-lg-15{padding-right:60px!important}.v-application .pr-lg-16{padding-right:64px!important}.v-application .pb-lg-0{padding-bottom:0!important}.v-application .pb-lg-1{padding-bottom:4px!important}.v-application .pb-lg-2{padding-bottom:8px!important}.v-application .pb-lg-3{padding-bottom:12px!important}.v-application .pb-lg-4{padding-bottom:16px!important}.v-application .pb-lg-5{padding-bottom:20px!important}.v-application .pb-lg-6{padding-bottom:24px!important}.v-application .pb-lg-7{padding-bottom:28px!important}.v-application .pb-lg-8{padding-bottom:32px!important}.v-application .pb-lg-9{padding-bottom:36px!important}.v-application .pb-lg-10{padding-bottom:40px!important}.v-application .pb-lg-11{padding-bottom:44px!important}.v-application .pb-lg-12{padding-bottom:48px!important}.v-application .pb-lg-13{padding-bottom:52px!important}.v-application .pb-lg-14{padding-bottom:56px!important}.v-application .pb-lg-15{padding-bottom:60px!important}.v-application .pb-lg-16{padding-bottom:64px!important}.v-application .pl-lg-0{padding-left:0!important}.v-application .pl-lg-1{padding-left:4px!important}.v-application .pl-lg-2{padding-left:8px!important}.v-application .pl-lg-3{padding-left:12px!important}.v-application .pl-lg-4{padding-left:16px!important}.v-application .pl-lg-5{padding-left:20px!important}.v-application .pl-lg-6{padding-left:24px!important}.v-application .pl-lg-7{padding-left:28px!important}.v-application .pl-lg-8{padding-left:32px!important}.v-application .pl-lg-9{padding-left:36px!important}.v-application .pl-lg-10{padding-left:40px!important}.v-application .pl-lg-11{padding-left:44px!important}.v-application .pl-lg-12{padding-left:48px!important}.v-application .pl-lg-13{padding-left:52px!important}.v-application .pl-lg-14{padding-left:56px!important}.v-application .pl-lg-15{padding-left:60px!important}.v-application .pl-lg-16{padding-left:64px!important}.v-application--is-ltr .ps-lg-0{padding-left:0!important}.v-application--is-rtl .ps-lg-0{padding-right:0!important}.v-application--is-ltr .ps-lg-1{padding-left:4px!important}.v-application--is-rtl .ps-lg-1{padding-right:4px!important}.v-application--is-ltr .ps-lg-2{padding-left:8px!important}.v-application--is-rtl .ps-lg-2{padding-right:8px!important}.v-application--is-ltr .ps-lg-3{padding-left:12px!important}.v-application--is-rtl .ps-lg-3{padding-right:12px!important}.v-application--is-ltr .ps-lg-4{padding-left:16px!important}.v-application--is-rtl .ps-lg-4{padding-right:16px!important}.v-application--is-ltr .ps-lg-5{padding-left:20px!important}.v-application--is-rtl .ps-lg-5{padding-right:20px!important}.v-application--is-ltr .ps-lg-6{padding-left:24px!important}.v-application--is-rtl .ps-lg-6{padding-right:24px!important}.v-application--is-ltr .ps-lg-7{padding-left:28px!important}.v-application--is-rtl .ps-lg-7{padding-right:28px!important}.v-application--is-ltr .ps-lg-8{padding-left:32px!important}.v-application--is-rtl .ps-lg-8{padding-right:32px!important}.v-application--is-ltr .ps-lg-9{padding-left:36px!important}.v-application--is-rtl .ps-lg-9{padding-right:36px!important}.v-application--is-ltr .ps-lg-10{padding-left:40px!important}.v-application--is-rtl .ps-lg-10{padding-right:40px!important}.v-application--is-ltr .ps-lg-11{padding-left:44px!important}.v-application--is-rtl .ps-lg-11{padding-right:44px!important}.v-application--is-ltr .ps-lg-12{padding-left:48px!important}.v-application--is-rtl .ps-lg-12{padding-right:48px!important}.v-application--is-ltr .ps-lg-13{padding-left:52px!important}.v-application--is-rtl .ps-lg-13{padding-right:52px!important}.v-application--is-ltr .ps-lg-14{padding-left:56px!important}.v-application--is-rtl .ps-lg-14{padding-right:56px!important}.v-application--is-ltr .ps-lg-15{padding-left:60px!important}.v-application--is-rtl .ps-lg-15{padding-right:60px!important}.v-application--is-ltr .ps-lg-16{padding-left:64px!important}.v-application--is-rtl .ps-lg-16{padding-right:64px!important}.v-application--is-ltr .pe-lg-0{padding-right:0!important}.v-application--is-rtl .pe-lg-0{padding-left:0!important}.v-application--is-ltr .pe-lg-1{padding-right:4px!important}.v-application--is-rtl .pe-lg-1{padding-left:4px!important}.v-application--is-ltr .pe-lg-2{padding-right:8px!important}.v-application--is-rtl .pe-lg-2{padding-left:8px!important}.v-application--is-ltr .pe-lg-3{padding-right:12px!important}.v-application--is-rtl .pe-lg-3{padding-left:12px!important}.v-application--is-ltr .pe-lg-4{padding-right:16px!important}.v-application--is-rtl .pe-lg-4{padding-left:16px!important}.v-application--is-ltr .pe-lg-5{padding-right:20px!important}.v-application--is-rtl .pe-lg-5{padding-left:20px!important}.v-application--is-ltr .pe-lg-6{padding-right:24px!important}.v-application--is-rtl .pe-lg-6{padding-left:24px!important}.v-application--is-ltr .pe-lg-7{padding-right:28px!important}.v-application--is-rtl .pe-lg-7{padding-left:28px!important}.v-application--is-ltr .pe-lg-8{padding-right:32px!important}.v-application--is-rtl .pe-lg-8{padding-left:32px!important}.v-application--is-ltr .pe-lg-9{padding-right:36px!important}.v-application--is-rtl .pe-lg-9{padding-left:36px!important}.v-application--is-ltr .pe-lg-10{padding-right:40px!important}.v-application--is-rtl .pe-lg-10{padding-left:40px!important}.v-application--is-ltr .pe-lg-11{padding-right:44px!important}.v-application--is-rtl .pe-lg-11{padding-left:44px!important}.v-application--is-ltr .pe-lg-12{padding-right:48px!important}.v-application--is-rtl .pe-lg-12{padding-left:48px!important}.v-application--is-ltr .pe-lg-13{padding-right:52px!important}.v-application--is-rtl .pe-lg-13{padding-left:52px!important}.v-application--is-ltr .pe-lg-14{padding-right:56px!important}.v-application--is-rtl .pe-lg-14{padding-left:56px!important}.v-application--is-ltr .pe-lg-15{padding-right:60px!important}.v-application--is-rtl .pe-lg-15{padding-left:60px!important}.v-application--is-ltr .pe-lg-16{padding-right:64px!important}.v-application--is-rtl .pe-lg-16{padding-left:64px!important}.v-application .text-lg-left{text-align:left!important}.v-application .text-lg-right{text-align:right!important}.v-application .text-lg-center{text-align:center!important}.v-application .text-lg-justify{text-align:justify!important}.v-application .text-lg-start{text-align:start!important}.v-application .text-lg-end{text-align:end!important}.v-application .text-lg-h1{font-size:6rem!important;line-height:6rem;letter-spacing:-.015625em!important}.v-application .text-lg-h1,.v-application .text-lg-h2{font-weight:300;font-family:Roboto,sans-serif!important}.v-application .text-lg-h2{font-size:3.75rem!important;line-height:3.75rem;letter-spacing:-.0083333333em!important}.v-application .text-lg-h3{font-size:3rem!important;line-height:3.125rem;letter-spacing:normal!important}.v-application .text-lg-h3,.v-application .text-lg-h4{font-weight:400;font-family:Roboto,sans-serif!important}.v-application .text-lg-h4{font-size:2.125rem!important;line-height:2.5rem;letter-spacing:.0073529412em!important}.v-application .text-lg-h5{font-size:1.5rem!important;font-weight:400;letter-spacing:normal!important}.v-application .text-lg-h5,.v-application .text-lg-h6{line-height:2rem;font-family:Roboto,sans-serif!important}.v-application .text-lg-h6{font-size:1.25rem!important;font-weight:500;letter-spacing:.0125em!important}.v-application .text-lg-subtitle-1{font-size:1rem!important;font-weight:400;line-height:1.75rem;letter-spacing:.009375em!important;font-family:Roboto,sans-serif!important}.v-application .text-lg-subtitle-2{font-size:.875rem!important;font-weight:500;line-height:1.375rem;letter-spacing:.0071428571em!important;font-family:Roboto,sans-serif!important}.v-application .text-lg-body-1{font-size:1rem!important;font-weight:400;line-height:1.5rem;letter-spacing:.03125em!important;font-family:Roboto,sans-serif!important}.v-application .text-lg-body-2{font-weight:400;line-height:1.25rem;letter-spacing:.0178571429em!important}.v-application .text-lg-body-2,.v-application .text-lg-button{font-size:.875rem!important;font-family:Roboto,sans-serif!important}.v-application .text-lg-button{font-weight:500;line-height:2.25rem;letter-spacing:.0892857143em!important;text-transform:uppercase!important}.v-application .text-lg-caption{font-weight:400;line-height:1.25rem;letter-spacing:.0333333333em!important}.v-application .text-lg-caption,.v-application .text-lg-overline{font-size:.75rem!important;font-family:Roboto,sans-serif!important}.v-application .text-lg-overline{font-weight:500;line-height:2rem;letter-spacing:.1666666667em!important;text-transform:uppercase!important}}@media(min-width:1904px){.v-application .d-xl-none{display:none!important}.v-application .d-xl-inline{display:inline!important}.v-application .d-xl-inline-block{display:inline-block!important}.v-application .d-xl-block{display:block!important}.v-application .d-xl-table{display:table!important}.v-application .d-xl-table-row{display:table-row!important}.v-application .d-xl-table-cell{display:table-cell!important}.v-application .d-xl-flex{display:flex!important}.v-application .d-xl-inline-flex{display:inline-flex!important}.v-application .float-xl-none{float:none!important}.v-application .float-xl-left{float:left!important}.v-application .float-xl-right{float:right!important}.v-application .flex-xl-fill{flex:1 1 auto!important}.v-application .flex-xl-row{flex-direction:row!important}.v-application .flex-xl-column{flex-direction:column!important}.v-application .flex-xl-row-reverse{flex-direction:row-reverse!important}.v-application .flex-xl-column-reverse{flex-direction:column-reverse!important}.v-application .flex-xl-grow-0{flex-grow:0!important}.v-application .flex-xl-grow-1{flex-grow:1!important}.v-application .flex-xl-shrink-0{flex-shrink:0!important}.v-application .flex-xl-shrink-1{flex-shrink:1!important}.v-application .flex-xl-wrap{flex-wrap:wrap!important}.v-application .flex-xl-nowrap{flex-wrap:nowrap!important}.v-application .flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.v-application .justify-xl-start{justify-content:flex-start!important}.v-application .justify-xl-end{justify-content:flex-end!important}.v-application .justify-xl-center{justify-content:center!important}.v-application .justify-xl-space-between{justify-content:space-between!important}.v-application .justify-xl-space-around{justify-content:space-around!important}.v-application .align-xl-start{align-items:flex-start!important}.v-application .align-xl-end{align-items:flex-end!important}.v-application .align-xl-center{align-items:center!important}.v-application .align-xl-baseline{align-items:baseline!important}.v-application .align-xl-stretch{align-items:stretch!important}.v-application .align-content-xl-start{align-content:flex-start!important}.v-application .align-content-xl-end{align-content:flex-end!important}.v-application .align-content-xl-center{align-content:center!important}.v-application .align-content-xl-space-between{align-content:space-between!important}.v-application .align-content-xl-space-around{align-content:space-around!important}.v-application .align-content-xl-stretch{align-content:stretch!important}.v-application .align-self-xl-auto{align-self:auto!important}.v-application .align-self-xl-start{align-self:flex-start!important}.v-application .align-self-xl-end{align-self:flex-end!important}.v-application .align-self-xl-center{align-self:center!important}.v-application .align-self-xl-baseline{align-self:baseline!important}.v-application .align-self-xl-stretch{align-self:stretch!important}.v-application .order-xl-first{order:-1!important}.v-application .order-xl-0{order:0!important}.v-application .order-xl-1{order:1!important}.v-application .order-xl-2{order:2!important}.v-application .order-xl-3{order:3!important}.v-application .order-xl-4{order:4!important}.v-application .order-xl-5{order:5!important}.v-application .order-xl-6{order:6!important}.v-application .order-xl-7{order:7!important}.v-application .order-xl-8{order:8!important}.v-application .order-xl-9{order:9!important}.v-application .order-xl-10{order:10!important}.v-application .order-xl-11{order:11!important}.v-application .order-xl-12{order:12!important}.v-application .order-xl-last{order:13!important}.v-application .ma-xl-0{margin:0!important}.v-application .ma-xl-1{margin:4px!important}.v-application .ma-xl-2{margin:8px!important}.v-application .ma-xl-3{margin:12px!important}.v-application .ma-xl-4{margin:16px!important}.v-application .ma-xl-5{margin:20px!important}.v-application .ma-xl-6{margin:24px!important}.v-application .ma-xl-7{margin:28px!important}.v-application .ma-xl-8{margin:32px!important}.v-application .ma-xl-9{margin:36px!important}.v-application .ma-xl-10{margin:40px!important}.v-application .ma-xl-11{margin:44px!important}.v-application .ma-xl-12{margin:48px!important}.v-application .ma-xl-13{margin:52px!important}.v-application .ma-xl-14{margin:56px!important}.v-application .ma-xl-15{margin:60px!important}.v-application .ma-xl-16{margin:64px!important}.v-application .ma-xl-auto{margin:auto!important}.v-application .mx-xl-0{margin-right:0!important;margin-left:0!important}.v-application .mx-xl-1{margin-right:4px!important;margin-left:4px!important}.v-application .mx-xl-2{margin-right:8px!important;margin-left:8px!important}.v-application .mx-xl-3{margin-right:12px!important;margin-left:12px!important}.v-application .mx-xl-4{margin-right:16px!important;margin-left:16px!important}.v-application .mx-xl-5{margin-right:20px!important;margin-left:20px!important}.v-application .mx-xl-6{margin-right:24px!important;margin-left:24px!important}.v-application .mx-xl-7{margin-right:28px!important;margin-left:28px!important}.v-application .mx-xl-8{margin-right:32px!important;margin-left:32px!important}.v-application .mx-xl-9{margin-right:36px!important;margin-left:36px!important}.v-application .mx-xl-10{margin-right:40px!important;margin-left:40px!important}.v-application .mx-xl-11{margin-right:44px!important;margin-left:44px!important}.v-application .mx-xl-12{margin-right:48px!important;margin-left:48px!important}.v-application .mx-xl-13{margin-right:52px!important;margin-left:52px!important}.v-application .mx-xl-14{margin-right:56px!important;margin-left:56px!important}.v-application .mx-xl-15{margin-right:60px!important;margin-left:60px!important}.v-application .mx-xl-16{margin-right:64px!important;margin-left:64px!important}.v-application .mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.v-application .my-xl-0{margin-top:0!important;margin-bottom:0!important}.v-application .my-xl-1{margin-top:4px!important;margin-bottom:4px!important}.v-application .my-xl-2{margin-top:8px!important;margin-bottom:8px!important}.v-application .my-xl-3{margin-top:12px!important;margin-bottom:12px!important}.v-application .my-xl-4{margin-top:16px!important;margin-bottom:16px!important}.v-application .my-xl-5{margin-top:20px!important;margin-bottom:20px!important}.v-application .my-xl-6{margin-top:24px!important;margin-bottom:24px!important}.v-application .my-xl-7{margin-top:28px!important;margin-bottom:28px!important}.v-application .my-xl-8{margin-top:32px!important;margin-bottom:32px!important}.v-application .my-xl-9{margin-top:36px!important;margin-bottom:36px!important}.v-application .my-xl-10{margin-top:40px!important;margin-bottom:40px!important}.v-application .my-xl-11{margin-top:44px!important;margin-bottom:44px!important}.v-application .my-xl-12{margin-top:48px!important;margin-bottom:48px!important}.v-application .my-xl-13{margin-top:52px!important;margin-bottom:52px!important}.v-application .my-xl-14{margin-top:56px!important;margin-bottom:56px!important}.v-application .my-xl-15{margin-top:60px!important;margin-bottom:60px!important}.v-application .my-xl-16{margin-top:64px!important;margin-bottom:64px!important}.v-application .my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.v-application .mt-xl-0{margin-top:0!important}.v-application .mt-xl-1{margin-top:4px!important}.v-application .mt-xl-2{margin-top:8px!important}.v-application .mt-xl-3{margin-top:12px!important}.v-application .mt-xl-4{margin-top:16px!important}.v-application .mt-xl-5{margin-top:20px!important}.v-application .mt-xl-6{margin-top:24px!important}.v-application .mt-xl-7{margin-top:28px!important}.v-application .mt-xl-8{margin-top:32px!important}.v-application .mt-xl-9{margin-top:36px!important}.v-application .mt-xl-10{margin-top:40px!important}.v-application .mt-xl-11{margin-top:44px!important}.v-application .mt-xl-12{margin-top:48px!important}.v-application .mt-xl-13{margin-top:52px!important}.v-application .mt-xl-14{margin-top:56px!important}.v-application .mt-xl-15{margin-top:60px!important}.v-application .mt-xl-16{margin-top:64px!important}.v-application .mt-xl-auto{margin-top:auto!important}.v-application .mr-xl-0{margin-right:0!important}.v-application .mr-xl-1{margin-right:4px!important}.v-application .mr-xl-2{margin-right:8px!important}.v-application .mr-xl-3{margin-right:12px!important}.v-application .mr-xl-4{margin-right:16px!important}.v-application .mr-xl-5{margin-right:20px!important}.v-application .mr-xl-6{margin-right:24px!important}.v-application .mr-xl-7{margin-right:28px!important}.v-application .mr-xl-8{margin-right:32px!important}.v-application .mr-xl-9{margin-right:36px!important}.v-application .mr-xl-10{margin-right:40px!important}.v-application .mr-xl-11{margin-right:44px!important}.v-application .mr-xl-12{margin-right:48px!important}.v-application .mr-xl-13{margin-right:52px!important}.v-application .mr-xl-14{margin-right:56px!important}.v-application .mr-xl-15{margin-right:60px!important}.v-application .mr-xl-16{margin-right:64px!important}.v-application .mr-xl-auto{margin-right:auto!important}.v-application .mb-xl-0{margin-bottom:0!important}.v-application .mb-xl-1{margin-bottom:4px!important}.v-application .mb-xl-2{margin-bottom:8px!important}.v-application .mb-xl-3{margin-bottom:12px!important}.v-application .mb-xl-4{margin-bottom:16px!important}.v-application .mb-xl-5{margin-bottom:20px!important}.v-application .mb-xl-6{margin-bottom:24px!important}.v-application .mb-xl-7{margin-bottom:28px!important}.v-application .mb-xl-8{margin-bottom:32px!important}.v-application .mb-xl-9{margin-bottom:36px!important}.v-application .mb-xl-10{margin-bottom:40px!important}.v-application .mb-xl-11{margin-bottom:44px!important}.v-application .mb-xl-12{margin-bottom:48px!important}.v-application .mb-xl-13{margin-bottom:52px!important}.v-application .mb-xl-14{margin-bottom:56px!important}.v-application .mb-xl-15{margin-bottom:60px!important}.v-application .mb-xl-16{margin-bottom:64px!important}.v-application .mb-xl-auto{margin-bottom:auto!important}.v-application .ml-xl-0{margin-left:0!important}.v-application .ml-xl-1{margin-left:4px!important}.v-application .ml-xl-2{margin-left:8px!important}.v-application .ml-xl-3{margin-left:12px!important}.v-application .ml-xl-4{margin-left:16px!important}.v-application .ml-xl-5{margin-left:20px!important}.v-application .ml-xl-6{margin-left:24px!important}.v-application .ml-xl-7{margin-left:28px!important}.v-application .ml-xl-8{margin-left:32px!important}.v-application .ml-xl-9{margin-left:36px!important}.v-application .ml-xl-10{margin-left:40px!important}.v-application .ml-xl-11{margin-left:44px!important}.v-application .ml-xl-12{margin-left:48px!important}.v-application .ml-xl-13{margin-left:52px!important}.v-application .ml-xl-14{margin-left:56px!important}.v-application .ml-xl-15{margin-left:60px!important}.v-application .ml-xl-16{margin-left:64px!important}.v-application .ml-xl-auto{margin-left:auto!important}.v-application--is-ltr .ms-xl-0{margin-left:0!important}.v-application--is-rtl .ms-xl-0{margin-right:0!important}.v-application--is-ltr .ms-xl-1{margin-left:4px!important}.v-application--is-rtl .ms-xl-1{margin-right:4px!important}.v-application--is-ltr .ms-xl-2{margin-left:8px!important}.v-application--is-rtl .ms-xl-2{margin-right:8px!important}.v-application--is-ltr .ms-xl-3{margin-left:12px!important}.v-application--is-rtl .ms-xl-3{margin-right:12px!important}.v-application--is-ltr .ms-xl-4{margin-left:16px!important}.v-application--is-rtl .ms-xl-4{margin-right:16px!important}.v-application--is-ltr .ms-xl-5{margin-left:20px!important}.v-application--is-rtl .ms-xl-5{margin-right:20px!important}.v-application--is-ltr .ms-xl-6{margin-left:24px!important}.v-application--is-rtl .ms-xl-6{margin-right:24px!important}.v-application--is-ltr .ms-xl-7{margin-left:28px!important}.v-application--is-rtl .ms-xl-7{margin-right:28px!important}.v-application--is-ltr .ms-xl-8{margin-left:32px!important}.v-application--is-rtl .ms-xl-8{margin-right:32px!important}.v-application--is-ltr .ms-xl-9{margin-left:36px!important}.v-application--is-rtl .ms-xl-9{margin-right:36px!important}.v-application--is-ltr .ms-xl-10{margin-left:40px!important}.v-application--is-rtl .ms-xl-10{margin-right:40px!important}.v-application--is-ltr .ms-xl-11{margin-left:44px!important}.v-application--is-rtl .ms-xl-11{margin-right:44px!important}.v-application--is-ltr .ms-xl-12{margin-left:48px!important}.v-application--is-rtl .ms-xl-12{margin-right:48px!important}.v-application--is-ltr .ms-xl-13{margin-left:52px!important}.v-application--is-rtl .ms-xl-13{margin-right:52px!important}.v-application--is-ltr .ms-xl-14{margin-left:56px!important}.v-application--is-rtl .ms-xl-14{margin-right:56px!important}.v-application--is-ltr .ms-xl-15{margin-left:60px!important}.v-application--is-rtl .ms-xl-15{margin-right:60px!important}.v-application--is-ltr .ms-xl-16{margin-left:64px!important}.v-application--is-rtl .ms-xl-16{margin-right:64px!important}.v-application--is-ltr .ms-xl-auto{margin-left:auto!important}.v-application--is-rtl .ms-xl-auto{margin-right:auto!important}.v-application--is-ltr .me-xl-0{margin-right:0!important}.v-application--is-rtl .me-xl-0{margin-left:0!important}.v-application--is-ltr .me-xl-1{margin-right:4px!important}.v-application--is-rtl .me-xl-1{margin-left:4px!important}.v-application--is-ltr .me-xl-2{margin-right:8px!important}.v-application--is-rtl .me-xl-2{margin-left:8px!important}.v-application--is-ltr .me-xl-3{margin-right:12px!important}.v-application--is-rtl .me-xl-3{margin-left:12px!important}.v-application--is-ltr .me-xl-4{margin-right:16px!important}.v-application--is-rtl .me-xl-4{margin-left:16px!important}.v-application--is-ltr .me-xl-5{margin-right:20px!important}.v-application--is-rtl .me-xl-5{margin-left:20px!important}.v-application--is-ltr .me-xl-6{margin-right:24px!important}.v-application--is-rtl .me-xl-6{margin-left:24px!important}.v-application--is-ltr .me-xl-7{margin-right:28px!important}.v-application--is-rtl .me-xl-7{margin-left:28px!important}.v-application--is-ltr .me-xl-8{margin-right:32px!important}.v-application--is-rtl .me-xl-8{margin-left:32px!important}.v-application--is-ltr .me-xl-9{margin-right:36px!important}.v-application--is-rtl .me-xl-9{margin-left:36px!important}.v-application--is-ltr .me-xl-10{margin-right:40px!important}.v-application--is-rtl .me-xl-10{margin-left:40px!important}.v-application--is-ltr .me-xl-11{margin-right:44px!important}.v-application--is-rtl .me-xl-11{margin-left:44px!important}.v-application--is-ltr .me-xl-12{margin-right:48px!important}.v-application--is-rtl .me-xl-12{margin-left:48px!important}.v-application--is-ltr .me-xl-13{margin-right:52px!important}.v-application--is-rtl .me-xl-13{margin-left:52px!important}.v-application--is-ltr .me-xl-14{margin-right:56px!important}.v-application--is-rtl .me-xl-14{margin-left:56px!important}.v-application--is-ltr .me-xl-15{margin-right:60px!important}.v-application--is-rtl .me-xl-15{margin-left:60px!important}.v-application--is-ltr .me-xl-16{margin-right:64px!important}.v-application--is-rtl .me-xl-16{margin-left:64px!important}.v-application--is-ltr .me-xl-auto{margin-right:auto!important}.v-application--is-rtl .me-xl-auto{margin-left:auto!important}.v-application .ma-xl-n1{margin:-4px!important}.v-application .ma-xl-n2{margin:-8px!important}.v-application .ma-xl-n3{margin:-12px!important}.v-application .ma-xl-n4{margin:-16px!important}.v-application .ma-xl-n5{margin:-20px!important}.v-application .ma-xl-n6{margin:-24px!important}.v-application .ma-xl-n7{margin:-28px!important}.v-application .ma-xl-n8{margin:-32px!important}.v-application .ma-xl-n9{margin:-36px!important}.v-application .ma-xl-n10{margin:-40px!important}.v-application .ma-xl-n11{margin:-44px!important}.v-application .ma-xl-n12{margin:-48px!important}.v-application .ma-xl-n13{margin:-52px!important}.v-application .ma-xl-n14{margin:-56px!important}.v-application .ma-xl-n15{margin:-60px!important}.v-application .ma-xl-n16{margin:-64px!important}.v-application .mx-xl-n1{margin-right:-4px!important;margin-left:-4px!important}.v-application .mx-xl-n2{margin-right:-8px!important;margin-left:-8px!important}.v-application .mx-xl-n3{margin-right:-12px!important;margin-left:-12px!important}.v-application .mx-xl-n4{margin-right:-16px!important;margin-left:-16px!important}.v-application .mx-xl-n5{margin-right:-20px!important;margin-left:-20px!important}.v-application .mx-xl-n6{margin-right:-24px!important;margin-left:-24px!important}.v-application .mx-xl-n7{margin-right:-28px!important;margin-left:-28px!important}.v-application .mx-xl-n8{margin-right:-32px!important;margin-left:-32px!important}.v-application .mx-xl-n9{margin-right:-36px!important;margin-left:-36px!important}.v-application .mx-xl-n10{margin-right:-40px!important;margin-left:-40px!important}.v-application .mx-xl-n11{margin-right:-44px!important;margin-left:-44px!important}.v-application .mx-xl-n12{margin-right:-48px!important;margin-left:-48px!important}.v-application .mx-xl-n13{margin-right:-52px!important;margin-left:-52px!important}.v-application .mx-xl-n14{margin-right:-56px!important;margin-left:-56px!important}.v-application .mx-xl-n15{margin-right:-60px!important;margin-left:-60px!important}.v-application .mx-xl-n16{margin-right:-64px!important;margin-left:-64px!important}.v-application .my-xl-n1{margin-top:-4px!important;margin-bottom:-4px!important}.v-application .my-xl-n2{margin-top:-8px!important;margin-bottom:-8px!important}.v-application .my-xl-n3{margin-top:-12px!important;margin-bottom:-12px!important}.v-application .my-xl-n4{margin-top:-16px!important;margin-bottom:-16px!important}.v-application .my-xl-n5{margin-top:-20px!important;margin-bottom:-20px!important}.v-application .my-xl-n6{margin-top:-24px!important;margin-bottom:-24px!important}.v-application .my-xl-n7{margin-top:-28px!important;margin-bottom:-28px!important}.v-application .my-xl-n8{margin-top:-32px!important;margin-bottom:-32px!important}.v-application .my-xl-n9{margin-top:-36px!important;margin-bottom:-36px!important}.v-application .my-xl-n10{margin-top:-40px!important;margin-bottom:-40px!important}.v-application .my-xl-n11{margin-top:-44px!important;margin-bottom:-44px!important}.v-application .my-xl-n12{margin-top:-48px!important;margin-bottom:-48px!important}.v-application .my-xl-n13{margin-top:-52px!important;margin-bottom:-52px!important}.v-application .my-xl-n14{margin-top:-56px!important;margin-bottom:-56px!important}.v-application .my-xl-n15{margin-top:-60px!important;margin-bottom:-60px!important}.v-application .my-xl-n16{margin-top:-64px!important;margin-bottom:-64px!important}.v-application .mt-xl-n1{margin-top:-4px!important}.v-application .mt-xl-n2{margin-top:-8px!important}.v-application .mt-xl-n3{margin-top:-12px!important}.v-application .mt-xl-n4{margin-top:-16px!important}.v-application .mt-xl-n5{margin-top:-20px!important}.v-application .mt-xl-n6{margin-top:-24px!important}.v-application .mt-xl-n7{margin-top:-28px!important}.v-application .mt-xl-n8{margin-top:-32px!important}.v-application .mt-xl-n9{margin-top:-36px!important}.v-application .mt-xl-n10{margin-top:-40px!important}.v-application .mt-xl-n11{margin-top:-44px!important}.v-application .mt-xl-n12{margin-top:-48px!important}.v-application .mt-xl-n13{margin-top:-52px!important}.v-application .mt-xl-n14{margin-top:-56px!important}.v-application .mt-xl-n15{margin-top:-60px!important}.v-application .mt-xl-n16{margin-top:-64px!important}.v-application .mr-xl-n1{margin-right:-4px!important}.v-application .mr-xl-n2{margin-right:-8px!important}.v-application .mr-xl-n3{margin-right:-12px!important}.v-application .mr-xl-n4{margin-right:-16px!important}.v-application .mr-xl-n5{margin-right:-20px!important}.v-application .mr-xl-n6{margin-right:-24px!important}.v-application .mr-xl-n7{margin-right:-28px!important}.v-application .mr-xl-n8{margin-right:-32px!important}.v-application .mr-xl-n9{margin-right:-36px!important}.v-application .mr-xl-n10{margin-right:-40px!important}.v-application .mr-xl-n11{margin-right:-44px!important}.v-application .mr-xl-n12{margin-right:-48px!important}.v-application .mr-xl-n13{margin-right:-52px!important}.v-application .mr-xl-n14{margin-right:-56px!important}.v-application .mr-xl-n15{margin-right:-60px!important}.v-application .mr-xl-n16{margin-right:-64px!important}.v-application .mb-xl-n1{margin-bottom:-4px!important}.v-application .mb-xl-n2{margin-bottom:-8px!important}.v-application .mb-xl-n3{margin-bottom:-12px!important}.v-application .mb-xl-n4{margin-bottom:-16px!important}.v-application .mb-xl-n5{margin-bottom:-20px!important}.v-application .mb-xl-n6{margin-bottom:-24px!important}.v-application .mb-xl-n7{margin-bottom:-28px!important}.v-application .mb-xl-n8{margin-bottom:-32px!important}.v-application .mb-xl-n9{margin-bottom:-36px!important}.v-application .mb-xl-n10{margin-bottom:-40px!important}.v-application .mb-xl-n11{margin-bottom:-44px!important}.v-application .mb-xl-n12{margin-bottom:-48px!important}.v-application .mb-xl-n13{margin-bottom:-52px!important}.v-application .mb-xl-n14{margin-bottom:-56px!important}.v-application .mb-xl-n15{margin-bottom:-60px!important}.v-application .mb-xl-n16{margin-bottom:-64px!important}.v-application .ml-xl-n1{margin-left:-4px!important}.v-application .ml-xl-n2{margin-left:-8px!important}.v-application .ml-xl-n3{margin-left:-12px!important}.v-application .ml-xl-n4{margin-left:-16px!important}.v-application .ml-xl-n5{margin-left:-20px!important}.v-application .ml-xl-n6{margin-left:-24px!important}.v-application .ml-xl-n7{margin-left:-28px!important}.v-application .ml-xl-n8{margin-left:-32px!important}.v-application .ml-xl-n9{margin-left:-36px!important}.v-application .ml-xl-n10{margin-left:-40px!important}.v-application .ml-xl-n11{margin-left:-44px!important}.v-application .ml-xl-n12{margin-left:-48px!important}.v-application .ml-xl-n13{margin-left:-52px!important}.v-application .ml-xl-n14{margin-left:-56px!important}.v-application .ml-xl-n15{margin-left:-60px!important}.v-application .ml-xl-n16{margin-left:-64px!important}.v-application--is-ltr .ms-xl-n1{margin-left:-4px!important}.v-application--is-rtl .ms-xl-n1{margin-right:-4px!important}.v-application--is-ltr .ms-xl-n2{margin-left:-8px!important}.v-application--is-rtl .ms-xl-n2{margin-right:-8px!important}.v-application--is-ltr .ms-xl-n3{margin-left:-12px!important}.v-application--is-rtl .ms-xl-n3{margin-right:-12px!important}.v-application--is-ltr .ms-xl-n4{margin-left:-16px!important}.v-application--is-rtl .ms-xl-n4{margin-right:-16px!important}.v-application--is-ltr .ms-xl-n5{margin-left:-20px!important}.v-application--is-rtl .ms-xl-n5{margin-right:-20px!important}.v-application--is-ltr .ms-xl-n6{margin-left:-24px!important}.v-application--is-rtl .ms-xl-n6{margin-right:-24px!important}.v-application--is-ltr .ms-xl-n7{margin-left:-28px!important}.v-application--is-rtl .ms-xl-n7{margin-right:-28px!important}.v-application--is-ltr .ms-xl-n8{margin-left:-32px!important}.v-application--is-rtl .ms-xl-n8{margin-right:-32px!important}.v-application--is-ltr .ms-xl-n9{margin-left:-36px!important}.v-application--is-rtl .ms-xl-n9{margin-right:-36px!important}.v-application--is-ltr .ms-xl-n10{margin-left:-40px!important}.v-application--is-rtl .ms-xl-n10{margin-right:-40px!important}.v-application--is-ltr .ms-xl-n11{margin-left:-44px!important}.v-application--is-rtl .ms-xl-n11{margin-right:-44px!important}.v-application--is-ltr .ms-xl-n12{margin-left:-48px!important}.v-application--is-rtl .ms-xl-n12{margin-right:-48px!important}.v-application--is-ltr .ms-xl-n13{margin-left:-52px!important}.v-application--is-rtl .ms-xl-n13{margin-right:-52px!important}.v-application--is-ltr .ms-xl-n14{margin-left:-56px!important}.v-application--is-rtl .ms-xl-n14{margin-right:-56px!important}.v-application--is-ltr .ms-xl-n15{margin-left:-60px!important}.v-application--is-rtl .ms-xl-n15{margin-right:-60px!important}.v-application--is-ltr .ms-xl-n16{margin-left:-64px!important}.v-application--is-rtl .ms-xl-n16{margin-right:-64px!important}.v-application--is-ltr .me-xl-n1{margin-right:-4px!important}.v-application--is-rtl .me-xl-n1{margin-left:-4px!important}.v-application--is-ltr .me-xl-n2{margin-right:-8px!important}.v-application--is-rtl .me-xl-n2{margin-left:-8px!important}.v-application--is-ltr .me-xl-n3{margin-right:-12px!important}.v-application--is-rtl .me-xl-n3{margin-left:-12px!important}.v-application--is-ltr .me-xl-n4{margin-right:-16px!important}.v-application--is-rtl .me-xl-n4{margin-left:-16px!important}.v-application--is-ltr .me-xl-n5{margin-right:-20px!important}.v-application--is-rtl .me-xl-n5{margin-left:-20px!important}.v-application--is-ltr .me-xl-n6{margin-right:-24px!important}.v-application--is-rtl .me-xl-n6{margin-left:-24px!important}.v-application--is-ltr .me-xl-n7{margin-right:-28px!important}.v-application--is-rtl .me-xl-n7{margin-left:-28px!important}.v-application--is-ltr .me-xl-n8{margin-right:-32px!important}.v-application--is-rtl .me-xl-n8{margin-left:-32px!important}.v-application--is-ltr .me-xl-n9{margin-right:-36px!important}.v-application--is-rtl .me-xl-n9{margin-left:-36px!important}.v-application--is-ltr .me-xl-n10{margin-right:-40px!important}.v-application--is-rtl .me-xl-n10{margin-left:-40px!important}.v-application--is-ltr .me-xl-n11{margin-right:-44px!important}.v-application--is-rtl .me-xl-n11{margin-left:-44px!important}.v-application--is-ltr .me-xl-n12{margin-right:-48px!important}.v-application--is-rtl .me-xl-n12{margin-left:-48px!important}.v-application--is-ltr .me-xl-n13{margin-right:-52px!important}.v-application--is-rtl .me-xl-n13{margin-left:-52px!important}.v-application--is-ltr .me-xl-n14{margin-right:-56px!important}.v-application--is-rtl .me-xl-n14{margin-left:-56px!important}.v-application--is-ltr .me-xl-n15{margin-right:-60px!important}.v-application--is-rtl .me-xl-n15{margin-left:-60px!important}.v-application--is-ltr .me-xl-n16{margin-right:-64px!important}.v-application--is-rtl .me-xl-n16{margin-left:-64px!important}.v-application .pa-xl-0{padding:0!important}.v-application .pa-xl-1{padding:4px!important}.v-application .pa-xl-2{padding:8px!important}.v-application .pa-xl-3{padding:12px!important}.v-application .pa-xl-4{padding:16px!important}.v-application .pa-xl-5{padding:20px!important}.v-application .pa-xl-6{padding:24px!important}.v-application .pa-xl-7{padding:28px!important}.v-application .pa-xl-8{padding:32px!important}.v-application .pa-xl-9{padding:36px!important}.v-application .pa-xl-10{padding:40px!important}.v-application .pa-xl-11{padding:44px!important}.v-application .pa-xl-12{padding:48px!important}.v-application .pa-xl-13{padding:52px!important}.v-application .pa-xl-14{padding:56px!important}.v-application .pa-xl-15{padding:60px!important}.v-application .pa-xl-16{padding:64px!important}.v-application .px-xl-0{padding-right:0!important;padding-left:0!important}.v-application .px-xl-1{padding-right:4px!important;padding-left:4px!important}.v-application .px-xl-2{padding-right:8px!important;padding-left:8px!important}.v-application .px-xl-3{padding-right:12px!important;padding-left:12px!important}.v-application .px-xl-4{padding-right:16px!important;padding-left:16px!important}.v-application .px-xl-5{padding-right:20px!important;padding-left:20px!important}.v-application .px-xl-6{padding-right:24px!important;padding-left:24px!important}.v-application .px-xl-7{padding-right:28px!important;padding-left:28px!important}.v-application .px-xl-8{padding-right:32px!important;padding-left:32px!important}.v-application .px-xl-9{padding-right:36px!important;padding-left:36px!important}.v-application .px-xl-10{padding-right:40px!important;padding-left:40px!important}.v-application .px-xl-11{padding-right:44px!important;padding-left:44px!important}.v-application .px-xl-12{padding-right:48px!important;padding-left:48px!important}.v-application .px-xl-13{padding-right:52px!important;padding-left:52px!important}.v-application .px-xl-14{padding-right:56px!important;padding-left:56px!important}.v-application .px-xl-15{padding-right:60px!important;padding-left:60px!important}.v-application .px-xl-16{padding-right:64px!important;padding-left:64px!important}.v-application .py-xl-0{padding-top:0!important;padding-bottom:0!important}.v-application .py-xl-1{padding-top:4px!important;padding-bottom:4px!important}.v-application .py-xl-2{padding-top:8px!important;padding-bottom:8px!important}.v-application .py-xl-3{padding-top:12px!important;padding-bottom:12px!important}.v-application .py-xl-4{padding-top:16px!important;padding-bottom:16px!important}.v-application .py-xl-5{padding-top:20px!important;padding-bottom:20px!important}.v-application .py-xl-6{padding-top:24px!important;padding-bottom:24px!important}.v-application .py-xl-7{padding-top:28px!important;padding-bottom:28px!important}.v-application .py-xl-8{padding-top:32px!important;padding-bottom:32px!important}.v-application .py-xl-9{padding-top:36px!important;padding-bottom:36px!important}.v-application .py-xl-10{padding-top:40px!important;padding-bottom:40px!important}.v-application .py-xl-11{padding-top:44px!important;padding-bottom:44px!important}.v-application .py-xl-12{padding-top:48px!important;padding-bottom:48px!important}.v-application .py-xl-13{padding-top:52px!important;padding-bottom:52px!important}.v-application .py-xl-14{padding-top:56px!important;padding-bottom:56px!important}.v-application .py-xl-15{padding-top:60px!important;padding-bottom:60px!important}.v-application .py-xl-16{padding-top:64px!important;padding-bottom:64px!important}.v-application .pt-xl-0{padding-top:0!important}.v-application .pt-xl-1{padding-top:4px!important}.v-application .pt-xl-2{padding-top:8px!important}.v-application .pt-xl-3{padding-top:12px!important}.v-application .pt-xl-4{padding-top:16px!important}.v-application .pt-xl-5{padding-top:20px!important}.v-application .pt-xl-6{padding-top:24px!important}.v-application .pt-xl-7{padding-top:28px!important}.v-application .pt-xl-8{padding-top:32px!important}.v-application .pt-xl-9{padding-top:36px!important}.v-application .pt-xl-10{padding-top:40px!important}.v-application .pt-xl-11{padding-top:44px!important}.v-application .pt-xl-12{padding-top:48px!important}.v-application .pt-xl-13{padding-top:52px!important}.v-application .pt-xl-14{padding-top:56px!important}.v-application .pt-xl-15{padding-top:60px!important}.v-application .pt-xl-16{padding-top:64px!important}.v-application .pr-xl-0{padding-right:0!important}.v-application .pr-xl-1{padding-right:4px!important}.v-application .pr-xl-2{padding-right:8px!important}.v-application .pr-xl-3{padding-right:12px!important}.v-application .pr-xl-4{padding-right:16px!important}.v-application .pr-xl-5{padding-right:20px!important}.v-application .pr-xl-6{padding-right:24px!important}.v-application .pr-xl-7{padding-right:28px!important}.v-application .pr-xl-8{padding-right:32px!important}.v-application .pr-xl-9{padding-right:36px!important}.v-application .pr-xl-10{padding-right:40px!important}.v-application .pr-xl-11{padding-right:44px!important}.v-application .pr-xl-12{padding-right:48px!important}.v-application .pr-xl-13{padding-right:52px!important}.v-application .pr-xl-14{padding-right:56px!important}.v-application .pr-xl-15{padding-right:60px!important}.v-application .pr-xl-16{padding-right:64px!important}.v-application .pb-xl-0{padding-bottom:0!important}.v-application .pb-xl-1{padding-bottom:4px!important}.v-application .pb-xl-2{padding-bottom:8px!important}.v-application .pb-xl-3{padding-bottom:12px!important}.v-application .pb-xl-4{padding-bottom:16px!important}.v-application .pb-xl-5{padding-bottom:20px!important}.v-application .pb-xl-6{padding-bottom:24px!important}.v-application .pb-xl-7{padding-bottom:28px!important}.v-application .pb-xl-8{padding-bottom:32px!important}.v-application .pb-xl-9{padding-bottom:36px!important}.v-application .pb-xl-10{padding-bottom:40px!important}.v-application .pb-xl-11{padding-bottom:44px!important}.v-application .pb-xl-12{padding-bottom:48px!important}.v-application .pb-xl-13{padding-bottom:52px!important}.v-application .pb-xl-14{padding-bottom:56px!important}.v-application .pb-xl-15{padding-bottom:60px!important}.v-application .pb-xl-16{padding-bottom:64px!important}.v-application .pl-xl-0{padding-left:0!important}.v-application .pl-xl-1{padding-left:4px!important}.v-application .pl-xl-2{padding-left:8px!important}.v-application .pl-xl-3{padding-left:12px!important}.v-application .pl-xl-4{padding-left:16px!important}.v-application .pl-xl-5{padding-left:20px!important}.v-application .pl-xl-6{padding-left:24px!important}.v-application .pl-xl-7{padding-left:28px!important}.v-application .pl-xl-8{padding-left:32px!important}.v-application .pl-xl-9{padding-left:36px!important}.v-application .pl-xl-10{padding-left:40px!important}.v-application .pl-xl-11{padding-left:44px!important}.v-application .pl-xl-12{padding-left:48px!important}.v-application .pl-xl-13{padding-left:52px!important}.v-application .pl-xl-14{padding-left:56px!important}.v-application .pl-xl-15{padding-left:60px!important}.v-application .pl-xl-16{padding-left:64px!important}.v-application--is-ltr .ps-xl-0{padding-left:0!important}.v-application--is-rtl .ps-xl-0{padding-right:0!important}.v-application--is-ltr .ps-xl-1{padding-left:4px!important}.v-application--is-rtl .ps-xl-1{padding-right:4px!important}.v-application--is-ltr .ps-xl-2{padding-left:8px!important}.v-application--is-rtl .ps-xl-2{padding-right:8px!important}.v-application--is-ltr .ps-xl-3{padding-left:12px!important}.v-application--is-rtl .ps-xl-3{padding-right:12px!important}.v-application--is-ltr .ps-xl-4{padding-left:16px!important}.v-application--is-rtl .ps-xl-4{padding-right:16px!important}.v-application--is-ltr .ps-xl-5{padding-left:20px!important}.v-application--is-rtl .ps-xl-5{padding-right:20px!important}.v-application--is-ltr .ps-xl-6{padding-left:24px!important}.v-application--is-rtl .ps-xl-6{padding-right:24px!important}.v-application--is-ltr .ps-xl-7{padding-left:28px!important}.v-application--is-rtl .ps-xl-7{padding-right:28px!important}.v-application--is-ltr .ps-xl-8{padding-left:32px!important}.v-application--is-rtl .ps-xl-8{padding-right:32px!important}.v-application--is-ltr .ps-xl-9{padding-left:36px!important}.v-application--is-rtl .ps-xl-9{padding-right:36px!important}.v-application--is-ltr .ps-xl-10{padding-left:40px!important}.v-application--is-rtl .ps-xl-10{padding-right:40px!important}.v-application--is-ltr .ps-xl-11{padding-left:44px!important}.v-application--is-rtl .ps-xl-11{padding-right:44px!important}.v-application--is-ltr .ps-xl-12{padding-left:48px!important}.v-application--is-rtl .ps-xl-12{padding-right:48px!important}.v-application--is-ltr .ps-xl-13{padding-left:52px!important}.v-application--is-rtl .ps-xl-13{padding-right:52px!important}.v-application--is-ltr .ps-xl-14{padding-left:56px!important}.v-application--is-rtl .ps-xl-14{padding-right:56px!important}.v-application--is-ltr .ps-xl-15{padding-left:60px!important}.v-application--is-rtl .ps-xl-15{padding-right:60px!important}.v-application--is-ltr .ps-xl-16{padding-left:64px!important}.v-application--is-rtl .ps-xl-16{padding-right:64px!important}.v-application--is-ltr .pe-xl-0{padding-right:0!important}.v-application--is-rtl .pe-xl-0{padding-left:0!important}.v-application--is-ltr .pe-xl-1{padding-right:4px!important}.v-application--is-rtl .pe-xl-1{padding-left:4px!important}.v-application--is-ltr .pe-xl-2{padding-right:8px!important}.v-application--is-rtl .pe-xl-2{padding-left:8px!important}.v-application--is-ltr .pe-xl-3{padding-right:12px!important}.v-application--is-rtl .pe-xl-3{padding-left:12px!important}.v-application--is-ltr .pe-xl-4{padding-right:16px!important}.v-application--is-rtl .pe-xl-4{padding-left:16px!important}.v-application--is-ltr .pe-xl-5{padding-right:20px!important}.v-application--is-rtl .pe-xl-5{padding-left:20px!important}.v-application--is-ltr .pe-xl-6{padding-right:24px!important}.v-application--is-rtl .pe-xl-6{padding-left:24px!important}.v-application--is-ltr .pe-xl-7{padding-right:28px!important}.v-application--is-rtl .pe-xl-7{padding-left:28px!important}.v-application--is-ltr .pe-xl-8{padding-right:32px!important}.v-application--is-rtl .pe-xl-8{padding-left:32px!important}.v-application--is-ltr .pe-xl-9{padding-right:36px!important}.v-application--is-rtl .pe-xl-9{padding-left:36px!important}.v-application--is-ltr .pe-xl-10{padding-right:40px!important}.v-application--is-rtl .pe-xl-10{padding-left:40px!important}.v-application--is-ltr .pe-xl-11{padding-right:44px!important}.v-application--is-rtl .pe-xl-11{padding-left:44px!important}.v-application--is-ltr .pe-xl-12{padding-right:48px!important}.v-application--is-rtl .pe-xl-12{padding-left:48px!important}.v-application--is-ltr .pe-xl-13{padding-right:52px!important}.v-application--is-rtl .pe-xl-13{padding-left:52px!important}.v-application--is-ltr .pe-xl-14{padding-right:56px!important}.v-application--is-rtl .pe-xl-14{padding-left:56px!important}.v-application--is-ltr .pe-xl-15{padding-right:60px!important}.v-application--is-rtl .pe-xl-15{padding-left:60px!important}.v-application--is-ltr .pe-xl-16{padding-right:64px!important}.v-application--is-rtl .pe-xl-16{padding-left:64px!important}.v-application .text-xl-left{text-align:left!important}.v-application .text-xl-right{text-align:right!important}.v-application .text-xl-center{text-align:center!important}.v-application .text-xl-justify{text-align:justify!important}.v-application .text-xl-start{text-align:start!important}.v-application .text-xl-end{text-align:end!important}.v-application .text-xl-h1{font-size:6rem!important;line-height:6rem;letter-spacing:-.015625em!important}.v-application .text-xl-h1,.v-application .text-xl-h2{font-weight:300;font-family:Roboto,sans-serif!important}.v-application .text-xl-h2{font-size:3.75rem!important;line-height:3.75rem;letter-spacing:-.0083333333em!important}.v-application .text-xl-h3{font-size:3rem!important;line-height:3.125rem;letter-spacing:normal!important}.v-application .text-xl-h3,.v-application .text-xl-h4{font-weight:400;font-family:Roboto,sans-serif!important}.v-application .text-xl-h4{font-size:2.125rem!important;line-height:2.5rem;letter-spacing:.0073529412em!important}.v-application .text-xl-h5{font-size:1.5rem!important;font-weight:400;letter-spacing:normal!important}.v-application .text-xl-h5,.v-application .text-xl-h6{line-height:2rem;font-family:Roboto,sans-serif!important}.v-application .text-xl-h6{font-size:1.25rem!important;font-weight:500;letter-spacing:.0125em!important}.v-application .text-xl-subtitle-1{font-size:1rem!important;font-weight:400;line-height:1.75rem;letter-spacing:.009375em!important;font-family:Roboto,sans-serif!important}.v-application .text-xl-subtitle-2{font-size:.875rem!important;font-weight:500;line-height:1.375rem;letter-spacing:.0071428571em!important;font-family:Roboto,sans-serif!important}.v-application .text-xl-body-1{font-size:1rem!important;font-weight:400;line-height:1.5rem;letter-spacing:.03125em!important;font-family:Roboto,sans-serif!important}.v-application .text-xl-body-2{font-weight:400;line-height:1.25rem;letter-spacing:.0178571429em!important}.v-application .text-xl-body-2,.v-application .text-xl-button{font-size:.875rem!important;font-family:Roboto,sans-serif!important}.v-application .text-xl-button{font-weight:500;line-height:2.25rem;letter-spacing:.0892857143em!important;text-transform:uppercase!important}.v-application .text-xl-caption{font-weight:400;line-height:1.25rem;letter-spacing:.0333333333em!important}.v-application .text-xl-caption,.v-application .text-xl-overline{font-size:.75rem!important;font-family:Roboto,sans-serif!important}.v-application .text-xl-overline{font-weight:500;line-height:2rem;letter-spacing:.1666666667em!important;text-transform:uppercase!important}}@media print{.v-application .d-print-none{display:none!important}.v-application .d-print-inline{display:inline!important}.v-application .d-print-inline-block{display:inline-block!important}.v-application .d-print-block{display:block!important}.v-application .d-print-table{display:table!important}.v-application .d-print-table-row{display:table-row!important}.v-application .d-print-table-cell{display:table-cell!important}.v-application .d-print-flex{display:flex!important}.v-application .d-print-inline-flex{display:inline-flex!important}.v-application .float-print-none{float:none!important}.v-application .float-print-left{float:left!important}.v-application .float-print-right{float:right!important}}.v-ripple__container{border-radius:inherit;width:100%;height:100%;z-index:0;contain:strict}.v-ripple__animation,.v-ripple__container{color:inherit;position:absolute;left:0;top:0;overflow:hidden;pointer-events:none}.v-ripple__animation{border-radius:50%;background:currentColor;opacity:0;will-change:transform,opacity}.v-ripple__animation--enter{transition:none}.v-ripple__animation--in{transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .1s cubic-bezier(.4,0,.2,1)}.v-ripple__animation--out{transition:opacity .3s cubic-bezier(.4,0,.2,1)}.v-progress-circular{position:relative;display:inline-flex;vertical-align:middle;justify-content:center;align-items:center}.v-progress-circular svg{width:100%;height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;z-index:0}.v-progress-circular--indeterminate svg{-webkit-animation:progress-circular-rotate 1.4s linear infinite;animation:progress-circular-rotate 1.4s linear infinite;transform-origin:center center;transition:all .2s ease-in-out}.v-progress-circular--indeterminate .v-progress-circular__overlay{-webkit-animation:progress-circular-dash 1.4s ease-in-out infinite;animation:progress-circular-dash 1.4s ease-in-out infinite;stroke-linecap:round;stroke-dasharray:80,200;stroke-dashoffset:0px}.v-progress-circular__info{align-items:center;display:flex;justify-content:center}.v-progress-circular__underlay{stroke:rgba(0,0,0,.1);z-index:1}.v-progress-circular__overlay{stroke:currentColor;z-index:2;transition:all .6s ease-in-out}@-webkit-keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@-webkit-keyframes progress-circular-rotate{to{transform:rotate(1turn)}}@keyframes progress-circular-rotate{to{transform:rotate(1turn)}}.container.grow-shrink-0{flex-grow:0;flex-shrink:0}.container.fill-height{align-items:center;display:flex;flex-wrap:wrap}.container.fill-height>.row{flex:1 1 100%;max-width:calc(100% + 24px)}.container.fill-height>.layout{height:100%;flex:1 1 auto}.container.fill-height>.layout.grow-shrink-0{flex-grow:0;flex-shrink:0}.container.grid-list-xs .layout .flex{padding:1px}.container.grid-list-xs .layout:only-child{margin:-1px}.container.grid-list-xs .layout:not(:only-child){margin:auto -1px}.container.grid-list-xs :not(:only-child) .layout:first-child{margin-top:-1px}.container.grid-list-xs :not(:only-child) .layout:last-child{margin-bottom:-1px}.container.grid-list-sm .layout .flex{padding:2px}.container.grid-list-sm .layout:only-child{margin:-2px}.container.grid-list-sm .layout:not(:only-child){margin:auto -2px}.container.grid-list-sm :not(:only-child) .layout:first-child{margin-top:-2px}.container.grid-list-sm :not(:only-child) .layout:last-child{margin-bottom:-2px}.container.grid-list-md .layout .flex{padding:4px}.container.grid-list-md .layout:only-child{margin:-4px}.container.grid-list-md .layout:not(:only-child){margin:auto -4px}.container.grid-list-md :not(:only-child) .layout:first-child{margin-top:-4px}.container.grid-list-md :not(:only-child) .layout:last-child{margin-bottom:-4px}.container.grid-list-lg .layout .flex{padding:8px}.container.grid-list-lg .layout:only-child{margin:-8px}.container.grid-list-lg .layout:not(:only-child){margin:auto -8px}.container.grid-list-lg :not(:only-child) .layout:first-child{margin-top:-8px}.container.grid-list-lg :not(:only-child) .layout:last-child{margin-bottom:-8px}.container.grid-list-xl .layout .flex{padding:12px}.container.grid-list-xl .layout:only-child{margin:-12px}.container.grid-list-xl .layout:not(:only-child){margin:auto -12px}.container.grid-list-xl :not(:only-child) .layout:first-child{margin-top:-12px}.container.grid-list-xl :not(:only-child) .layout:last-child{margin-bottom:-12px}.layout{display:flex;flex:1 1 auto;flex-wrap:nowrap;min-width:0}.layout.reverse{flex-direction:row-reverse}.layout.column{flex-direction:column}.layout.column.reverse{flex-direction:column-reverse}.layout.column>.flex{max-width:100%}.layout.wrap{flex-wrap:wrap}.layout.grow-shrink-0{flex-grow:0;flex-shrink:0}@media (min-width:0){.flex.xs12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-xs12{order:12}.flex.xs11{flex-basis:91.6666666667%;flex-grow:0;max-width:91.6666666667%}.flex.order-xs11{order:11}.flex.xs10{flex-basis:83.3333333333%;flex-grow:0;max-width:83.3333333333%}.flex.order-xs10{order:10}.flex.xs9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-xs9{order:9}.flex.xs8{flex-basis:66.6666666667%;flex-grow:0;max-width:66.6666666667%}.flex.order-xs8{order:8}.flex.xs7{flex-basis:58.3333333333%;flex-grow:0;max-width:58.3333333333%}.flex.order-xs7{order:7}.flex.xs6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-xs6{order:6}.flex.xs5{flex-basis:41.6666666667%;flex-grow:0;max-width:41.6666666667%}.flex.order-xs5{order:5}.flex.xs4{flex-basis:33.3333333333%;flex-grow:0;max-width:33.3333333333%}.flex.order-xs4{order:4}.flex.xs3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-xs3{order:3}.flex.xs2{flex-basis:16.6666666667%;flex-grow:0;max-width:16.6666666667%}.flex.order-xs2{order:2}.flex.xs1{flex-basis:8.3333333333%;flex-grow:0;max-width:8.3333333333%}.flex.order-xs1{order:1}.v-application--is-ltr .flex.offset-xs12{margin-left:100%}.v-application--is-rtl .flex.offset-xs12{margin-right:100%}.v-application--is-ltr .flex.offset-xs11{margin-left:91.6666666667%}.v-application--is-rtl .flex.offset-xs11{margin-right:91.6666666667%}.v-application--is-ltr .flex.offset-xs10{margin-left:83.3333333333%}.v-application--is-rtl .flex.offset-xs10{margin-right:83.3333333333%}.v-application--is-ltr .flex.offset-xs9{margin-left:75%}.v-application--is-rtl .flex.offset-xs9{margin-right:75%}.v-application--is-ltr .flex.offset-xs8{margin-left:66.6666666667%}.v-application--is-rtl .flex.offset-xs8{margin-right:66.6666666667%}.v-application--is-ltr .flex.offset-xs7{margin-left:58.3333333333%}.v-application--is-rtl .flex.offset-xs7{margin-right:58.3333333333%}.v-application--is-ltr .flex.offset-xs6{margin-left:50%}.v-application--is-rtl .flex.offset-xs6{margin-right:50%}.v-application--is-ltr .flex.offset-xs5{margin-left:41.6666666667%}.v-application--is-rtl .flex.offset-xs5{margin-right:41.6666666667%}.v-application--is-ltr .flex.offset-xs4{margin-left:33.3333333333%}.v-application--is-rtl .flex.offset-xs4{margin-right:33.3333333333%}.v-application--is-ltr .flex.offset-xs3{margin-left:25%}.v-application--is-rtl .flex.offset-xs3{margin-right:25%}.v-application--is-ltr .flex.offset-xs2{margin-left:16.6666666667%}.v-application--is-rtl .flex.offset-xs2{margin-right:16.6666666667%}.v-application--is-ltr .flex.offset-xs1{margin-left:8.3333333333%}.v-application--is-rtl .flex.offset-xs1{margin-right:8.3333333333%}.v-application--is-ltr .flex.offset-xs0{margin-left:0}.v-application--is-rtl .flex.offset-xs0{margin-right:0}}@media (min-width:600px){.flex.sm12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-sm12{order:12}.flex.sm11{flex-basis:91.6666666667%;flex-grow:0;max-width:91.6666666667%}.flex.order-sm11{order:11}.flex.sm10{flex-basis:83.3333333333%;flex-grow:0;max-width:83.3333333333%}.flex.order-sm10{order:10}.flex.sm9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-sm9{order:9}.flex.sm8{flex-basis:66.6666666667%;flex-grow:0;max-width:66.6666666667%}.flex.order-sm8{order:8}.flex.sm7{flex-basis:58.3333333333%;flex-grow:0;max-width:58.3333333333%}.flex.order-sm7{order:7}.flex.sm6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-sm6{order:6}.flex.sm5{flex-basis:41.6666666667%;flex-grow:0;max-width:41.6666666667%}.flex.order-sm5{order:5}.flex.sm4{flex-basis:33.3333333333%;flex-grow:0;max-width:33.3333333333%}.flex.order-sm4{order:4}.flex.sm3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-sm3{order:3}.flex.sm2{flex-basis:16.6666666667%;flex-grow:0;max-width:16.6666666667%}.flex.order-sm2{order:2}.flex.sm1{flex-basis:8.3333333333%;flex-grow:0;max-width:8.3333333333%}.flex.order-sm1{order:1}.v-application--is-ltr .flex.offset-sm12{margin-left:100%}.v-application--is-rtl .flex.offset-sm12{margin-right:100%}.v-application--is-ltr .flex.offset-sm11{margin-left:91.6666666667%}.v-application--is-rtl .flex.offset-sm11{margin-right:91.6666666667%}.v-application--is-ltr .flex.offset-sm10{margin-left:83.3333333333%}.v-application--is-rtl .flex.offset-sm10{margin-right:83.3333333333%}.v-application--is-ltr .flex.offset-sm9{margin-left:75%}.v-application--is-rtl .flex.offset-sm9{margin-right:75%}.v-application--is-ltr .flex.offset-sm8{margin-left:66.6666666667%}.v-application--is-rtl .flex.offset-sm8{margin-right:66.6666666667%}.v-application--is-ltr .flex.offset-sm7{margin-left:58.3333333333%}.v-application--is-rtl .flex.offset-sm7{margin-right:58.3333333333%}.v-application--is-ltr .flex.offset-sm6{margin-left:50%}.v-application--is-rtl .flex.offset-sm6{margin-right:50%}.v-application--is-ltr .flex.offset-sm5{margin-left:41.6666666667%}.v-application--is-rtl .flex.offset-sm5{margin-right:41.6666666667%}.v-application--is-ltr .flex.offset-sm4{margin-left:33.3333333333%}.v-application--is-rtl .flex.offset-sm4{margin-right:33.3333333333%}.v-application--is-ltr .flex.offset-sm3{margin-left:25%}.v-application--is-rtl .flex.offset-sm3{margin-right:25%}.v-application--is-ltr .flex.offset-sm2{margin-left:16.6666666667%}.v-application--is-rtl .flex.offset-sm2{margin-right:16.6666666667%}.v-application--is-ltr .flex.offset-sm1{margin-left:8.3333333333%}.v-application--is-rtl .flex.offset-sm1{margin-right:8.3333333333%}.v-application--is-ltr .flex.offset-sm0{margin-left:0}.v-application--is-rtl .flex.offset-sm0{margin-right:0}}@media (min-width:960px){.flex.md12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-md12{order:12}.flex.md11{flex-basis:91.6666666667%;flex-grow:0;max-width:91.6666666667%}.flex.order-md11{order:11}.flex.md10{flex-basis:83.3333333333%;flex-grow:0;max-width:83.3333333333%}.flex.order-md10{order:10}.flex.md9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-md9{order:9}.flex.md8{flex-basis:66.6666666667%;flex-grow:0;max-width:66.6666666667%}.flex.order-md8{order:8}.flex.md7{flex-basis:58.3333333333%;flex-grow:0;max-width:58.3333333333%}.flex.order-md7{order:7}.flex.md6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-md6{order:6}.flex.md5{flex-basis:41.6666666667%;flex-grow:0;max-width:41.6666666667%}.flex.order-md5{order:5}.flex.md4{flex-basis:33.3333333333%;flex-grow:0;max-width:33.3333333333%}.flex.order-md4{order:4}.flex.md3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-md3{order:3}.flex.md2{flex-basis:16.6666666667%;flex-grow:0;max-width:16.6666666667%}.flex.order-md2{order:2}.flex.md1{flex-basis:8.3333333333%;flex-grow:0;max-width:8.3333333333%}.flex.order-md1{order:1}.v-application--is-ltr .flex.offset-md12{margin-left:100%}.v-application--is-rtl .flex.offset-md12{margin-right:100%}.v-application--is-ltr .flex.offset-md11{margin-left:91.6666666667%}.v-application--is-rtl .flex.offset-md11{margin-right:91.6666666667%}.v-application--is-ltr .flex.offset-md10{margin-left:83.3333333333%}.v-application--is-rtl .flex.offset-md10{margin-right:83.3333333333%}.v-application--is-ltr .flex.offset-md9{margin-left:75%}.v-application--is-rtl .flex.offset-md9{margin-right:75%}.v-application--is-ltr .flex.offset-md8{margin-left:66.6666666667%}.v-application--is-rtl .flex.offset-md8{margin-right:66.6666666667%}.v-application--is-ltr .flex.offset-md7{margin-left:58.3333333333%}.v-application--is-rtl .flex.offset-md7{margin-right:58.3333333333%}.v-application--is-ltr .flex.offset-md6{margin-left:50%}.v-application--is-rtl .flex.offset-md6{margin-right:50%}.v-application--is-ltr .flex.offset-md5{margin-left:41.6666666667%}.v-application--is-rtl .flex.offset-md5{margin-right:41.6666666667%}.v-application--is-ltr .flex.offset-md4{margin-left:33.3333333333%}.v-application--is-rtl .flex.offset-md4{margin-right:33.3333333333%}.v-application--is-ltr .flex.offset-md3{margin-left:25%}.v-application--is-rtl .flex.offset-md3{margin-right:25%}.v-application--is-ltr .flex.offset-md2{margin-left:16.6666666667%}.v-application--is-rtl .flex.offset-md2{margin-right:16.6666666667%}.v-application--is-ltr .flex.offset-md1{margin-left:8.3333333333%}.v-application--is-rtl .flex.offset-md1{margin-right:8.3333333333%}.v-application--is-ltr .flex.offset-md0{margin-left:0}.v-application--is-rtl .flex.offset-md0{margin-right:0}}@media (min-width:1264px){.flex.lg12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-lg12{order:12}.flex.lg11{flex-basis:91.6666666667%;flex-grow:0;max-width:91.6666666667%}.flex.order-lg11{order:11}.flex.lg10{flex-basis:83.3333333333%;flex-grow:0;max-width:83.3333333333%}.flex.order-lg10{order:10}.flex.lg9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-lg9{order:9}.flex.lg8{flex-basis:66.6666666667%;flex-grow:0;max-width:66.6666666667%}.flex.order-lg8{order:8}.flex.lg7{flex-basis:58.3333333333%;flex-grow:0;max-width:58.3333333333%}.flex.order-lg7{order:7}.flex.lg6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-lg6{order:6}.flex.lg5{flex-basis:41.6666666667%;flex-grow:0;max-width:41.6666666667%}.flex.order-lg5{order:5}.flex.lg4{flex-basis:33.3333333333%;flex-grow:0;max-width:33.3333333333%}.flex.order-lg4{order:4}.flex.lg3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-lg3{order:3}.flex.lg2{flex-basis:16.6666666667%;flex-grow:0;max-width:16.6666666667%}.flex.order-lg2{order:2}.flex.lg1{flex-basis:8.3333333333%;flex-grow:0;max-width:8.3333333333%}.flex.order-lg1{order:1}.v-application--is-ltr .flex.offset-lg12{margin-left:100%}.v-application--is-rtl .flex.offset-lg12{margin-right:100%}.v-application--is-ltr .flex.offset-lg11{margin-left:91.6666666667%}.v-application--is-rtl .flex.offset-lg11{margin-right:91.6666666667%}.v-application--is-ltr .flex.offset-lg10{margin-left:83.3333333333%}.v-application--is-rtl .flex.offset-lg10{margin-right:83.3333333333%}.v-application--is-ltr .flex.offset-lg9{margin-left:75%}.v-application--is-rtl .flex.offset-lg9{margin-right:75%}.v-application--is-ltr .flex.offset-lg8{margin-left:66.6666666667%}.v-application--is-rtl .flex.offset-lg8{margin-right:66.6666666667%}.v-application--is-ltr .flex.offset-lg7{margin-left:58.3333333333%}.v-application--is-rtl .flex.offset-lg7{margin-right:58.3333333333%}.v-application--is-ltr .flex.offset-lg6{margin-left:50%}.v-application--is-rtl .flex.offset-lg6{margin-right:50%}.v-application--is-ltr .flex.offset-lg5{margin-left:41.6666666667%}.v-application--is-rtl .flex.offset-lg5{margin-right:41.6666666667%}.v-application--is-ltr .flex.offset-lg4{margin-left:33.3333333333%}.v-application--is-rtl .flex.offset-lg4{margin-right:33.3333333333%}.v-application--is-ltr .flex.offset-lg3{margin-left:25%}.v-application--is-rtl .flex.offset-lg3{margin-right:25%}.v-application--is-ltr .flex.offset-lg2{margin-left:16.6666666667%}.v-application--is-rtl .flex.offset-lg2{margin-right:16.6666666667%}.v-application--is-ltr .flex.offset-lg1{margin-left:8.3333333333%}.v-application--is-rtl .flex.offset-lg1{margin-right:8.3333333333%}.v-application--is-ltr .flex.offset-lg0{margin-left:0}.v-application--is-rtl .flex.offset-lg0{margin-right:0}}@media (min-width:1904px){.flex.xl12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-xl12{order:12}.flex.xl11{flex-basis:91.6666666667%;flex-grow:0;max-width:91.6666666667%}.flex.order-xl11{order:11}.flex.xl10{flex-basis:83.3333333333%;flex-grow:0;max-width:83.3333333333%}.flex.order-xl10{order:10}.flex.xl9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-xl9{order:9}.flex.xl8{flex-basis:66.6666666667%;flex-grow:0;max-width:66.6666666667%}.flex.order-xl8{order:8}.flex.xl7{flex-basis:58.3333333333%;flex-grow:0;max-width:58.3333333333%}.flex.order-xl7{order:7}.flex.xl6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-xl6{order:6}.flex.xl5{flex-basis:41.6666666667%;flex-grow:0;max-width:41.6666666667%}.flex.order-xl5{order:5}.flex.xl4{flex-basis:33.3333333333%;flex-grow:0;max-width:33.3333333333%}.flex.order-xl4{order:4}.flex.xl3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-xl3{order:3}.flex.xl2{flex-basis:16.6666666667%;flex-grow:0;max-width:16.6666666667%}.flex.order-xl2{order:2}.flex.xl1{flex-basis:8.3333333333%;flex-grow:0;max-width:8.3333333333%}.flex.order-xl1{order:1}.v-application--is-ltr .flex.offset-xl12{margin-left:100%}.v-application--is-rtl .flex.offset-xl12{margin-right:100%}.v-application--is-ltr .flex.offset-xl11{margin-left:91.6666666667%}.v-application--is-rtl .flex.offset-xl11{margin-right:91.6666666667%}.v-application--is-ltr .flex.offset-xl10{margin-left:83.3333333333%}.v-application--is-rtl .flex.offset-xl10{margin-right:83.3333333333%}.v-application--is-ltr .flex.offset-xl9{margin-left:75%}.v-application--is-rtl .flex.offset-xl9{margin-right:75%}.v-application--is-ltr .flex.offset-xl8{margin-left:66.6666666667%}.v-application--is-rtl .flex.offset-xl8{margin-right:66.6666666667%}.v-application--is-ltr .flex.offset-xl7{margin-left:58.3333333333%}.v-application--is-rtl .flex.offset-xl7{margin-right:58.3333333333%}.v-application--is-ltr .flex.offset-xl6{margin-left:50%}.v-application--is-rtl .flex.offset-xl6{margin-right:50%}.v-application--is-ltr .flex.offset-xl5{margin-left:41.6666666667%}.v-application--is-rtl .flex.offset-xl5{margin-right:41.6666666667%}.v-application--is-ltr .flex.offset-xl4{margin-left:33.3333333333%}.v-application--is-rtl .flex.offset-xl4{margin-right:33.3333333333%}.v-application--is-ltr .flex.offset-xl3{margin-left:25%}.v-application--is-rtl .flex.offset-xl3{margin-right:25%}.v-application--is-ltr .flex.offset-xl2{margin-left:16.6666666667%}.v-application--is-rtl .flex.offset-xl2{margin-right:16.6666666667%}.v-application--is-ltr .flex.offset-xl1{margin-left:8.3333333333%}.v-application--is-rtl .flex.offset-xl1{margin-right:8.3333333333%}.v-application--is-ltr .flex.offset-xl0{margin-left:0}.v-application--is-rtl .flex.offset-xl0{margin-right:0}}.child-flex>*,.flex{flex:1 1 auto;max-width:100%}.child-flex>.grow-shrink-0,.flex.grow-shrink-0{flex-grow:0;flex-shrink:0}.grow,.spacer{flex-grow:1!important}.grow{flex-shrink:0!important}.shrink{flex-grow:0!important;flex-shrink:1!important}.fill-height{height:100%}.container{width:100%;padding:12px;margin-right:auto;margin-left:auto}@media(min-width:960px){.container{max-width:900px}}@media(min-width:1264px){.container{max-width:1185px}}@media(min-width:1904px){.container{max-width:1785px}}.container--fluid{max-width:100%}.row{display:flex;flex-wrap:wrap;flex:1 1 auto;margin-right:-12px;margin-left:-12px}.row--dense{margin-right:-4px;margin-left:-4px}.row--dense>.col,.row--dense>[class*=col-]{padding:4px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding:0}.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-auto,.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{width:100%;padding:12px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-12{flex:0 0 100%;max-width:100%}.v-application--is-ltr .offset-1{margin-left:8.3333333333%}.v-application--is-rtl .offset-1{margin-right:8.3333333333%}.v-application--is-ltr .offset-2{margin-left:16.6666666667%}.v-application--is-rtl .offset-2{margin-right:16.6666666667%}.v-application--is-ltr .offset-3{margin-left:25%}.v-application--is-rtl .offset-3{margin-right:25%}.v-application--is-ltr .offset-4{margin-left:33.3333333333%}.v-application--is-rtl .offset-4{margin-right:33.3333333333%}.v-application--is-ltr .offset-5{margin-left:41.6666666667%}.v-application--is-rtl .offset-5{margin-right:41.6666666667%}.v-application--is-ltr .offset-6{margin-left:50%}.v-application--is-rtl .offset-6{margin-right:50%}.v-application--is-ltr .offset-7{margin-left:58.3333333333%}.v-application--is-rtl .offset-7{margin-right:58.3333333333%}.v-application--is-ltr .offset-8{margin-left:66.6666666667%}.v-application--is-rtl .offset-8{margin-right:66.6666666667%}.v-application--is-ltr .offset-9{margin-left:75%}.v-application--is-rtl .offset-9{margin-right:75%}.v-application--is-ltr .offset-10{margin-left:83.3333333333%}.v-application--is-rtl .offset-10{margin-right:83.3333333333%}.v-application--is-ltr .offset-11{margin-left:91.6666666667%}.v-application--is-rtl .offset-11{margin-right:91.6666666667%}@media(min-width:600px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.v-application--is-ltr .offset-sm-0{margin-left:0}.v-application--is-rtl .offset-sm-0{margin-right:0}.v-application--is-ltr .offset-sm-1{margin-left:8.3333333333%}.v-application--is-rtl .offset-sm-1{margin-right:8.3333333333%}.v-application--is-ltr .offset-sm-2{margin-left:16.6666666667%}.v-application--is-rtl .offset-sm-2{margin-right:16.6666666667%}.v-application--is-ltr .offset-sm-3{margin-left:25%}.v-application--is-rtl .offset-sm-3{margin-right:25%}.v-application--is-ltr .offset-sm-4{margin-left:33.3333333333%}.v-application--is-rtl .offset-sm-4{margin-right:33.3333333333%}.v-application--is-ltr .offset-sm-5{margin-left:41.6666666667%}.v-application--is-rtl .offset-sm-5{margin-right:41.6666666667%}.v-application--is-ltr .offset-sm-6{margin-left:50%}.v-application--is-rtl .offset-sm-6{margin-right:50%}.v-application--is-ltr .offset-sm-7{margin-left:58.3333333333%}.v-application--is-rtl .offset-sm-7{margin-right:58.3333333333%}.v-application--is-ltr .offset-sm-8{margin-left:66.6666666667%}.v-application--is-rtl .offset-sm-8{margin-right:66.6666666667%}.v-application--is-ltr .offset-sm-9{margin-left:75%}.v-application--is-rtl .offset-sm-9{margin-right:75%}.v-application--is-ltr .offset-sm-10{margin-left:83.3333333333%}.v-application--is-rtl .offset-sm-10{margin-right:83.3333333333%}.v-application--is-ltr .offset-sm-11{margin-left:91.6666666667%}.v-application--is-rtl .offset-sm-11{margin-right:91.6666666667%}}@media(min-width:960px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12{flex:0 0 100%;max-width:100%}.v-application--is-ltr .offset-md-0{margin-left:0}.v-application--is-rtl .offset-md-0{margin-right:0}.v-application--is-ltr .offset-md-1{margin-left:8.3333333333%}.v-application--is-rtl .offset-md-1{margin-right:8.3333333333%}.v-application--is-ltr .offset-md-2{margin-left:16.6666666667%}.v-application--is-rtl .offset-md-2{margin-right:16.6666666667%}.v-application--is-ltr .offset-md-3{margin-left:25%}.v-application--is-rtl .offset-md-3{margin-right:25%}.v-application--is-ltr .offset-md-4{margin-left:33.3333333333%}.v-application--is-rtl .offset-md-4{margin-right:33.3333333333%}.v-application--is-ltr .offset-md-5{margin-left:41.6666666667%}.v-application--is-rtl .offset-md-5{margin-right:41.6666666667%}.v-application--is-ltr .offset-md-6{margin-left:50%}.v-application--is-rtl .offset-md-6{margin-right:50%}.v-application--is-ltr .offset-md-7{margin-left:58.3333333333%}.v-application--is-rtl .offset-md-7{margin-right:58.3333333333%}.v-application--is-ltr .offset-md-8{margin-left:66.6666666667%}.v-application--is-rtl .offset-md-8{margin-right:66.6666666667%}.v-application--is-ltr .offset-md-9{margin-left:75%}.v-application--is-rtl .offset-md-9{margin-right:75%}.v-application--is-ltr .offset-md-10{margin-left:83.3333333333%}.v-application--is-rtl .offset-md-10{margin-right:83.3333333333%}.v-application--is-ltr .offset-md-11{margin-left:91.6666666667%}.v-application--is-rtl .offset-md-11{margin-right:91.6666666667%}}@media(min-width:1264px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.v-application--is-ltr .offset-lg-0{margin-left:0}.v-application--is-rtl .offset-lg-0{margin-right:0}.v-application--is-ltr .offset-lg-1{margin-left:8.3333333333%}.v-application--is-rtl .offset-lg-1{margin-right:8.3333333333%}.v-application--is-ltr .offset-lg-2{margin-left:16.6666666667%}.v-application--is-rtl .offset-lg-2{margin-right:16.6666666667%}.v-application--is-ltr .offset-lg-3{margin-left:25%}.v-application--is-rtl .offset-lg-3{margin-right:25%}.v-application--is-ltr .offset-lg-4{margin-left:33.3333333333%}.v-application--is-rtl .offset-lg-4{margin-right:33.3333333333%}.v-application--is-ltr .offset-lg-5{margin-left:41.6666666667%}.v-application--is-rtl .offset-lg-5{margin-right:41.6666666667%}.v-application--is-ltr .offset-lg-6{margin-left:50%}.v-application--is-rtl .offset-lg-6{margin-right:50%}.v-application--is-ltr .offset-lg-7{margin-left:58.3333333333%}.v-application--is-rtl .offset-lg-7{margin-right:58.3333333333%}.v-application--is-ltr .offset-lg-8{margin-left:66.6666666667%}.v-application--is-rtl .offset-lg-8{margin-right:66.6666666667%}.v-application--is-ltr .offset-lg-9{margin-left:75%}.v-application--is-rtl .offset-lg-9{margin-right:75%}.v-application--is-ltr .offset-lg-10{margin-left:83.3333333333%}.v-application--is-rtl .offset-lg-10{margin-right:83.3333333333%}.v-application--is-ltr .offset-lg-11{margin-left:91.6666666667%}.v-application--is-rtl .offset-lg-11{margin-right:91.6666666667%}}@media(min-width:1904px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.v-application--is-ltr .offset-xl-0{margin-left:0}.v-application--is-rtl .offset-xl-0{margin-right:0}.v-application--is-ltr .offset-xl-1{margin-left:8.3333333333%}.v-application--is-rtl .offset-xl-1{margin-right:8.3333333333%}.v-application--is-ltr .offset-xl-2{margin-left:16.6666666667%}.v-application--is-rtl .offset-xl-2{margin-right:16.6666666667%}.v-application--is-ltr .offset-xl-3{margin-left:25%}.v-application--is-rtl .offset-xl-3{margin-right:25%}.v-application--is-ltr .offset-xl-4{margin-left:33.3333333333%}.v-application--is-rtl .offset-xl-4{margin-right:33.3333333333%}.v-application--is-ltr .offset-xl-5{margin-left:41.6666666667%}.v-application--is-rtl .offset-xl-5{margin-right:41.6666666667%}.v-application--is-ltr .offset-xl-6{margin-left:50%}.v-application--is-rtl .offset-xl-6{margin-right:50%}.v-application--is-ltr .offset-xl-7{margin-left:58.3333333333%}.v-application--is-rtl .offset-xl-7{margin-right:58.3333333333%}.v-application--is-ltr .offset-xl-8{margin-left:66.6666666667%}.v-application--is-rtl .offset-xl-8{margin-right:66.6666666667%}.v-application--is-ltr .offset-xl-9{margin-left:75%}.v-application--is-rtl .offset-xl-9{margin-right:75%}.v-application--is-ltr .offset-xl-10{margin-left:83.3333333333%}.v-application--is-rtl .offset-xl-10{margin-right:83.3333333333%}.v-application--is-ltr .offset-xl-11{margin-left:91.6666666667%}.v-application--is-rtl .offset-xl-11{margin-right:91.6666666667%}}.theme--light.v-icon{color:rgba(0,0,0,.54)}.theme--light.v-icon:focus:after{opacity:.12}.theme--light.v-icon.v-icon.v-icon--disabled{color:rgba(0,0,0,.38)!important}.theme--dark.v-icon{color:#fff}.theme--dark.v-icon:focus:after{opacity:.24}.theme--dark.v-icon.v-icon.v-icon--disabled{color:hsla(0,0%,100%,.5)!important}.v-icon.v-icon{align-items:center;display:inline-flex;font-feature-settings:"liga";font-size:24px;justify-content:center;letter-spacing:normal;line-height:1;position:relative;text-indent:0;transition:.3s cubic-bezier(.25,.8,.5,1),visibility 0s;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-icon.v-icon:after{background-color:currentColor;border-radius:50%;content:"";display:inline-block;height:100%;opacity:0;pointer-events:none;position:absolute;transform:scale(1.3);width:100%;transition:opacity .2s cubic-bezier(.4,0,.6,1)}.v-icon.v-icon--dense{font-size:20px}.v-icon--right{margin-left:8px}.v-icon--left{margin-right:8px}.v-icon.v-icon.v-icon--link{cursor:pointer;outline:none}.v-icon--disabled{pointer-events:none}.v-icon--is-component,.v-icon--svg{height:24px;width:24px}.v-icon--svg{fill:currentColor}.v-icon--dense--is-component{height:20px}.v-item-group{flex:0 1 auto;position:relative;max-width:100%;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-list.accent>.v-list-item,.v-list.error>.v-list-item,.v-list.info>.v-list-item,.v-list.primary>.v-list-item,.v-list.secondary>.v-list-item,.v-list.success>.v-list-item,.v-list.warning>.v-list-item{color:#fff}.theme--light.v-list{background:#fff;color:rgba(0,0,0,.87)}.theme--light.v-list .v-list--disabled{color:rgba(0,0,0,.38)}.theme--light.v-list .v-list-group--active:after,.theme--light.v-list .v-list-group--active:before{background:rgba(0,0,0,.12)}.theme--dark.v-list{background:#1e1e1e;color:#fff}.theme--dark.v-list .v-list--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-list .v-list-group--active:after,.theme--dark.v-list .v-list-group--active:before{background:hsla(0,0%,100%,.12)}.v-sheet.v-list{border-radius:0}.v-sheet.v-list:not(.v-sheet--outlined){box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-sheet.v-list.v-sheet--shaped{border-radius:0}.v-list{display:block;padding:8px 0;position:static;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);will-change:box-shadow}.v-list--disabled{pointer-events:none}.v-list--flat .v-list-item:before{display:none}.v-list--dense .v-subheader{font-size:.75rem;height:40px;padding:0 8px}.v-list--nav .v-list-item:not(:last-child):not(:only-child),.v-list--rounded .v-list-item:not(:last-child):not(:only-child){margin-bottom:8px}.v-list--nav.v-list--dense .v-list-item:not(:last-child):not(:only-child),.v-list--nav .v-list-item--dense:not(:last-child):not(:only-child),.v-list--rounded.v-list--dense .v-list-item:not(:last-child):not(:only-child),.v-list--rounded .v-list-item--dense:not(:last-child):not(:only-child){margin-bottom:4px}.v-list--nav{padding-left:8px;padding-right:8px}.v-list--nav .v-list-item{padding:0 8px}.v-list--nav .v-list-item,.v-list--nav .v-list-item:before{border-radius:4px}.v-application--is-ltr .v-list.v-sheet--shaped .v-list-item,.v-application--is-ltr .v-list.v-sheet--shaped .v-list-item:before,.v-application--is-ltr .v-list.v-sheet--shaped .v-list-item>.v-ripple__container{border-bottom-right-radius:32px!important;border-top-right-radius:32px!important}.v-application--is-rtl .v-list.v-sheet--shaped .v-list-item,.v-application--is-rtl .v-list.v-sheet--shaped .v-list-item:before,.v-application--is-rtl .v-list.v-sheet--shaped .v-list-item>.v-ripple__container{border-bottom-left-radius:32px!important;border-top-left-radius:32px!important}.v-application--is-ltr .v-list.v-sheet--shaped.v-list--two-line .v-list-item,.v-application--is-ltr .v-list.v-sheet--shaped.v-list--two-line .v-list-item:before,.v-application--is-ltr .v-list.v-sheet--shaped.v-list--two-line .v-list-item>.v-ripple__container{border-bottom-right-radius:42.6666666667px!important;border-top-right-radius:42.6666666667px!important}.v-application--is-rtl .v-list.v-sheet--shaped.v-list--two-line .v-list-item,.v-application--is-rtl .v-list.v-sheet--shaped.v-list--two-line .v-list-item:before,.v-application--is-rtl .v-list.v-sheet--shaped.v-list--two-line .v-list-item>.v-ripple__container{border-bottom-left-radius:42.6666666667px!important;border-top-left-radius:42.6666666667px!important}.v-application--is-ltr .v-list.v-sheet--shaped.v-list--three-line .v-list-item,.v-application--is-ltr .v-list.v-sheet--shaped.v-list--three-line .v-list-item:before,.v-application--is-ltr .v-list.v-sheet--shaped.v-list--three-line .v-list-item>.v-ripple__container{border-bottom-right-radius:58.6666666667px!important;border-top-right-radius:58.6666666667px!important}.v-application--is-rtl .v-list.v-sheet--shaped.v-list--three-line .v-list-item,.v-application--is-rtl .v-list.v-sheet--shaped.v-list--three-line .v-list-item:before,.v-application--is-rtl .v-list.v-sheet--shaped.v-list--three-line .v-list-item>.v-ripple__container{border-bottom-left-radius:58.6666666667px!important;border-top-left-radius:58.6666666667px!important}.v-application--is-ltr .v-list.v-sheet--shaped{padding-right:8px}.v-application--is-rtl .v-list.v-sheet--shaped{padding-left:8px}.v-list--rounded{padding:8px}.v-list--rounded .v-list-item,.v-list--rounded .v-list-item:before,.v-list--rounded .v-list-item>.v-ripple__container{border-radius:32px!important}.v-list--rounded.v-list--two-line .v-list-item,.v-list--rounded.v-list--two-line .v-list-item:before,.v-list--rounded.v-list--two-line .v-list-item>.v-ripple__container{border-radius:42.6666666667px!important}.v-list--rounded.v-list--three-line .v-list-item,.v-list--rounded.v-list--three-line .v-list-item:before,.v-list--rounded.v-list--three-line .v-list-item>.v-ripple__container{border-radius:58.6666666667px!important}.v-list--subheader{padding-top:0}.v-list-group .v-list-group__header .v-list-item__icon.v-list-group__header__append-icon{align-self:center;margin:0;min-width:48px;justify-content:flex-end}.v-list-group--sub-group{align-items:center;display:flex;flex-wrap:wrap}.v-list-group__header.v-list-item--active:not(:hover):not(:focus):before{opacity:0}.v-list-group__items{flex:1 1 auto}.v-list-group__items .v-list-group__items,.v-list-group__items .v-list-item{overflow:hidden}.v-list-group--active>.v-list-group__header.v-list-group__header--sub-group>.v-list-group__header__prepend-icon .v-icon,.v-list-group--active>.v-list-group__header>.v-list-group__header__append-icon .v-icon{transform:rotate(-180deg)}.v-list-group--active>.v-list-group__header .v-list-group__header__prepend-icon .v-icon,.v-list-group--active>.v-list-group__header .v-list-item,.v-list-group--active>.v-list-group__header .v-list-item__content{color:inherit}.v-application--is-ltr .v-list-group--sub-group .v-list-item__action:first-child,.v-application--is-ltr .v-list-group--sub-group .v-list-item__avatar:first-child,.v-application--is-ltr .v-list-group--sub-group .v-list-item__icon:first-child{margin-right:16px}.v-application--is-rtl .v-list-group--sub-group .v-list-item__action:first-child,.v-application--is-rtl .v-list-group--sub-group .v-list-item__avatar:first-child,.v-application--is-rtl .v-list-group--sub-group .v-list-item__icon:first-child{margin-left:16px}.v-application--is-ltr .v-list-group--sub-group .v-list-group__header{padding-left:32px}.v-application--is-rtl .v-list-group--sub-group .v-list-group__header{padding-right:32px}.v-application--is-ltr .v-list-group--sub-group .v-list-group__items .v-list-item{padding-left:40px}.v-application--is-rtl .v-list-group--sub-group .v-list-group__items .v-list-item{padding-right:40px}.v-list-group--sub-group.v-list-group--active .v-list-item__icon.v-list-group__header__prepend-icon .v-icon{transform:rotate(-180deg)}.v-application--is-ltr .v-list-group--no-action>.v-list-group__items>.v-list-item{padding-left:72px}.v-application--is-rtl .v-list-group--no-action>.v-list-group__items>.v-list-item{padding-right:72px}.v-application--is-ltr .v-list-group--no-action.v-list-group--sub-group>.v-list-group__items>.v-list-item{padding-left:88px}.v-application--is-rtl .v-list-group--no-action.v-list-group--sub-group>.v-list-group__items>.v-list-item{padding-right:88px}.v-application--is-ltr .v-list--dense .v-list-group--sub-group .v-list-group__header{padding-left:24px}.v-application--is-rtl .v-list--dense .v-list-group--sub-group .v-list-group__header{padding-right:24px}.v-application--is-ltr .v-list--dense.v-list--nav .v-list-group--no-action>.v-list-group__items>.v-list-item{padding-left:64px}.v-application--is-rtl .v-list--dense.v-list--nav .v-list-group--no-action>.v-list-group__items>.v-list-item{padding-right:64px}.v-application--is-ltr .v-list--dense.v-list--nav .v-list-group--no-action.v-list-group--sub-group>.v-list-group__items>.v-list-item{padding-left:80px}.v-application--is-rtl .v-list--dense.v-list--nav .v-list-group--no-action.v-list-group--sub-group>.v-list-group__items>.v-list-item{padding-right:80px}.theme--light.v-list-item--disabled{color:rgba(0,0,0,.38)}.theme--light.v-list-item:not(.v-list-item--active):not(.v-list-item--disabled){color:rgba(0,0,0,.87)!important}.theme--light.v-list-item .v-list-item__mask{color:rgba(0,0,0,.38);background:#eee}.theme--light.v-list-item .v-list-item__action-text,.theme--light.v-list-item .v-list-item__subtitle{color:rgba(0,0,0,.6)}.theme--light.v-list-item:hover:before{opacity:.04}.theme--light.v-list-item--active:before,.theme--light.v-list-item--active:hover:before,.theme--light.v-list-item:focus:before{opacity:.12}.theme--light.v-list-item--active:focus:before,.theme--light.v-list-item.v-list-item--highlighted:before{opacity:.16}.theme--dark.v-list-item--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-list-item:not(.v-list-item--active):not(.v-list-item--disabled){color:#fff!important}.theme--dark.v-list-item .v-list-item__mask{color:hsla(0,0%,100%,.5);background:#494949}.theme--dark.v-list-item .v-list-item__action-text,.theme--dark.v-list-item .v-list-item__subtitle{color:hsla(0,0%,100%,.7)}.theme--dark.v-list-item:hover:before{opacity:.08}.theme--dark.v-list-item--active:before,.theme--dark.v-list-item--active:hover:before,.theme--dark.v-list-item:focus:before{opacity:.24}.theme--dark.v-list-item--active:focus:before,.theme--dark.v-list-item.v-list-item--highlighted:before{opacity:.32}.v-list-item{align-items:center;display:flex;flex:1 1 100%;letter-spacing:normal;min-height:48px;outline:none;padding:0 16px;position:relative;text-decoration:none}.v-list-item--disabled{pointer-events:none}.v-list-item--selectable{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.v-list-item:after{content:"";min-height:inherit;font-size:0}.v-list-item__action{align-self:center;margin:12px 0}.v-list-item__action .v-input,.v-list-item__action .v-input--selection-controls__input,.v-list-item__action .v-input__control,.v-list-item__action .v-input__slot{margin:0!important}.v-list-item__action .v-input{padding:0}.v-list-item__action .v-input .v-messages{display:none}.v-list-item__action-text{font-size:.75rem}.v-list-item__avatar{align-self:center;justify-content:flex-start}.v-list-item__avatar,.v-list-item__avatar.v-list-item__avatar--horizontal{margin-bottom:8px;margin-top:8px}.v-application--is-ltr .v-list-item__avatar.v-list-item__avatar--horizontal:first-child{margin-left:-16px}.v-application--is-rtl .v-list-item__avatar.v-list-item__avatar--horizontal:first-child{margin-right:-16px}.v-application--is-ltr .v-list-item__avatar.v-list-item__avatar--horizontal:last-child{margin-left:-16px}.v-application--is-rtl .v-list-item__avatar.v-list-item__avatar--horizontal:last-child{margin-right:-16px}.v-list-item__content{align-items:center;align-self:center;display:flex;flex-wrap:wrap;flex:1 1;overflow:hidden;padding:12px 0}.v-list-item__content>*{line-height:1.1;flex:1 0 100%}.v-list-item__content>:not(:last-child){margin-bottom:2px}.v-list-item__icon{align-self:flex-start;margin:16px 0}.v-application--is-ltr .v-list-item__action:last-of-type:not(:only-child),.v-application--is-ltr .v-list-item__avatar:last-of-type:not(:only-child),.v-application--is-ltr .v-list-item__icon:last-of-type:not(:only-child){margin-left:16px}.v-application--is-ltr .v-list-item__avatar:first-child,.v-application--is-rtl .v-list-item__action:last-of-type:not(:only-child),.v-application--is-rtl .v-list-item__avatar:last-of-type:not(:only-child),.v-application--is-rtl .v-list-item__icon:last-of-type:not(:only-child){margin-right:16px}.v-application--is-rtl .v-list-item__avatar:first-child{margin-left:16px}.v-application--is-ltr .v-list-item__action:first-child,.v-application--is-ltr .v-list-item__icon:first-child{margin-right:32px}.v-application--is-rtl .v-list-item__action:first-child,.v-application--is-rtl .v-list-item__icon:first-child{margin-left:32px}.v-list-item__action,.v-list-item__avatar,.v-list-item__icon{display:inline-flex;min-width:24px}.v-list-item .v-list-item__subtitle,.v-list-item .v-list-item__title{line-height:1.2}.v-list-item__subtitle,.v-list-item__title{flex:1 1 100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-list-item__title{align-self:center;font-size:1rem}.v-list-item__title>.v-badge{margin-top:16px}.v-list-item__subtitle{font-size:.875rem}.v-list--dense .v-list-item,.v-list-item--dense{min-height:40px}.v-list--dense .v-list-item .v-list-item__icon,.v-list-item--dense .v-list-item__icon{height:24px;margin-top:8px;margin-bottom:8px}.v-list--dense .v-list-item .v-list-item__content,.v-list-item--dense .v-list-item__content{padding:8px 0}.v-list--dense .v-list-item .v-list-item__subtitle,.v-list--dense .v-list-item .v-list-item__title,.v-list-item--dense .v-list-item__subtitle,.v-list-item--dense .v-list-item__title{font-size:.8125rem;font-weight:500;line-height:1rem}.v-list--dense .v-list-item.v-list-item--two-line,.v-list-item--dense.v-list-item--two-line{min-height:60px}.v-list--dense .v-list-item.v-list-item--three-line,.v-list-item--dense.v-list-item--three-line{min-height:76px}.v-list-item--link{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-list-item--link:before{background-color:currentColor;bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-list .v-list-item--active,.v-list .v-list-item--active .v-icon{color:inherit}.v-list-item__action--stack{align-items:flex-end;align-self:stretch;justify-content:space-between;white-space:nowrap;flex-direction:column}.v-list--three-line .v-list-item .v-list-item__avatar:not(.v-list-item__avatar--horizontal),.v-list--three-line .v-list-item .v-list-item__icon,.v-list--two-line .v-list-item .v-list-item__avatar:not(.v-list-item__avatar--horizontal),.v-list--two-line .v-list-item .v-list-item__icon,.v-list-item--three-line .v-list-item__avatar:not(.v-list-item__avatar--horizontal),.v-list-item--three-line .v-list-item__icon,.v-list-item--two-line .v-list-item__avatar:not(.v-list-item__avatar--horizontal),.v-list-item--two-line .v-list-item__icon{margin-bottom:16px;margin-top:16px}.v-list--two-line .v-list-item,.v-list-item--two-line{min-height:64px}.v-list--two-line .v-list-item .v-list-item__icon,.v-list-item--two-line .v-list-item__icon{margin-bottom:32px}.v-list--three-line .v-list-item,.v-list-item--three-line{min-height:88px}.v-list--three-line .v-list-item .v-list-item__action,.v-list--three-line .v-list-item .v-list-item__avatar,.v-list-item--three-line .v-list-item__action,.v-list-item--three-line .v-list-item__avatar{align-self:flex-start;margin-top:16px;margin-bottom:16px}.v-list--three-line .v-list-item .v-list-item__content,.v-list-item--three-line .v-list-item__content{align-self:stretch}.v-list--three-line .v-list-item .v-list-item__subtitle,.v-list-item--three-line .v-list-item__subtitle{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.v-avatar{align-items:center;border-radius:50%;display:inline-flex;justify-content:center;line-height:normal;position:relative;text-align:center;vertical-align:middle;overflow:hidden}.v-avatar .v-icon,.v-avatar .v-image,.v-avatar .v-responsive__content,.v-avatar img,.v-avatar svg{border-radius:inherit;display:inline-flex;height:inherit;width:inherit}.v-list-item-group .v-list-item--active{color:inherit}.v-menu{display:none}.v-menu--attached{display:inline}.v-menu__content{position:absolute;display:inline-block;max-width:80%;overflow-y:auto;overflow-x:hidden;contain:content;will-change:transform;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);border-radius:4px}.v-menu__content--active{pointer-events:none}.v-menu__content--auto .v-list-item{transition-property:transform,opacity;transition-duration:.3s;transition-timing-function:cubic-bezier(.25,.8,.25,1)}.v-menu__content--fixed{position:fixed}.v-menu__content>.card{contain:content;-webkit-backface-visibility:hidden;backface-visibility:hidden}.v-menu>.v-menu__content{max-width:none}.v-menu-transition-enter .v-list-item{min-width:0;pointer-events:none}.v-menu-transition-enter-to .v-list-item{pointer-events:auto;transition-delay:.1s}.v-menu-transition-leave-active,.v-menu-transition-leave-to{pointer-events:none}.v-menu-transition-enter,.v-menu-transition-leave-to{opacity:0}.v-menu-transition-enter-active,.v-menu-transition-leave-active{transition:all .3s cubic-bezier(.25,.8,.25,1)}.v-menu-transition-enter.v-menu__content--auto{transition:none!important}.v-menu-transition-enter.v-menu__content--auto .v-list-item{opacity:0;transform:translateY(-15px)}.v-menu-transition-enter.v-menu__content--auto .v-list-item--active{opacity:1;transform:none!important;pointer-events:auto}.theme--light.v-application{background:#fff;color:rgba(0,0,0,.87)}.theme--light.v-application .text--primary{color:rgba(0,0,0,.87)!important}.theme--light.v-application .text--secondary{color:rgba(0,0,0,.6)!important}.theme--light.v-application .text--disabled{color:rgba(0,0,0,.38)!important}.theme--dark.v-application{background:#121212;color:#fff}.theme--dark.v-application .text--primary{color:#fff!important}.theme--dark.v-application .text--secondary{color:hsla(0,0%,100%,.7)!important}.theme--dark.v-application .text--disabled{color:hsla(0,0%,100%,.5)!important}.v-application{display:flex}.v-application a{cursor:pointer}.v-application--is-rtl{direction:rtl}.v-application--wrap{flex:1 1 auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;flex-direction:column;min-height:100vh;max-width:100%;position:relative}@-moz-document url-prefix(){@media print{.v-application,.v-application--wrap{display:block}}}.theme--light.v-app-bar.v-toolbar.v-sheet{background-color:#f5f5f5}.theme--dark.v-app-bar.v-toolbar.v-sheet{background-color:#272727}.v-sheet.v-app-bar.v-toolbar{border-radius:0}.v-sheet.v-app-bar.v-toolbar:not(.v-sheet--outlined){box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-sheet.v-app-bar.v-toolbar.v-sheet--shaped{border-radius:24px 0}.v-app-bar:not([data-booted=true]){transition:none!important}.v-app-bar.v-app-bar--fixed{position:fixed;top:0;z-index:5}.v-app-bar.v-app-bar--hide-shadow{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)!important}.v-app-bar--fade-img-on-scroll .v-toolbar__image .v-image__image{transition:opacity .4s cubic-bezier(.4,0,.2,1)}.v-app-bar.v-toolbar--prominent.v-app-bar--shrink-on-scroll .v-toolbar__content{will-change:height}.v-app-bar.v-toolbar--prominent.v-app-bar--shrink-on-scroll .v-toolbar__image{will-change:opacity}.v-app-bar.v-toolbar--prominent.v-app-bar--shrink-on-scroll.v-app-bar--collapse-on-scroll .v-toolbar__extension{display:none}.v-app-bar.v-toolbar--prominent.v-app-bar--shrink-on-scroll.v-app-bar--is-scrolled .v-toolbar__title{padding-top:9px}.v-app-bar.v-toolbar--prominent.v-app-bar--shrink-on-scroll.v-app-bar--is-scrolled:not(.v-app-bar--bottom) .v-toolbar__title{padding-bottom:9px}.v-app-bar.v-app-bar--shrink-on-scroll .v-toolbar__title{font-size:inherit}.theme--light.v-toolbar.v-sheet{background-color:#fff}.theme--dark.v-toolbar.v-sheet{background-color:#272727}.v-sheet.v-toolbar{border-radius:0}.v-sheet.v-toolbar:not(.v-sheet--outlined){box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-sheet.v-toolbar.v-sheet--shaped{border-radius:24px 0}.v-toolbar{contain:layout;display:block;flex:1 1 auto;max-width:100%;transition:transform .2s cubic-bezier(.4,0,.2,1),background-color .2s cubic-bezier(.4,0,.2,1),left .2s cubic-bezier(.4,0,.2,1),right .2s cubic-bezier(.4,0,.2,1),box-shadow .28s cubic-bezier(.4,0,.2,1),max-width .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-toolbar .v-input{padding-top:0;margin-top:0}.v-toolbar__content,.v-toolbar__extension{padding:4px 16px}.v-toolbar__content .v-btn.v-btn--icon.v-size--default,.v-toolbar__extension .v-btn.v-btn--icon.v-size--default{height:48px;width:48px}.v-application--is-ltr .v-toolbar__content>.v-btn.v-btn--icon:first-child,.v-application--is-ltr .v-toolbar__extension>.v-btn.v-btn--icon:first-child{margin-left:-12px}.v-application--is-rtl .v-toolbar__content>.v-btn.v-btn--icon:first-child,.v-application--is-rtl .v-toolbar__extension>.v-btn.v-btn--icon:first-child{margin-right:-12px}.v-application--is-ltr .v-toolbar__content>.v-btn.v-btn--icon:first-child+.v-toolbar__title,.v-application--is-ltr .v-toolbar__extension>.v-btn.v-btn--icon:first-child+.v-toolbar__title{padding-left:20px}.v-application--is-rtl .v-toolbar__content>.v-btn.v-btn--icon:first-child+.v-toolbar__title,.v-application--is-rtl .v-toolbar__extension>.v-btn.v-btn--icon:first-child+.v-toolbar__title{padding-right:20px}.v-application--is-ltr .v-toolbar__content>.v-btn.v-btn--icon:last-child,.v-application--is-ltr .v-toolbar__extension>.v-btn.v-btn--icon:last-child{margin-right:-12px}.v-application--is-rtl .v-toolbar__content>.v-btn.v-btn--icon:last-child,.v-application--is-rtl .v-toolbar__extension>.v-btn.v-btn--icon:last-child{margin-left:-12px}.v-toolbar__content>.v-tabs,.v-toolbar__extension>.v-tabs{height:inherit;margin-top:-4px;margin-bottom:-4px}.v-toolbar__content>.v-tabs>.v-slide-group.v-tabs-bar,.v-toolbar__extension>.v-tabs>.v-slide-group.v-tabs-bar{background-color:inherit;height:inherit}.v-toolbar__content>.v-tabs:first-child,.v-toolbar__extension>.v-tabs:first-child{margin-left:-16px}.v-toolbar__content>.v-tabs:last-child,.v-toolbar__extension>.v-tabs:last-child{margin-right:-16px}.v-toolbar__content,.v-toolbar__extension{align-items:center;display:flex;position:relative;z-index:0}.v-toolbar__image{position:absolute;top:0;bottom:0;width:100%;z-index:0;contain:strict}.v-toolbar__image,.v-toolbar__image .v-image{border-radius:inherit}.v-toolbar__items{display:flex;height:inherit}.v-toolbar__items>.v-btn{border-radius:0;height:100%!important;max-height:none}.v-toolbar__title{font-size:1.25rem;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-toolbar.v-toolbar--absolute{position:absolute;top:0;z-index:1}.v-toolbar.v-toolbar--bottom{top:auto;bottom:0}.v-toolbar.v-toolbar--collapse .v-toolbar__title{white-space:nowrap}.v-toolbar.v-toolbar--collapsed{max-width:112px;overflow:hidden}.v-application--is-ltr .v-toolbar.v-toolbar--collapsed{border-bottom-right-radius:24px}.v-application--is-rtl .v-toolbar.v-toolbar--collapsed{border-bottom-left-radius:24px}.v-toolbar.v-toolbar--collapsed .v-toolbar__extension,.v-toolbar.v-toolbar--collapsed .v-toolbar__title{display:none}.v-toolbar--dense .v-toolbar__content,.v-toolbar--dense .v-toolbar__extension{padding-top:0;padding-bottom:0}.v-toolbar--flat{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)!important}.v-toolbar--floating{display:inline-flex}.v-toolbar--prominent .v-toolbar__content{align-items:flex-start}.v-toolbar--prominent .v-toolbar__title{font-size:1.5rem;padding-top:6px}.v-toolbar--prominent:not(.v-toolbar--bottom) .v-toolbar__title{align-self:flex-end;padding-bottom:6px;padding-top:0}.theme--light.v-image{color:rgba(0,0,0,.87)}.theme--dark.v-image{color:#fff}.v-image{z-index:0}.v-image__image,.v-image__placeholder{z-index:-1;position:absolute;top:0;left:0;width:100%;height:100%}.v-image__image{background-repeat:no-repeat}.v-image__image--preload{-webkit-filter:blur(2px);filter:blur(2px)}.v-image__image--contain{background-size:contain}.v-image__image--cover{background-size:cover}.v-responsive{position:relative;overflow:hidden;flex:1 0 auto;max-width:100%;display:flex}.v-responsive__content{flex:1 0 0px;max-width:100%}.v-application--is-ltr .v-responsive__sizer~.v-responsive__content{margin-left:-100%}.v-application--is-rtl .v-responsive__sizer~.v-responsive__content{margin-right:-100%}.v-responsive__sizer{transition:padding-bottom .2s cubic-bezier(.25,.8,.5,1);flex:1 0 0px}.theme--light.v-badge .v-badge__badge:after{border-color:#fff}.theme--dark.v-badge .v-badge__badge:after{border-color:#1e1e1e}.v-badge{position:relative}.v-badge,.v-badge__badge{display:inline-block;line-height:1}.v-badge__badge{border-radius:10px;color:#fff;font-size:12px;height:20px;letter-spacing:0;min-width:20px;padding:4px 6px;pointer-events:auto;position:absolute;text-align:center;text-indent:0;top:auto;transition:.3s cubic-bezier(.25,.8,.5,1);white-space:nowrap}.v-application--is-ltr .v-badge__badge{right:auto}.v-application--is-rtl .v-badge__badge{left:auto}.v-badge__badge .v-icon{color:inherit;font-size:12px;margin:0 -2px}.v-badge__badge .v-img{height:12px;width:12px}.v-badge__wrapper{flex:0 1;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.v-badge--avatar .v-badge__badge{padding:0}.v-badge--avatar .v-badge__badge .v-avatar{height:20px!important;min-width:0!important;max-width:20px!important}.v-badge--bordered .v-badge__badge:after{border-radius:inherit;border-width:2px;border-style:solid;bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:scale(1.15)}.v-badge--dot .v-badge__badge{border-radius:4.5px;height:9px;min-width:0;padding:0;width:9px}.v-badge--dot .v-badge__badge:after{border-width:1.5px}.v-badge--icon .v-badge__badge{padding:4px 6px}.v-badge--inline{align-items:center;display:inline-flex;justify-content:center}.v-badge--inline .v-badge__badge,.v-badge--inline .v-badge__wrapper{position:relative}.v-badge--inline .v-badge__wrapper{margin:0 4px}.v-badge--tile .v-badge__badge{border-radius:0}.theme--light.v-card{background-color:#fff;color:rgba(0,0,0,.87)}.theme--light.v-card .v-card__subtitle,.theme--light.v-card>.v-card__text{color:rgba(0,0,0,.6)}.theme--dark.v-card{background-color:#1e1e1e;color:#fff}.theme--dark.v-card .v-card__subtitle,.theme--dark.v-card>.v-card__text{color:hsla(0,0%,100%,.7)}.v-sheet.v-card{border-radius:4px}.v-sheet.v-card:not(.v-sheet--outlined){box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-sheet.v-card.v-sheet--shaped{border-radius:24px 4px}.v-card{border-width:thin;display:block;max-width:100%;outline:none;text-decoration:none;transition-property:box-shadow,opacity;overflow-wrap:break-word;position:relative;white-space:normal}.v-card>.v-card__progress+:not(.v-btn):not(.v-chip),.v-card>:first-child:not(.v-btn):not(.v-chip){border-top-left-radius:inherit;border-top-right-radius:inherit}.v-card>:last-child:not(.v-btn):not(.v-chip){border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.v-card__progress{top:0;left:0;right:0;overflow:hidden}.v-card__subtitle+.v-card__text{padding-top:0}.v-card__subtitle,.v-card__text{font-size:.875rem;font-weight:400;line-height:1.375rem;letter-spacing:.0071428571em}.v-card__subtitle,.v-card__text,.v-card__title{padding:16px}.v-card__title{align-items:center;display:flex;flex-wrap:wrap;font-size:1.25rem;font-weight:500;letter-spacing:.0125em;line-height:2rem;word-break:break-all}.v-card__title+.v-card__subtitle,.v-card__title+.v-card__text{padding-top:0}.v-card__title+.v-card__subtitle{margin-top:-16px}.v-card__text{width:100%}.v-card__actions{align-items:center;display:flex;padding:8px}.v-card__actions>.v-btn.v-btn{padding:0 8px}.v-application--is-ltr .v-card__actions>.v-btn.v-btn+.v-btn{margin-left:8px}.v-application--is-ltr .v-card__actions>.v-btn.v-btn .v-icon--left{margin-left:4px}.v-application--is-ltr .v-card__actions>.v-btn.v-btn .v-icon--right{margin-right:4px}.v-application--is-rtl .v-card__actions>.v-btn.v-btn+.v-btn{margin-right:8px}.v-application--is-rtl .v-card__actions>.v-btn.v-btn .v-icon--left{margin-right:4px}.v-application--is-rtl .v-card__actions>.v-btn.v-btn .v-icon--right{margin-left:4px}.v-card--flat{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)!important}.v-card--hover{cursor:pointer;transition:box-shadow .4s cubic-bezier(.25,.8,.25,1)}.v-card--hover:focus,.v-card--hover:hover{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-card--link,.v-card--link .v-chip{cursor:pointer}.v-card--link:focus:before{opacity:.08}.v-card--link:before{background:currentColor;bottom:0;content:"";left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s}.v-card--disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-card--disabled>:not(.v-card__progress){opacity:.6;transition:inherit}.v-card--loading{overflow:hidden}.v-card--raised{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.theme--light.v-progress-linear{color:rgba(0,0,0,.87)}.theme--dark.v-progress-linear{color:#fff}.v-progress-linear{background:transparent;overflow:hidden;position:relative;transition:.2s cubic-bezier(.4,0,.6,1);width:100%}.v-progress-linear__buffer{height:inherit;left:0;position:absolute;top:0;transition:inherit;width:100%;z-index:1}.v-progress-linear--reverse .v-progress-linear__buffer{left:auto;right:0}.v-progress-linear__background{bottom:0;left:0;position:absolute;top:0;transition:inherit}.v-progress-linear--reverse .v-progress-linear__background{left:auto;right:0}.v-progress-linear__content{align-items:center;display:flex;height:100%;left:0;justify-content:center;position:absolute;top:0;width:100%;z-index:2}.v-progress-linear--reverse .v-progress-linear__content{left:auto;right:0}.v-progress-linear__determinate{height:inherit;left:0;position:absolute;transition:inherit}.v-progress-linear--reverse .v-progress-linear__determinate{left:auto;right:0}.v-progress-linear .v-progress-linear__indeterminate .long,.v-progress-linear .v-progress-linear__indeterminate .short{background-color:inherit;bottom:0;height:inherit;left:0;position:absolute;right:auto;top:0;width:auto;will-change:left,right}.v-progress-linear .v-progress-linear__indeterminate--active .long{-webkit-animation-name:indeterminate-ltr;animation-name:indeterminate-ltr;-webkit-animation-duration:2.2s;animation-duration:2.2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.v-progress-linear .v-progress-linear__indeterminate--active .short{-webkit-animation-name:indeterminate-short-ltr;animation-name:indeterminate-short-ltr;-webkit-animation-duration:2.2s;animation-duration:2.2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.v-progress-linear--reverse .v-progress-linear__indeterminate .long,.v-progress-linear--reverse .v-progress-linear__indeterminate .short{left:auto;right:0}.v-progress-linear--reverse .v-progress-linear__indeterminate--active .long{-webkit-animation-name:indeterminate-rtl;animation-name:indeterminate-rtl}.v-progress-linear--reverse .v-progress-linear__indeterminate--active .short{-webkit-animation-name:indeterminate-short-rtl;animation-name:indeterminate-short-rtl}.v-progress-linear__stream{-webkit-animation:stream-ltr .25s linear infinite;animation:stream-ltr .25s linear infinite;border-color:currentColor;border-top:4px dotted;bottom:0;left:auto;right:-8px;opacity:.3;pointer-events:none;position:absolute;top:calc(50% - 2px);transition:inherit}.v-progress-linear--reverse .v-progress-linear__stream{-webkit-animation:stream-rtl .25s linear infinite;animation:stream-rtl .25s linear infinite;left:-8px;right:auto}.v-progress-linear__wrapper{overflow:hidden;position:relative;transition:inherit}.v-progress-linear--absolute,.v-progress-linear--fixed{left:0;z-index:1}.v-progress-linear--absolute{position:absolute}.v-progress-linear--fixed{position:fixed}.v-progress-linear--reactive .v-progress-linear__content{pointer-events:none}.v-progress-linear--rounded{border-radius:4px}.v-progress-linear--striped .v-progress-linear__determinate{background-image:linear-gradient(135deg,hsla(0,0%,100%,.25) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.25) 0,hsla(0,0%,100%,.25) 75%,transparent 0,transparent);background-size:40px 40px;background-repeat:repeat}.v-progress-linear--query .v-progress-linear__indeterminate--active .long{-webkit-animation-name:query-ltr;animation-name:query-ltr;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.v-progress-linear--query .v-progress-linear__indeterminate--active .short{-webkit-animation-name:query-short-ltr;animation-name:query-short-ltr;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.v-progress-linear--query.v-progress-linear--reverse .v-progress-linear__indeterminate--active .long{-webkit-animation-name:query-rtl;animation-name:query-rtl}.v-progress-linear--query.v-progress-linear--reverse .v-progress-linear__indeterminate--active .short{-webkit-animation-name:query-short-rtl;animation-name:query-short-rtl}@-webkit-keyframes indeterminate-ltr{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@keyframes indeterminate-ltr{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@-webkit-keyframes indeterminate-rtl{0%{left:100%;right:-90%}60%{left:100%;right:-90%}to{left:-35%;right:100%}}@keyframes indeterminate-rtl{0%{left:100%;right:-90%}60%{left:100%;right:-90%}to{left:-35%;right:100%}}@-webkit-keyframes indeterminate-short-ltr{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short-ltr{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@-webkit-keyframes indeterminate-short-rtl{0%{left:100%;right:-200%}60%{left:-8%;right:107%}to{left:-8%;right:107%}}@keyframes indeterminate-short-rtl{0%{left:100%;right:-200%}60%{left:-8%;right:107%}to{left:-8%;right:107%}}@-webkit-keyframes query-ltr{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@keyframes query-ltr{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@-webkit-keyframes query-rtl{0%{right:100%;left:-90%}60%{right:100%;left:-90%}to{right:-35%;left:100%}}@keyframes query-rtl{0%{right:100%;left:-90%}60%{right:100%;left:-90%}to{right:-35%;left:100%}}@-webkit-keyframes query-short-ltr{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@keyframes query-short-ltr{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}@-webkit-keyframes query-short-rtl{0%{right:100%;left:-200%}60%{right:-8%;left:107%}to{right:-8%;left:107%}}@keyframes query-short-rtl{0%{right:100%;left:-200%}60%{right:-8%;left:107%}to{right:-8%;left:107%}}@-webkit-keyframes stream-ltr{to{transform:translateX(-8px)}}@keyframes stream-ltr{to{transform:translateX(-8px)}}@-webkit-keyframes stream-rtl{to{transform:translateX(8px)}}@keyframes stream-rtl{to{transform:translateX(8px)}}.v-main{display:flex;flex:1 0 auto;max-width:100%;transition:.2s cubic-bezier(.4,0,.2,1)}.v-main:not([data-booted=true]){transition:none!important}.v-main__wrap{flex:1 1 auto;max-width:100%;position:relative}@-moz-document url-prefix(){@media print{.v-main{display:block}}}.v-dialog{border-radius:4px;margin:24px;overflow-y:auto;pointer-events:auto;transition:.3s cubic-bezier(.25,.8,.25,1);width:100%;z-index:inherit;box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.v-dialog:not(.v-dialog--fullscreen){max-height:90%}.v-dialog>*{width:100%}.v-dialog>.v-card>.v-card__title{font-size:1.25rem;font-weight:500;letter-spacing:.0125em;padding:16px 24px 10px}.v-dialog>.v-card>.v-card__subtitle,.v-dialog>.v-card>.v-card__text{padding:0 24px 20px}.v-dialog__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;pointer-events:none;position:fixed;top:0;transition:.2s cubic-bezier(.25,.8,.25,1),z-index 1ms;width:100%;z-index:6;outline:none}.v-dialog__container{display:none}.v-dialog__container--attached{display:inline}.v-dialog--animated{-webkit-animation-duration:.15s;animation-duration:.15s;-webkit-animation-name:animate-dialog;animation-name:animate-dialog;-webkit-animation-timing-function:cubic-bezier(.25,.8,.25,1);animation-timing-function:cubic-bezier(.25,.8,.25,1)}.v-dialog--fullscreen{border-radius:0;margin:0;height:100%;position:fixed;overflow-y:auto;top:0;left:0}.v-dialog--fullscreen>.v-card{min-height:100%;min-width:100%;margin:0!important;padding:0!important}.v-dialog--scrollable,.v-dialog--scrollable>form{display:flex}.v-dialog--scrollable>.v-card,.v-dialog--scrollable>form>.v-card{display:flex;flex:1 1 100%;flex-direction:column;max-height:100%;max-width:100%}.v-dialog--scrollable>.v-card>.v-card__actions,.v-dialog--scrollable>.v-card>.v-card__title,.v-dialog--scrollable>form>.v-card>.v-card__actions,.v-dialog--scrollable>form>.v-card>.v-card__title{flex:0 0 auto}.v-dialog--scrollable>.v-card>.v-card__text,.v-dialog--scrollable>form>.v-card>.v-card__text{-webkit-backface-visibility:hidden;backface-visibility:hidden;flex:1 1 auto;overflow-y:auto}@-webkit-keyframes animate-dialog{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes animate-dialog{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}.theme--light.v-overlay{color:rgba(0,0,0,.87)}.theme--dark.v-overlay{color:#fff}.v-overlay{align-items:center;border-radius:inherit;display:flex;justify-content:center;position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:.3s cubic-bezier(.25,.8,.5,1),z-index 1ms}.v-overlay__content{position:relative}.v-overlay__scrim{border-radius:inherit;bottom:0;height:100%;left:0;position:absolute;right:0;top:0;transition:inherit;width:100%;will-change:opacity}.v-overlay--absolute{position:absolute}.v-overlay--active{pointer-events:auto}.theme--light.v-navigation-drawer{background-color:#fff}.theme--light.v-navigation-drawer:not(.v-navigation-drawer--floating) .v-navigation-drawer__border{background-color:rgba(0,0,0,.12)}.theme--light.v-navigation-drawer .v-divider{border-color:rgba(0,0,0,.12)}.theme--dark.v-navigation-drawer{background-color:#363636}.theme--dark.v-navigation-drawer:not(.v-navigation-drawer--floating) .v-navigation-drawer__border{background-color:hsla(0,0%,100%,.12)}.theme--dark.v-navigation-drawer .v-divider{border-color:hsla(0,0%,100%,.12)}.v-navigation-drawer{-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;left:0;max-width:100%;overflow:hidden;pointer-events:auto;top:0;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);will-change:transform;transition-property:transform,visibility,width}.v-navigation-drawer:not([data-booted=true]){transition:none!important}.v-navigation-drawer.v-navigation-drawer--right:after{left:0;right:auto}.v-navigation-drawer .v-list:not(.v-select-list){background:inherit}.v-navigation-drawer__border{position:absolute;right:0;top:0;height:100%;width:1px}.v-navigation-drawer__content{height:100%;overflow-y:auto;overflow-x:hidden}.v-navigation-drawer__image{border-radius:inherit;height:100%;position:absolute;top:0;bottom:0;z-index:-1;contain:strict;width:100%}.v-navigation-drawer__image .v-image{border-radius:inherit}.v-navigation-drawer--bottom.v-navigation-drawer--is-mobile{max-height:50%;top:auto;bottom:0;min-width:100%}.v-navigation-drawer--right{left:auto;right:0}.v-navigation-drawer--right>.v-navigation-drawer__border{right:auto;left:0}.v-navigation-drawer--absolute{z-index:1}.v-navigation-drawer--fixed{z-index:6}.v-navigation-drawer--absolute{position:absolute}.v-navigation-drawer--clipped:not(.v-navigation-drawer--temporary):not(.v-navigation-drawer--is-mobile){z-index:4}.v-navigation-drawer--fixed{position:fixed}.v-navigation-drawer--floating:after{display:none}.v-navigation-drawer--mini-variant{overflow:hidden}.v-navigation-drawer--mini-variant .v-list-item>:first-child{margin-left:0;margin-right:0}.v-navigation-drawer--mini-variant .v-list-item>:not(:first-child){position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;display:initial}.v-navigation-drawer--mini-variant .v-list-group--no-action .v-list-group__items,.v-navigation-drawer--mini-variant .v-list-group--sub-group{display:none}.v-navigation-drawer--mini-variant.v-navigation-drawer--custom-mini-variant .v-list-item{justify-content:center}.v-navigation-drawer--temporary{z-index:7}.v-navigation-drawer--mobile{z-index:6}.v-navigation-drawer--close{visibility:hidden}.v-navigation-drawer--is-mobile:not(.v-navigation-drawer--close),.v-navigation-drawer--temporary:not(.v-navigation-drawer--close){box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.theme--light.v-text-field>.v-input__control>.v-input__slot:before{border-color:rgba(0,0,0,.42)}.theme--light.v-text-field:not(.v-input--has-state):hover>.v-input__control>.v-input__slot:before{border-color:rgba(0,0,0,.87)}.theme--light.v-text-field.v-input--is-disabled .v-input__slot:before{-o-border-image:repeating-linear-gradient(90deg,rgba(0,0,0,.38) 0,rgba(0,0,0,.38) 2px,transparent 0,transparent 4px) 1 repeat;border-image:repeating-linear-gradient(90deg,rgba(0,0,0,.38) 0,rgba(0,0,0,.38) 2px,transparent 0,transparent 4px) 1 repeat}.theme--light.v-text-field--filled>.v-input__control>.v-input__slot{background:rgba(0,0,0,.06)}.theme--light.v-text-field--filled:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot:hover{background:rgba(0,0,0,.12)}.theme--light.v-text-field--solo>.v-input__control>.v-input__slot{background:#fff}.theme--light.v-text-field--solo-inverted>.v-input__control>.v-input__slot{background:rgba(0,0,0,.06)}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot{background:#424242}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input{color:#fff}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::-webkit-input-placeholder{color:hsla(0,0%,100%,.5)}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::-moz-placeholder{color:hsla(0,0%,100%,.5)}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input:-ms-input-placeholder{color:hsla(0,0%,100%,.5)}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::-ms-input-placeholder{color:hsla(0,0%,100%,.5)}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::placeholder{color:hsla(0,0%,100%,.5)}.theme--light.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot .v-label{color:hsla(0,0%,100%,.7)}.theme--light.v-text-field--outlined:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot fieldset{color:rgba(0,0,0,.38)}.theme--light.v-text-field--outlined:not(.v-input--is-focused):not(.v-input--has-state):not(.v-input--is-disabled)>.v-input__control>.v-input__slot:hover fieldset{color:rgba(0,0,0,.86)}.theme--light.v-text-field--outlined:not(.v-input--is-focused).v-input--is-disabled>.v-input__control>.v-input__slot fieldset{color:rgba(0,0,0,.26)}.theme--dark.v-text-field>.v-input__control>.v-input__slot:before{border-color:hsla(0,0%,100%,.7)}.theme--dark.v-text-field:not(.v-input--has-state):hover>.v-input__control>.v-input__slot:before{border-color:#fff}.theme--dark.v-text-field.v-input--is-disabled .v-input__slot:before{-o-border-image:repeating-linear-gradient(90deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 2px,transparent 0,transparent 4px) 1 repeat;border-image:repeating-linear-gradient(90deg,hsla(0,0%,100%,.5) 0,hsla(0,0%,100%,.5) 2px,transparent 0,transparent 4px) 1 repeat}.theme--dark.v-text-field--filled>.v-input__control>.v-input__slot{background:hsla(0,0%,100%,.08)}.theme--dark.v-text-field--filled:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot:hover{background:hsla(0,0%,100%,.16)}.theme--dark.v-text-field--solo>.v-input__control>.v-input__slot{background:#1e1e1e}.theme--dark.v-text-field--solo-inverted>.v-input__control>.v-input__slot{background:hsla(0,0%,100%,.16)}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot{background:#fff}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input{color:rgba(0,0,0,.87)}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::-webkit-input-placeholder{color:rgba(0,0,0,.38)}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::-moz-placeholder{color:rgba(0,0,0,.38)}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input:-ms-input-placeholder{color:rgba(0,0,0,.38)}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::-ms-input-placeholder{color:rgba(0,0,0,.38)}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot input::placeholder{color:rgba(0,0,0,.38)}.theme--dark.v-text-field--solo-inverted.v-input--is-focused>.v-input__control>.v-input__slot .v-label{color:rgba(0,0,0,.6)}.theme--dark.v-text-field--outlined:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot fieldset{color:hsla(0,0%,100%,.24)}.theme--dark.v-text-field--outlined:not(.v-input--is-focused):not(.v-input--has-state):not(.v-input--is-disabled)>.v-input__control>.v-input__slot:hover fieldset{color:#fff}.theme--dark.v-text-field--outlined:not(.v-input--is-focused).v-input--is-disabled>.v-input__control>.v-input__slot fieldset{color:hsla(0,0%,100%,.16)}.v-text-field{padding-top:12px;margin-top:4px}.v-text-field input{flex:1 1 auto;line-height:20px;padding:8px 0 8px;max-width:100%;min-width:0;width:100%}.v-text-field .v-input__control,.v-text-field .v-input__slot,.v-text-field fieldset{border-radius:inherit}.v-text-field.v-input--has-state .v-input__control>.v-text-field__details>.v-counter,.v-text-field.v-input--is-disabled .v-input__control>.v-text-field__details>.v-counter,.v-text-field.v-input--is-disabled .v-input__control>.v-text-field__details>.v-messages,.v-text-field .v-input__control,.v-text-field fieldset{color:inherit}.v-text-field.v-input--dense{padding-top:0}.v-text-field.v-input--dense:not(.v-text-field--outlined) input{padding:4px 0 2px}.v-text-field.v-input--dense[type=text]::-ms-clear{display:none}.v-text-field.v-input--dense .v-input__append-inner,.v-text-field.v-input--dense .v-input__prepend-inner{margin-top:0}.v-text-field.v-input--dense:not(.v-text-field--enclosed):not(.v-text-field--full-width) .v-input__append-inner .v-input__icon>.v-icon,.v-text-field.v-input--dense:not(.v-text-field--enclosed):not(.v-text-field--full-width) .v-input__prepend-inner .v-input__icon>.v-icon{margin-top:8px}.v-text-field .v-input__append-inner,.v-text-field .v-input__prepend-inner{align-self:flex-start;display:inline-flex;margin-top:4px;line-height:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-application--is-ltr .v-text-field .v-input__prepend-inner{margin-right:auto;padding-right:4px}.v-application--is-ltr .v-text-field .v-input__append-inner,.v-application--is-rtl .v-text-field .v-input__prepend-inner{margin-left:auto;padding-left:4px}.v-application--is-rtl .v-text-field .v-input__append-inner{margin-right:auto;padding-right:4px}.v-text-field .v-counter{white-space:nowrap}.v-application--is-ltr .v-text-field .v-counter{margin-left:8px}.v-application--is-rtl .v-text-field .v-counter{margin-right:8px}.v-text-field .v-label{max-width:90%;overflow:hidden;text-overflow:ellipsis;top:6px;white-space:nowrap;pointer-events:none}.v-application--is-ltr .v-text-field .v-label{transform-origin:top left}.v-application--is-rtl .v-text-field .v-label{transform-origin:top right}.v-text-field .v-label--active{max-width:133%;transform:translateY(-18px) scale(.75)}.v-text-field>.v-input__control>.v-input__slot{cursor:text;transition:background .3s cubic-bezier(.25,.8,.5,1)}.v-text-field>.v-input__control>.v-input__slot:after,.v-text-field>.v-input__control>.v-input__slot:before{bottom:-1px;content:"";left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-text-field>.v-input__control>.v-input__slot:before{border-color:inherit;border-style:solid;border-width:thin 0 0 0}.v-text-field>.v-input__control>.v-input__slot:after{border-color:currentColor;border-style:solid;border-width:thin 0 thin 0;transform:scaleX(0)}.v-text-field__details{display:flex;flex:1 0 auto;max-width:100%;min-height:14px;overflow:hidden}.v-text-field__prefix,.v-text-field__suffix{align-self:center;cursor:default;transition:color .3s cubic-bezier(.25,.8,.5,1);white-space:nowrap}.v-application--is-ltr .v-text-field__prefix{text-align:right;padding-right:4px}.v-application--is-rtl .v-text-field__prefix{text-align:left;padding-left:4px}.v-text-field__suffix{white-space:nowrap}.v-application--is-ltr .v-text-field__suffix{padding-left:4px}.v-application--is-rtl .v-text-field__suffix{padding-right:4px}.v-application--is-ltr .v-text-field--reverse .v-text-field__prefix{text-align:left;padding-right:0;padding-left:4px}.v-application--is-rtl .v-text-field--reverse .v-text-field__prefix{text-align:right;padding-right:4px;padding-left:0}.v-application--is-ltr .v-text-field--reverse .v-text-field__suffix{padding-left:0;padding-right:4px}.v-application--is-rtl .v-text-field--reverse .v-text-field__suffix{padding-left:4px;padding-right:0}.v-text-field>.v-input__control>.v-input__slot>.v-text-field__slot{display:flex;flex:1 1 auto;position:relative}.v-text-field:not(.v-text-field--is-booted) .v-label,.v-text-field:not(.v-text-field--is-booted) legend{transition:none}.v-text-field--filled,.v-text-field--full-width,.v-text-field--outlined{position:relative}.v-text-field--filled>.v-input__control>.v-input__slot,.v-text-field--full-width>.v-input__control>.v-input__slot,.v-text-field--outlined>.v-input__control>.v-input__slot{align-items:stretch;min-height:56px}.v-text-field--filled.v-input--dense>.v-input__control>.v-input__slot,.v-text-field--full-width.v-input--dense>.v-input__control>.v-input__slot,.v-text-field--outlined.v-input--dense>.v-input__control>.v-input__slot{min-height:52px}.v-text-field--filled.v-input--dense.v-text-field--outlined.v-text-field--filled>.v-input__control>.v-input__slot,.v-text-field--filled.v-input--dense.v-text-field--outlined>.v-input__control>.v-input__slot,.v-text-field--filled.v-input--dense.v-text-field--single-line>.v-input__control>.v-input__slot,.v-text-field--full-width.v-input--dense.v-text-field--outlined.v-text-field--filled>.v-input__control>.v-input__slot,.v-text-field--full-width.v-input--dense.v-text-field--outlined>.v-input__control>.v-input__slot,.v-text-field--full-width.v-input--dense.v-text-field--single-line>.v-input__control>.v-input__slot,.v-text-field--outlined.v-input--dense.v-text-field--outlined.v-text-field--filled>.v-input__control>.v-input__slot,.v-text-field--outlined.v-input--dense.v-text-field--outlined>.v-input__control>.v-input__slot,.v-text-field--outlined.v-input--dense.v-text-field--single-line>.v-input__control>.v-input__slot{min-height:40px}.v-text-field--outlined{border-radius:4px}.v-text-field--enclosed .v-input__append-inner,.v-text-field--enclosed .v-input__append-outer,.v-text-field--enclosed .v-input__prepend-inner,.v-text-field--enclosed .v-input__prepend-outer,.v-text-field--full-width .v-input__append-inner,.v-text-field--full-width .v-input__append-outer,.v-text-field--full-width .v-input__prepend-inner,.v-text-field--full-width .v-input__prepend-outer{margin-top:17px}.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo) .v-input__append-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo) .v-input__append-outer,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo) .v-input__prepend-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo) .v-input__prepend-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo) .v-input__append-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo) .v-input__append-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo) .v-input__prepend-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo) .v-input__prepend-outer{margin-top:14px}.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-outer,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__append-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--single-line .v-input__prepend-outer{margin-top:9px}.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__append-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__append-outer,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__prepend-inner,.v-text-field--enclosed.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__prepend-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__append-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__append-outer,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__prepend-inner,.v-text-field--full-width.v-input--dense:not(.v-text-field--solo).v-text-field--outlined .v-input__prepend-outer{margin-top:8px}.v-text-field--filled .v-label,.v-text-field--full-width .v-label{top:18px}.v-text-field--filled .v-label--active,.v-text-field--full-width .v-label--active{transform:translateY(-6px) scale(.75)}.v-text-field--filled.v-input--dense .v-label,.v-text-field--full-width.v-input--dense .v-label{top:17px}.v-text-field--filled.v-input--dense .v-label--active,.v-text-field--full-width.v-input--dense .v-label--active{transform:translateY(-10px) scale(.75)}.v-text-field--filled.v-input--dense.v-text-field--single-line .v-label,.v-text-field--full-width.v-input--dense.v-text-field--single-line .v-label{top:11px}.v-text-field--filled{border-radius:4px 4px 0 0}.v-text-field--filled:not(.v-text-field--single-line) input{margin-top:22px}.v-text-field--filled.v-input--dense:not(.v-text-field--single-line).v-text-field--outlined input{margin-top:0}.v-text-field--filled .v-text-field__prefix,.v-text-field--filled .v-text-field__suffix{max-height:32px;margin-top:20px}.v-text-field--full-width{border-radius:0}.v-text-field--outlined .v-text-field__slot,.v-text-field--single-line .v-text-field__slot{align-items:center}.v-text-field.v-text-field--enclosed{margin:0;padding:0}.v-text-field.v-text-field--enclosed.v-text-field--single-line .v-text-field__prefix,.v-text-field.v-text-field--enclosed.v-text-field--single-line .v-text-field__suffix{margin-top:0}.v-text-field.v-text-field--enclosed:not(.v-text-field--filled) .v-progress-linear__background{display:none}.v-text-field.v-text-field--enclosed .v-text-field__details,.v-text-field.v-text-field--enclosed:not(.v-text-field--rounded)>.v-input__control>.v-input__slot{padding:0 12px}.v-text-field.v-text-field--enclosed .v-text-field__details{margin-bottom:8px}.v-application--is-ltr .v-text-field--reverse input{text-align:right}.v-application--is-rtl .v-text-field--reverse input{text-align:left}.v-application--is-ltr .v-text-field--reverse .v-label{transform-origin:top right}.v-application--is-rtl .v-text-field--reverse .v-label{transform-origin:top left}.v-text-field--reverse .v-text-field__slot,.v-text-field--reverse>.v-input__control>.v-input__slot{flex-direction:row-reverse}.v-text-field--outlined>.v-input__control>.v-input__slot:after,.v-text-field--outlined>.v-input__control>.v-input__slot:before,.v-text-field--rounded>.v-input__control>.v-input__slot:after,.v-text-field--rounded>.v-input__control>.v-input__slot:before,.v-text-field--solo>.v-input__control>.v-input__slot:after,.v-text-field--solo>.v-input__control>.v-input__slot:before{display:none}.v-text-field--outlined,.v-text-field--solo{border-radius:4px}.v-text-field--outlined{margin-bottom:16px;transition:border .3s cubic-bezier(.25,.8,.5,1)}.v-text-field--outlined .v-label{top:18px}.v-text-field--outlined .v-label--active{transform:translateY(-24px) scale(.75)}.v-text-field--outlined.v-input--dense .v-label{top:10px}.v-text-field--outlined.v-input--dense .v-label--active{transform:translateY(-16px) scale(.75)}.v-text-field--outlined fieldset{border-collapse:collapse;border-color:currentColor;border-style:solid;border-width:1px;bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:-5px;transition-duration:.3s;transition-property:color,border-width;transition-timing-function:cubic-bezier(.25,.8,.25,1)}.v-application--is-ltr .v-text-field--outlined fieldset{padding-left:8px}.v-application--is-ltr .v-text-field--outlined.v-text-field--reverse fieldset,.v-application--is-rtl .v-text-field--outlined fieldset{padding-right:8px}.v-application--is-rtl .v-text-field--outlined.v-text-field--reverse fieldset{padding-left:8px}.v-text-field--outlined legend{line-height:11px;padding:0;transition:width .3s cubic-bezier(.25,.8,.5,1)}.v-application--is-ltr .v-text-field--outlined legend{text-align:left}.v-application--is-ltr .v-text-field--outlined.v-text-field--reverse legend,.v-application--is-rtl .v-text-field--outlined legend{text-align:right}.v-application--is-rtl .v-text-field--outlined.v-text-field--reverse legend{text-align:left}.v-application--is-ltr .v-text-field--outlined.v-text-field--rounded legend{margin-left:12px}.v-application--is-rtl .v-text-field--outlined.v-text-field--rounded legend{margin-right:12px}.v-text-field--outlined>.v-input__control>.v-input__slot{background:transparent}.v-text-field--outlined .v-text-field__prefix{max-height:32px}.v-text-field--outlined .v-input__append-outer,.v-text-field--outlined .v-input__prepend-outer{margin-top:18px}.v-text-field--outlined.v-input--has-state fieldset,.v-text-field--outlined.v-input--is-focused fieldset{border:2px solid currentColor}.v-text-field--rounded{border-radius:28px}.v-text-field--rounded>.v-input__control>.v-input__slot{padding:0 24px}.v-text-field--shaped{border-radius:16px 16px 0 0}.v-text-field.v-text-field--solo .v-label{top:calc(50% - 9px)}.v-text-field.v-text-field--solo .v-input__control{min-height:48px;padding:0}.v-text-field.v-text-field--solo .v-input__control input{caret-color:auto}.v-text-field.v-text-field--solo.v-input--dense>.v-input__control{min-height:38px}.v-text-field.v-text-field--solo:not(.v-text-field--solo-flat)>.v-input__control>.v-input__slot{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-text-field.v-text-field--solo .v-input__append-inner,.v-text-field.v-text-field--solo .v-input__prepend-inner{align-self:center;margin-top:0}.v-text-field.v-text-field--solo .v-input__append-outer,.v-text-field.v-text-field--solo .v-input__prepend-outer{margin-top:12px}.v-text-field.v-text-field--solo.v-input--dense .v-input__append-outer,.v-text-field.v-text-field--solo.v-input--dense .v-input__prepend-outer{margin-top:7px}.v-text-field.v-input--is-focused>.v-input__control>.v-input__slot:after{transform:scaleX(1)}.v-text-field.v-input--has-state>.v-input__control>.v-input__slot:before{border-color:currentColor}.theme--light.v-select .v-select__selection--comma{color:rgba(0,0,0,.87)}.theme--light.v-select .v-select__selection--disabled{color:rgba(0,0,0,.38)}.theme--dark.v-select .v-select__selection--comma,.theme--light.v-select.v-text-field--solo-inverted.v-input--is-focused .v-select__selection--comma{color:#fff}.theme--dark.v-select .v-select__selection--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-select.v-text-field--solo-inverted.v-input--is-focused .v-select__selection--comma{color:rgba(0,0,0,.87)}.v-select{position:relative}.v-select:not(.v-select--is-multi).v-text-field--single-line .v-select__selections{flex-wrap:nowrap}.v-select>.v-input__control>.v-input__slot{cursor:pointer}.v-select .v-chip{flex:0 1 auto;margin:4px}.v-select .v-chip--selected:after{opacity:.22}.v-select .fade-transition-leave-active{position:absolute;left:0}.v-select.v-input--is-dirty ::-webkit-input-placeholder{color:transparent!important}.v-select.v-input--is-dirty ::-moz-placeholder{color:transparent!important}.v-select.v-input--is-dirty :-ms-input-placeholder{color:transparent!important}.v-select.v-input--is-dirty ::-ms-input-placeholder{color:transparent!important}.v-select.v-input--is-dirty ::placeholder{color:transparent!important}.v-select:not(.v-input--is-dirty):not(.v-input--is-focused) .v-text-field__prefix{line-height:20px;top:7px;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-select.v-text-field--enclosed:not(.v-text-field--single-line):not(.v-text-field--outlined) .v-select__selections{padding-top:20px}.v-select.v-text-field--outlined:not(.v-text-field--single-line) .v-select__selections{padding:8px 0}.v-select.v-text-field--outlined:not(.v-text-field--single-line).v-input--dense .v-select__selections{padding:4px 0}.v-select.v-text-field input{flex:1 1;margin-top:0;min-width:0;pointer-events:none;position:relative}.v-select.v-select--is-menu-active .v-input__icon--append .v-icon{transform:rotate(180deg)}.v-select.v-select--chips input{margin:0}.v-select.v-select--chips .v-select__selections{min-height:42px}.v-select.v-select--chips.v-input--dense .v-select__selections{min-height:40px}.v-select.v-select--chips .v-chip--select.v-chip--active:before{opacity:.2}.v-select.v-select--chips.v-select--chips--small .v-select__selections{min-height:26px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed .v-select__selections{min-height:68px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box.v-input--dense .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed.v-input--dense .v-select__selections{min-height:40px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box.v-select--chips--small .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed.v-select--chips--small .v-select__selections{min-height:26px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box.v-select--chips--small.v-input--dense .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed.v-select--chips--small.v-input--dense .v-select__selections{min-height:38px}.v-select.v-text-field--reverse .v-select__selections,.v-select.v-text-field--reverse .v-select__slot{flex-direction:row-reverse}.v-select__selections{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;line-height:18px;max-width:100%;min-width:0}.v-select__selection{max-width:90%}.v-select__selection--comma{margin:7px 4px 7px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-select.v-input--dense .v-select__selection--comma{margin:5px 4px 3px 0}.v-select.v-input--dense .v-chip{margin:0 4px 0 4px}.v-select__slot{position:relative;align-items:center;display:flex;max-width:100%;min-width:0;width:100%}.v-select:not(.v-text-field--single-line):not(.v-text-field--outlined) .v-select__slot>input{align-self:flex-end}.theme--light.v-input,.theme--light.v-input input,.theme--light.v-input textarea{color:rgba(0,0,0,.87)}.theme--light.v-input input::-webkit-input-placeholder,.theme--light.v-input textarea::-webkit-input-placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input input::-moz-placeholder,.theme--light.v-input textarea::-moz-placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input input:-ms-input-placeholder,.theme--light.v-input textarea:-ms-input-placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input input::-ms-input-placeholder,.theme--light.v-input textarea::-ms-input-placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input input::placeholder,.theme--light.v-input textarea::placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input--is-disabled,.theme--light.v-input--is-disabled input,.theme--light.v-input--is-disabled textarea{color:rgba(0,0,0,.38)}.theme--dark.v-input,.theme--dark.v-input input,.theme--dark.v-input textarea{color:#fff}.theme--dark.v-input input::-webkit-input-placeholder,.theme--dark.v-input textarea::-webkit-input-placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input input::-moz-placeholder,.theme--dark.v-input textarea::-moz-placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input input:-ms-input-placeholder,.theme--dark.v-input textarea:-ms-input-placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input input::-ms-input-placeholder,.theme--dark.v-input textarea::-ms-input-placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input input::placeholder,.theme--dark.v-input textarea::placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input--is-disabled,.theme--dark.v-input--is-disabled input,.theme--dark.v-input--is-disabled textarea{color:hsla(0,0%,100%,.5)}.v-input{align-items:flex-start;display:flex;flex:1 1 auto;font-size:16px;letter-spacing:normal;max-width:100%;text-align:left}.v-input .v-progress-linear{top:calc(100% - 1px);left:0}.v-input input{max-height:32px}.v-input input:invalid,.v-input textarea:invalid{box-shadow:none}.v-input input:active,.v-input input:focus,.v-input textarea:active,.v-input textarea:focus{outline:none}.v-input .v-label{height:20px;line-height:20px}.v-input__append-outer,.v-input__prepend-outer{display:inline-flex;margin-bottom:4px;margin-top:4px;line-height:1}.v-input__append-outer .v-icon,.v-input__prepend-outer .v-icon{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-application--is-ltr .v-input__append-outer{margin-left:9px}.v-application--is-ltr .v-input__prepend-outer,.v-application--is-rtl .v-input__append-outer{margin-right:9px}.v-application--is-rtl .v-input__prepend-outer{margin-left:9px}.v-input__control{display:flex;flex-direction:column;height:auto;flex-grow:1;flex-wrap:wrap;min-width:0;width:100%}.v-input__icon{align-items:center;display:inline-flex;height:24px;flex:1 0 auto;justify-content:center;min-width:24px;width:24px}.v-input__icon--clear{border-radius:50%}.v-input__icon--clear .v-icon--disabled{visibility:hidden}.v-input__slot{align-items:center;color:inherit;display:flex;margin-bottom:8px;min-height:inherit;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-input--dense>.v-input__control>.v-input__slot{margin-bottom:4px}.v-input--is-disabled:not(.v-input--is-readonly){pointer-events:none}.v-input--is-loading>.v-input__control>.v-input__slot:after,.v-input--is-loading>.v-input__control>.v-input__slot:before{display:none}.v-input--hide-details>.v-input__control>.v-input__slot{margin-bottom:0}.v-input--has-state.error--text .v-label{-webkit-animation:v-shake .6s cubic-bezier(.25,.8,.5,1);animation:v-shake .6s cubic-bezier(.25,.8,.5,1)}.theme--light.v-label{color:rgba(0,0,0,.6)}.theme--light.v-label--is-disabled{color:rgba(0,0,0,.38)}.theme--dark.v-label{color:hsla(0,0%,100%,.7)}.theme--dark.v-label--is-disabled{color:hsla(0,0%,100%,.5)}.v-label{font-size:16px;line-height:1;min-height:8px;transition:.3s cubic-bezier(.25,.8,.5,1)}.theme--light.v-messages{color:rgba(0,0,0,.6)}.theme--dark.v-messages{color:hsla(0,0%,100%,.7)}.v-messages{flex:1 1 auto;font-size:12px;min-height:14px;min-width:1px;position:relative}.v-application--is-ltr .v-messages{text-align:left}.v-application--is-rtl .v-messages{text-align:right}.v-messages__message{line-height:12px;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.theme--light.v-counter{color:rgba(0,0,0,.6)}.theme--dark.v-counter{color:hsla(0,0%,100%,.7)}.v-counter{flex:0 1 auto;font-size:12px;min-height:12px;line-height:12px}.v-simple-checkbox{align-self:center;line-height:normal;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.v-simple-checkbox--disabled{cursor:default}.theme--light.v-divider{border-color:rgba(0,0,0,.12)}.theme--dark.v-divider{border-color:hsla(0,0%,100%,.12)}.v-divider{display:block;flex:1 1 0px;max-width:100%;height:0;max-height:0;border:solid;border-width:thin 0 0 0;transition:inherit}.v-divider--inset:not(.v-divider--vertical){max-width:calc(100% - 72px)}.v-application--is-ltr .v-divider--inset:not(.v-divider--vertical){margin-left:72px}.v-application--is-rtl .v-divider--inset:not(.v-divider--vertical){margin-right:72px}.v-divider--vertical{align-self:stretch;border:solid;border-width:0 thin 0 0;display:inline-flex;height:inherit;min-height:100%;max-height:100%;max-width:0;width:0;vertical-align:text-bottom}.v-divider--vertical.v-divider--inset{margin-top:8px;min-height:0;max-height:calc(100% - 16px)}.theme--light.v-subheader{color:rgba(0,0,0,.6)}.theme--dark.v-subheader{color:hsla(0,0%,100%,.7)}.v-subheader{align-items:center;display:flex;height:48px;font-size:.875rem;font-weight:400;padding:0 16px 0 16px}.v-subheader--inset{margin-left:56px}.v-chip:not(.v-chip--outlined).accent,.v-chip:not(.v-chip--outlined).error,.v-chip:not(.v-chip--outlined).info,.v-chip:not(.v-chip--outlined).primary,.v-chip:not(.v-chip--outlined).secondary,.v-chip:not(.v-chip--outlined).success,.v-chip:not(.v-chip--outlined).warning{color:#fff}.theme--light.v-chip{border-color:rgba(0,0,0,.12);color:rgba(0,0,0,.87)}.theme--light.v-chip:not(.v-chip--active){background:#e0e0e0}.theme--light.v-chip:hover:before{opacity:.04}.theme--light.v-chip--active:before,.theme--light.v-chip--active:hover:before,.theme--light.v-chip:focus:before{opacity:.12}.theme--light.v-chip--active:focus:before{opacity:.16}.theme--dark.v-chip{border-color:hsla(0,0%,100%,.12);color:#fff}.theme--dark.v-chip:not(.v-chip--active){background:#555}.theme--dark.v-chip:hover:before{opacity:.08}.theme--dark.v-chip--active:before,.theme--dark.v-chip--active:hover:before,.theme--dark.v-chip:focus:before{opacity:.24}.theme--dark.v-chip--active:focus:before{opacity:.32}.v-chip{align-items:center;cursor:default;display:inline-flex;line-height:20px;max-width:100%;outline:none;overflow:hidden;padding:0 12px;position:relative;text-decoration:none;transition-duration:.28s;transition-property:box-shadow,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);vertical-align:middle;white-space:nowrap}.v-chip:before{background-color:currentColor;bottom:0;border-radius:inherit;content:"";left:0;opacity:0;position:absolute;pointer-events:none;right:0;top:0}.v-chip .v-avatar{height:24px!important;min-width:24px!important;width:24px!important}.v-chip .v-icon{font-size:24px}.v-application--is-ltr .v-chip .v-avatar--left,.v-application--is-ltr .v-chip .v-icon--left{margin-left:-6px;margin-right:6px}.v-application--is-ltr .v-chip .v-avatar--right,.v-application--is-ltr .v-chip .v-icon--right,.v-application--is-rtl .v-chip .v-avatar--left,.v-application--is-rtl .v-chip .v-icon--left{margin-left:6px;margin-right:-6px}.v-application--is-rtl .v-chip .v-avatar--right,.v-application--is-rtl .v-chip .v-icon--right{margin-left:-6px;margin-right:6px}.v-chip:not(.v-chip--no-color) .v-icon{color:inherit}.v-chip .v-chip__close.v-icon{font-size:18px;max-height:18px;max-width:18px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-application--is-ltr .v-chip .v-chip__close.v-icon.v-icon--right{margin-right:-4px}.v-application--is-rtl .v-chip .v-chip__close.v-icon.v-icon--right{margin-left:-4px}.v-chip .v-chip__close.v-icon:active,.v-chip .v-chip__close.v-icon:focus,.v-chip .v-chip__close.v-icon:hover{opacity:.72}.v-chip .v-chip__content{align-items:center;display:inline-flex;height:100%;max-width:100%}.v-chip--active .v-icon{color:inherit}.v-chip--link:before{transition:opacity .3s cubic-bezier(.25,.8,.5,1)}.v-chip--link:focus:before{opacity:.32}.v-chip--clickable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-chip--clickable:active{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-chip--disabled{opacity:.4;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-chip__filter{max-width:24px}.v-chip__filter.v-icon{color:inherit}.v-chip__filter.expand-x-transition-enter,.v-chip__filter.expand-x-transition-leave-active{margin:0}.v-chip--pill .v-chip__filter{margin-right:0 16px 0 0}.v-chip--pill .v-avatar{height:32px!important;width:32px!important}.v-application--is-ltr .v-chip--pill .v-avatar--left{margin-left:-12px}.v-application--is-ltr .v-chip--pill .v-avatar--right,.v-application--is-rtl .v-chip--pill .v-avatar--left{margin-right:-12px}.v-application--is-rtl .v-chip--pill .v-avatar--right{margin-left:-12px}.v-chip--label{border-radius:4px!important}.v-chip.v-chip--outlined{border-width:thin;border-style:solid}.v-chip.v-chip--outlined.v-chip--active:before{opacity:.08}.v-chip.v-chip--outlined .v-icon{color:inherit}.v-chip.v-chip--outlined.v-chip.v-chip{background-color:transparent!important}.v-chip.v-chip--selected{background:transparent}.v-chip.v-chip--selected:after{opacity:.28}.v-chip.v-size--x-small{border-radius:8px;font-size:10px;height:16px}.v-chip.v-size--small{border-radius:12px;font-size:12px;height:24px}.v-chip.v-size--default{border-radius:16px;font-size:14px;height:32px}.v-chip.v-size--large{border-radius:27px;font-size:16px;height:54px}.v-chip.v-size--x-large{border-radius:33px;font-size:18px;height:66px}.theme--light.v-slider .v-slider__thumb,.theme--light.v-slider .v-slider__track-background,.theme--light.v-slider .v-slider__track-fill{background:rgba(0,0,0,.26)}.theme--dark.v-slider .v-slider__thumb,.theme--dark.v-slider .v-slider__track-background,.theme--dark.v-slider .v-slider__track-fill{background:hsla(0,0%,100%,.2)}.v-slider{cursor:default;display:flex;align-items:center;position:relative;flex:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-slider input{cursor:default;padding:0;width:100%;display:none}.v-slider__track-container{position:absolute;border-radius:0}.v-slider__thumb-container,.v-slider__track-background,.v-slider__track-fill{position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-slider__thumb-container{outline:none;top:50%}.v-slider__thumb-container:hover .v-slider__thumb:before{transform:scale(1)}.v-slider__thumb{width:12px;height:12px;left:-6px;top:50%;transform:translateY(-50%);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-slider__thumb,.v-slider__thumb:before{position:absolute;border-radius:50%;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-slider__thumb:before{content:"";color:inherit;width:36px;height:36px;background:currentColor;opacity:.3;left:-12px;top:-12px;transform:scale(.1);pointer-events:none}.v-slider__tick,.v-slider__ticks-container{position:absolute}.v-slider__tick{opacity:0;background-color:rgba(0,0,0,.5);transition:.3s cubic-bezier(.25,.8,.5,1);border-radius:0}.v-slider__tick--filled{background-color:hsla(0,0%,100%,.5)}.v-application--is-ltr .v-slider__tick:first-child .v-slider__tick-label{transform:none}.v-application--is-rtl .v-slider__tick:first-child .v-slider__tick-label{transform:translateX(100%)}.v-application--is-ltr .v-slider__tick:last-child .v-slider__tick-label{transform:translateX(-100%)}.v-application--is-rtl .v-slider__tick:last-child .v-slider__tick-label{transform:none}.v-slider__tick-label{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.v-slider__thumb-label-container{top:0}.v-slider__thumb-label,.v-slider__thumb-label-container{position:absolute;left:0;transition:.3s cubic-bezier(.25,.8,.25,1)}.v-slider__thumb-label{display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#fff;width:32px;height:32px;border-radius:50% 50% 0;bottom:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-slider--horizontal{min-height:32px;margin-left:8px;margin-right:8px}.v-slider--horizontal .v-slider__track-container{width:100%;height:2px;left:0;top:50%;transform:translateY(-50%)}.v-slider--horizontal .v-slider__track-background,.v-slider--horizontal .v-slider__track-fill{height:100%}.v-slider--horizontal .v-slider__ticks-container{left:0;height:2px;width:100%}.v-application--is-ltr .v-slider--horizontal .v-slider__tick:first-child .v-slider__tick-label,.v-application--is-rtl .v-slider--horizontal .v-slider__tick:first-child .v-slider__tick-label{transform:translateX(0)}.v-application--is-ltr .v-slider--horizontal .v-slider__tick:last-child .v-slider__tick-label{transform:translateX(-100%)}.v-application--is-rtl .v-slider--horizontal .v-slider__tick:last-child .v-slider__tick-label{transform:translateX(100%)}.v-slider--horizontal .v-slider__tick .v-slider__tick-label{top:8px}.v-application--is-ltr .v-slider--horizontal .v-slider__tick .v-slider__tick-label{transform:translateX(-50%)}.v-application--is-rtl .v-slider--horizontal .v-slider__tick .v-slider__tick-label{transform:translateX(50%)}.v-slider--horizontal .v-slider__thumb-label{transform:translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)}.v-slider--horizontal .v-slider__thumb-label>*{transform:rotate(-45deg)}.v-slider--vertical{min-height:150px;margin-top:12px;margin-bottom:12px}.v-slider--vertical .v-slider__track-container{height:100%;width:2px;left:50%;top:0;transform:translateX(-50%)}.v-slider--vertical .v-slider__track-background,.v-slider--vertical .v-slider__track-fill{width:100%}.v-slider--vertical .v-slider__thumb-container{left:50%}.v-slider--vertical .v-slider__ticks-container{top:0;width:2px;height:100%;left:50%;transform:translateX(-50%)}.v-application--is-ltr .v-slider--vertical .v-slider__tick .v-slider__tick-label,.v-application--is-ltr .v-slider--vertical .v-slider__tick:first-child .v-slider__tick-label,.v-application--is-ltr .v-slider--vertical .v-slider__tick:last-child .v-slider__tick-label{transform:translateY(-50%);left:12px}.v-application--is-rtl .v-slider--vertical .v-slider__tick .v-slider__tick-label,.v-application--is-rtl .v-slider--vertical .v-slider__tick:first-child .v-slider__tick-label,.v-application--is-rtl .v-slider--vertical .v-slider__tick:last-child .v-slider__tick-label{transform:translateY(-50%);right:12px}.v-slider--vertical .v-slider__thumb-label>*{transform:rotate(-135deg)}.v-slider__thumb-container--focused .v-slider__thumb:before{transform:scale(1)}.v-slider--active .v-slider__tick{opacity:1}.v-slider__thumb-container--active .v-slider__thumb:before{transform:scale(1.5)!important}.v-slider--disabled{pointer-events:none}.v-slider--disabled .v-slider__thumb{width:8px;height:8px;left:-4px}.v-slider--disabled .v-slider__thumb:before{display:none}.v-slider__ticks-container--always-show .v-slider__tick{opacity:1}.v-input__slider.v-input--is-readonly>.v-input__control{pointer-events:none}.v-application--is-ltr .v-input__slider .v-input__slot .v-label{margin-left:0;margin-right:12px}.v-application--is-ltr .v-input__slider--inverse-label .v-input__slot .v-label,.v-application--is-rtl .v-input__slider .v-input__slot .v-label{margin-right:0;margin-left:12px}.v-application--is-rtl .v-input__slider--inverse-label .v-input__slot .v-label{margin-left:0;margin-right:12px}.v-input__slider--vertical{align-items:center}.v-application--is-ltr .v-input__slider--vertical{flex-direction:column-reverse}.v-application--is-rtl .v-input__slider--vertical{flex-direction:column}.v-input__slider--vertical .v-input__append-outer,.v-input__slider--vertical .v-input__prepend-outer,.v-input__slider--vertical .v-input__slot{margin:0}.v-input__slider--vertical .v-messages{display:none}.v-input--has-state .v-slider__track-background{opacity:.4}
\ No newline at end of file
diff --git a/scripts/system/inventory/dist/favicon.ico b/scripts/system/inventory/dist/favicon.ico
new file mode 100644
index 0000000000..df36fcfb72
Binary files /dev/null and b/scripts/system/inventory/dist/favicon.ico differ
diff --git a/scripts/system/inventory/dist/index.html b/scripts/system/inventory/dist/index.html
new file mode 100644
index 0000000000..75ddbbccb7
--- /dev/null
+++ b/scripts/system/inventory/dist/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=favicon.ico><title>Inventory</title><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css><link href=css/app.a93e8b1f.css rel=preload as=style><link href=css/chunk-vendors.8540aa41.css rel=preload as=style><link href=js/app.a3555a80.js rel=preload as=script><link href=js/chunk-vendors.a0f21a27.js rel=preload as=script><link href=css/chunk-vendors.8540aa41.css rel=stylesheet><link href=css/app.a93e8b1f.css rel=stylesheet></head><body><noscript><strong>We're sorry but Inventory doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=js/chunk-vendors.a0f21a27.js></script><script src=js/app.a3555a80.js></script></body></html>
\ No newline at end of file
diff --git a/scripts/system/inventory/dist/inventory-a-msg.svg b/scripts/system/inventory/dist/inventory-a-msg.svg
new file mode 100644
index 0000000000..480a3fdd5d
--- /dev/null
+++ b/scripts/system/inventory/dist/inventory-a-msg.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#0c0" d="M17,14H19V17H22V19H19V22H17V19H14V17H17V14M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.53C20.94,12.58 19.54,12 18,12A6,6 0 0,0 12,18C12,19.09 12.29,20.12 12.8,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z" /></svg>
diff --git a/scripts/system/inventory/dist/inventory-a.svg b/scripts/system/inventory/dist/inventory-a.svg
new file mode 100644
index 0000000000..c53d21722c
--- /dev/null
+++ b/scripts/system/inventory/dist/inventory-a.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5,12C19,12 21,14 21,16.5C21,17.38 20.75,18.21 20.31,18.9L23.39,22L22,23.39L18.88,20.32C18.19,20.75 17.37,21 16.5,21C14,21 12,19 12,16.5C12,14 14,12 16.5,12M16.5,14A2.5,2.5 0 0,0 14,16.5A2.5,2.5 0 0,0 16.5,19A2.5,2.5 0 0,0 19,16.5A2.5,2.5 0 0,0 16.5,14M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.03C20.85,11.21 18.82,10 16.5,10A6.5,6.5 0 0,0 10,16.5C10,18.25 10.69,19.83 11.81,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z" /></svg>
\ No newline at end of file
diff --git a/scripts/system/inventory/dist/inventory-i-msg.svg b/scripts/system/inventory/dist/inventory-i-msg.svg
new file mode 100644
index 0000000000..95856910fa
--- /dev/null
+++ b/scripts/system/inventory/dist/inventory-i-msg.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#0f0" d="M17,14H19V17H22V19H19V22H17V19H14V17H17V14M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.53C20.94,12.58 19.54,12 18,12A6,6 0 0,0 12,18C12,19.09 12.29,20.12 12.8,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z" /></svg>
diff --git a/scripts/system/inventory/dist/inventory-i.svg b/scripts/system/inventory/dist/inventory-i.svg
new file mode 100644
index 0000000000..c5ec3d8cc3
--- /dev/null
+++ b/scripts/system/inventory/dist/inventory-i.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="white" d="M16.5,12C19,12 21,14 21,16.5C21,17.38 20.75,18.21 20.31,18.9L23.39,22L22,23.39L18.88,20.32C18.19,20.75 17.37,21 16.5,21C14,21 12,19 12,16.5C12,14 14,12 16.5,12M16.5,14A2.5,2.5 0 0,0 14,16.5A2.5,2.5 0 0,0 16.5,19A2.5,2.5 0 0,0 19,16.5A2.5,2.5 0 0,0 16.5,14M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.03C20.85,11.21 18.82,10 16.5,10A6.5,6.5 0 0,0 10,16.5C10,18.25 10.69,19.83 11.81,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z" /></svg>
diff --git a/scripts/system/inventory/dist/inventory.js b/scripts/system/inventory/dist/inventory.js
new file mode 100644
index 0000000000..12ecba1546
--- /dev/null
+++ b/scripts/system/inventory/dist/inventory.js
@@ -0,0 +1,299 @@
+//
+//  inventory.js
+//
+//  Created by kasenvr@gmail.com on 2 Apr 2020
+//  Copyright 2020 Vircadia and contributors.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+//
+
+/* global AvatarList Clipboard console Controller Entities location Messages MyAvatar Script ScriptDiscoveryService Settings
+Tablet Vec3 Window */
+
+(function () { // BEGIN LOCAL_SCOPE
+    "use strict";
+    var AppUi = Script.require('appUi');
+    var ui;
+    var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+
+    // VARIABLES
+    var inventoryDataSettingString = "inventoryApp.data";
+    var inventoryData;
+
+    var inventorySettingsString = "inventoryApp.settings";
+    var inventorySettings;
+
+    var RECEIVING_ITEM_QUEUE_LIMIT = 5;
+    var receivingItemQueue = [];
+
+    var NEARBY_USERS_SEARCH_RADIUS = 25;
+
+
+    // APP EVENT AND MESSAGING ROUTING
+
+    function onWebAppEventReceived(event) {
+        var eventJSON = JSON.parse(event);
+        if (eventJSON.app === "inventory") { // This is our web app!
+            // print("inventory.js received a web event: " + event);
+            
+            if (eventJSON.command === "ready") {
+                initializeInventoryApp();
+            }
+            
+            if (eventJSON.command === "web-to-script-inventory") {
+                receiveInventory(eventJSON.data);
+            }
+            
+            if (eventJSON.command === "web-to-script-settings") {
+                receiveSettings(eventJSON.data);
+            }
+            
+            if (eventJSON.command === "use-item") {
+                useItem(eventJSON.data);
+            }
+            
+            if (eventJSON.command === "share-item") {
+                shareItem(eventJSON.data);
+            }
+            
+            if (eventJSON.command === "web-to-script-request-nearby-users") {
+                sendNearbyUsers();
+            }
+            
+            if (eventJSON.command === "web-to-script-request-receiving-item-queue") {
+                sendReceivingItemQueue();
+            }
+            
+            if (eventJSON.command === "web-to-script-update-receiving-item-queue") {
+                updateReceivingItemQueue(eventJSON.data);
+            }
+            
+        }
+    }
+
+    tablet.webEventReceived.connect(onWebAppEventReceived);
+
+    function sendToWeb(command, data) {
+        var dataToSend = {
+            "app": "inventory",
+            "command": command,
+            "data": data
+        };
+        
+        tablet.emitScriptEvent(JSON.stringify(dataToSend));
+    }
+
+    var inventoryMessagesChannel = "com.vircadia.inventory";
+
+    function onMessageReceived(channel, message, sender, localOnly) {
+        if (channel === inventoryMessagesChannel) {
+            var messageJSON = JSON.parse(message);
+            // Window.alert("Passed 0 " + messageJSON.recipient + " vs " + MyAvatar.sessionUUID);
+            if (messageJSON.command === "share-item" 
+                && messageJSON.recipient === MyAvatar.sessionUUID) { // We are receiving an item.
+                // Window.alert("Passed 1 " + messageJSON.recipient + " vs " + MyAvatar.sessionUUID);
+                pushReceivedItemToQueue(sender, messageJSON.type, messageJSON.name, messageJSON.url);
+            } 
+        }
+        // print("Message received:");
+        // print("- channel: " + channel);
+        // print("- message: " + message);
+        // print("- sender: " + sender);
+        // print("- localOnly: " + localOnly);
+    }
+
+    function sendMessage(dataToSend) {
+        Messages.sendMessage(inventoryMessagesChannel, JSON.stringify(dataToSend));
+    }
+
+    // END APP EVENT AND MESSAGING ROUTING
+
+    // SEND AND RECEIVE INVENTORY STATE
+
+    function receiveInventory(receivedInventoryData) {
+        inventoryData = receivedInventoryData;
+        saveInventory();
+    }
+
+    function sendInventory() {
+        sendToWeb("script-to-web-inventory", inventoryData);
+    }
+
+    // END SEND AND RECEIVE INVENTORY STATE
+
+    // SEND AND RECEIVE SETTINGS STATE
+
+    function receiveSettings(receivedSettingsData) {
+        inventorySettings = receivedSettingsData;
+        saveSettings();
+    }
+
+    function sendSettings() {
+        sendToWeb("script-to-web-settings", inventorySettings);
+    }
+
+    // END SEND AND RECEIVE SETTINGS STATE
+
+    function saveInventory() {
+        Settings.setValue(inventoryDataSettingString, inventoryData);
+    }
+
+    function loadInventory() {
+        inventoryData = Settings.getValue(inventoryDataSettingString);
+    }
+
+    function saveSettings() {
+        Settings.setValue(inventorySettingsString, inventorySettings);
+    }
+
+    function loadSettings() {
+        inventorySettings = Settings.getValue(inventorySettingsString);
+    }
+
+    function pushReceivedItemToQueue(senderUUID, type, name, url) {
+        console.info("Receiving an item:", name, "from:", senderUUID);
+        var getAvatarData = AvatarList.getAvatar(senderUUID);
+        var senderName = getAvatarData.sessionDisplayName;
+        var senderDistance = Vec3.distance(MyAvatar.position, getAvatarData.position);
+        
+        var packageRequest = {
+            "senderUUID": senderUUID,
+            "senderName": senderName,
+            "senderDistance": senderDistance,
+            "data": {
+                "type": type,
+                "name": name,
+                "url": url
+            }
+        };
+        
+        if (receivingItemQueue.length === RECEIVING_ITEM_QUEUE_LIMIT) {
+            receivingItemQueue = receivingItemQueue.slice(1, RECEIVING_ITEM_QUEUE_LIMIT);
+        }
+        
+        receivingItemQueue.push(packageRequest);
+        ui.messagesWaiting(receivingItemQueue.length > 0);
+    }
+
+    function sendReceivingItemQueue() {
+        sendToWeb("script-to-web-receiving-item-queue", receivingItemQueue);
+    }
+
+    function updateReceivingItemQueue(data) {
+        receivingItemQueue = data;
+        ui.messagesWaiting(receivingItemQueue.length > 0);
+    }
+
+    function sendNearbyUsers() {
+        var nearbyUsers = AvatarList.getAvatarsInRange(MyAvatar.position, NEARBY_USERS_SEARCH_RADIUS);
+        var nearbyUsersToSend = [];
+        
+        nearbyUsers.forEach(function(user) {
+            var objectToWrite;
+            var aviDetails = AvatarList.getAvatar(user);
+            var aviName = aviDetails.displayName;
+            var aviDistance = Vec3.distance(MyAvatar.position, aviDetails.position);
+            // Window.alert("aviName" + aviName + "user" + user + "MyAvatar.sessionUUID" + MyAvatar.sessionUUID);
+            if (user !== MyAvatar.sessionUUID 
+                || Controller.getValue(Controller.Hardware.Keyboard.Shift)) { // Don't add ourselves to the list!
+                objectToWrite = { "name": aviName, "distance": aviDistance, "uuid": user };
+                nearbyUsersToSend.push(objectToWrite);
+            }        
+        });
+
+        sendToWeb("script-to-web-nearby-users", nearbyUsersToSend);
+    }
+
+    function useItem(item) {
+        
+        //TODO: Add animation support for avatars...?
+        
+        // Convert the item.type before checking it...
+        item.type = item.type.toUpperCase();
+        
+        // Depending on the type, we decide how to load this item.
+        if (item.type === "SCRIPT") {
+            ScriptDiscoveryService.loadScript(item.url, true, false, false, true, false);
+        }
+        
+        if (item.type === "MODEL") {
+            Entities.addEntity({
+                type: "Model",
+                position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0, z: -1.5 })),
+                rotation: MyAvatar.orientation,
+                modelURL: item.url,
+                collisionless: true
+            });
+        }
+        
+        if (item.type === "AVATAR") {
+            MyAvatar.useFullAvatarURL(item.url);
+        }
+        
+        if (item.type === "PLACE") {
+            location.handleLookupString(item.url, true);
+        }
+        
+        if (item.type === "JSON") {
+            var jsonToLoad = item.url;
+            if (jsonToLoad) {
+                if (Clipboard.importEntities(jsonToLoad)) {
+                    Clipboard.pasteEntities(
+                        Vec3.sum(
+                            MyAvatar.position,
+                            Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0, z: -1.5 })
+                        )
+                    );
+                }
+            }
+        }
+        
+        if (item.type === "UNKNOWN") {
+            // We don't know how to handle this yet.
+            Window.alert("Unknown item type, unable to use.");
+        }
+    }
+
+    function shareItem(data) {
+        data.command = "share-item";
+        sendMessage(data);
+    }
+
+    function initializeInventoryApp() {
+        sendSettings();
+        sendInventory();
+        sendReceivingItemQueue();
+    }
+
+    function onOpened() {
+    }
+
+    function onClosed() {
+    }
+
+    function startup() {
+        
+        loadInventory();
+        loadSettings();
+        
+        Messages.messageReceived.connect(onMessageReceived);
+        Messages.subscribe(inventoryMessagesChannel);
+        
+        ui = new AppUi({
+            buttonName: "INVENTORY",
+            home: Script.resolvePath("index.html"),
+            graphicsDirectory: Script.resolvePath("./"), // Where your button icons are located
+            onOpened: onOpened,
+            onClosed: onClosed
+        });
+    }
+
+    startup();
+
+    Script.scriptEnding.connect(function () {
+        Messages.messageReceived.disconnect(onMessageReceived);
+        Messages.unsubscribe(inventoryMessagesChannel);
+    });
+
+}()); // END LOCAL_SCOPE
\ No newline at end of file
diff --git a/scripts/system/inventory/dist/js/app.a3555a80.js b/scripts/system/inventory/dist/js/app.a3555a80.js
new file mode 100644
index 0000000000..b902a5e4f5
--- /dev/null
+++ b/scripts/system/inventory/dist/js/app.a3555a80.js
@@ -0,0 +1,2 @@
+(function(e){function t(t){for(var r,s,l=t[0],n=t[1],d=t[2],u=0,m=[];u<l.length;u++)s=l[u],Object.prototype.hasOwnProperty.call(a,s)&&a[s]&&m.push(a[s][0]),a[s]=0;for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);c&&c(t);while(m.length)m.shift()();return o.push.apply(o,d||[]),i()}function i(){for(var e,t=0;t<o.length;t++){for(var i=o[t],r=!0,l=1;l<i.length;l++){var n=i[l];0!==a[n]&&(r=!1)}r&&(o.splice(t--,1),e=s(s.s=i[0]))}return e}var r={},a={app:0},o=[];function s(t){if(r[t])return r[t].exports;var i=r[t]={i:t,l:!1,exports:{}};return e[t].call(i.exports,i,i.exports,s),i.l=!0,i.exports}s.m=e,s.c=r,s.d=function(e,t,i){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},s.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,t){if(1&t&&(e=s(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(s.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)s.d(i,r,function(t){return e[t]}.bind(null,r));return i},s.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="";var l=window["webpackJsonp"]=window["webpackJsonp"]||[],n=l.push.bind(l);l.push=t,l=l.slice();for(var d=0;d<l.length;d++)t(l[d]);var c=n;o.push([0,"chunk-vendors"]),i()})({0:function(e,t,i){e.exports=i("56d7")},"034f":function(e,t,i){"use strict";var r=i("85ec"),a=i.n(r);a.a},"56d7":function(e,t,i){"use strict";i.r(t);i("e260"),i("e6cf"),i("cca6"),i("a79d");var r,a=i("2b0e"),o=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("v-app",[i("v-app-bar",{attrs:{app:""}},[i("v-app-bar-nav-icon",{on:{click:function(t){e.drawer=!0}}}),i("v-toolbar-title",[e._v("Inventory")]),i("v-spacer"),i("v-badge",{staticClass:"mx-5",attrs:{bordered:"",color:"primary",value:e.receivingItemQueueLength,content:e.receivingItemQueueLength,overlap:""}},[i("v-btn",{attrs:{small:"",color:"red",fab:""},on:{click:function(t){e.receivingItemsDialog.show=!0,e.sendAppMessage("web-to-script-request-receiving-item-queue","")}}},[i("v-icon",[e._v(" mdi-tray-full ")])],1)],1),i("v-menu",{attrs:{bottom:"",left:""},scopedSlots:e._u([{key:"activator",fn:function(t){var r=t.on;return[i("v-btn",e._g({attrs:{large:"",color:"primary"}},r),[i("h4",[e._v("Sort")])])]}}])},[i("v-list",{attrs:{color:"grey darken-3"}},[i("v-list-item",{on:{click:function(t){return e.sortTopInventory("az")}}},[i("v-list-item-title",[e._v("A-Z")]),i("v-list-item-action",[i("v-icon",{attrs:{large:""}},[e._v("mdi-sort-alphabetical-ascending")])],1)],1),i("v-list-item",{on:{click:function(t){return e.sortTopInventory("za")}}},[i("v-list-item-title",[e._v("Z-A")]),i("v-list-item-action",[i("v-icon",{attrs:{large:""}},[e._v("mdi-sort-alphabetical-descending")])],1)],1)],1)],1)],1),i("v-navigation-drawer",{attrs:{fixed:"",temporary:""},model:{value:e.drawer,callback:function(t){e.drawer=t},expression:"drawer"}},[i("v-list",{staticClass:"pt-5",attrs:{nav:""}},[i("v-list-item-group",[i("v-slider",{attrs:{"tick-labels":e.settings.displayDensity.labels,max:2,step:"1",ticks:"always","tick-size":"3"},model:{value:e.settings.displayDensity.size,callback:function(t){e.$set(e.settings.displayDensity,"size",t)},expression:"settings.displayDensity.size"}}),i("v-list-item",{on:{click:function(t){e.addDialogStore.show=!0,e.getFolderList("add")}}},[i("v-list-item-icon",[i("v-icon",[e._v("mdi-plus")])],1),i("v-list-item-title",[e._v("Add Item")])],1),i("v-list-item",{on:{click:function(t){e.createFolderDialogStore.show=!0}}},[i("v-list-item-icon",[i("v-icon",[e._v("mdi-folder-plus")])],1),i("v-list-item-title",[e._v("Create Folder")])],1),i("p",{staticClass:"app-version"},[e._v("Version "+e._s(e.appVersion))])],1)],1)],1),i("v-content",[i("v-container",{attrs:{fluid:""}},[i("v-col",{staticClass:"py-1 column-item",attrs:{cols:"12",sm:"6",md:"4",lg:"3"}},[i("itemiterator",{attrs:{itemsForIterator:this.$store.state.items}})],1)],1)],1),i("v-dialog",{attrs:{"max-width":"380"},model:{value:e.receivingItemsDialog.show,callback:function(t){e.$set(e.receivingItemsDialog,"show",t)},expression:"receivingItemsDialog.show"}},[i("v-card",[i("v-card-title",{staticClass:"headline"},[e._v("Item Inbox")]),i("v-card-text",{directives:[{name:"show",rawName:"v-show",value:e.receivingItemQueueLength>0,expression:"receivingItemQueueLength > 0"}]},[e._v(" A list of all items being received currently. ")]),i("v-card-text",{directives:[{name:"show",rawName:"v-show",value:0===e.receivingItemQueueLength,expression:"receivingItemQueueLength === 0"}]},[e._v(" There are currently no items in your inbox. ")]),i("v-card-actions",[i("v-list",{directives:[{name:"show",rawName:"v-show",value:e.receivingItemQueueLength>0,expression:"receivingItemQueueLength > 0"}],staticClass:"pt-5",attrs:{nav:"","max-width":"370"}},e._l(e.receivingItemsDialog.data.receivingItemQueue,(function(t){return i("v-list-item",{key:t.data.uuid,attrs:{"two-line":""}},[i("v-list-item-content",[i("v-list-item-title",[e._v(e._s(t.data.name))]),i("v-list-item-subtitle",[e._v("Sent by "+e._s(t.senderName))]),i("v-list-item-subtitle",[e._v("Distance: "+e._s(t.senderDistance.toFixed(1))+"m")])],1),i("v-btn",{attrs:{color:"success"},on:{click:function(i){return e.acceptReceivingItem(t)}}},[i("v-icon",[e._v("mdi-plus")])],1),i("v-btn",{attrs:{text:"",color:"red"},on:{click:function(i){return e.removeReceivingItem(t.data.uuid)}}},[i("v-icon",[e._v("mdi-minus")])],1)],1)})),1)],1)],1)],1),i("v-dialog",{attrs:{"max-width":"290"},model:{value:e.removeDialogStore.show,callback:function(t){e.$set(e.removeDialogStore,"show",t)},expression:"removeDialogStore.show"}},[i("v-card",[i("v-card-title",{staticClass:"headline"},[e._v("Remove Item")]),i("v-card-text",[e._v(" Are you sure you want to delete this item from your inventory? ")]),i("v-card-actions",[i("v-btn",{staticClass:"px-3",attrs:{color:"blue"},on:{click:function(t){e.removeDialogStore.show=!1}}},[e._v(" No ")]),i("v-spacer"),i("v-btn",{staticClass:"px-3",attrs:{color:"red"},on:{click:function(t){e.removeDialogStore.show=!1,e.removeItem(e.$store.state.removeDialog.uuid)}}},[e._v(" Yes ")])],1)],1)],1),i("v-dialog",{attrs:{"max-width":"290"},model:{value:e.removeFolderDialogStore.show,callback:function(t){e.$set(e.removeFolderDialogStore,"show",t)},expression:"removeFolderDialogStore.show"}},[i("v-card",[i("v-card-title",{staticClass:"headline"},[e._v("Remove Folder")]),i("v-card-text",[e._v(" Are you sure you want to delete this folder "),i("b",[e._v("and")]),e._v(" all items within from your inventory? ")]),i("v-card-actions",[i("v-btn",{staticClass:"px-3",attrs:{color:"blue"},on:{click:function(t){e.removeFolderDialogStore.show=!1}}},[e._v(" No ")]),i("v-spacer"),i("v-btn",{staticClass:"px-3",attrs:{color:"red"},on:{click:function(t){e.removeFolderDialogStore.show=!1,e.removeFolder(e.$store.state.removeFolderDialog.uuid)}}},[e._v(" Yes ")])],1)],1)],1),i("v-dialog",{attrs:{"max-width":"380"},model:{value:e.editDialogStore.show,callback:function(t){e.$set(e.editDialogStore,"show",t)},expression:"editDialogStore.show"}},[i("v-card",[i("v-card-title",{staticClass:"headline"},[e._v("Edit Item")]),i("v-form",{ref:"editForm",attrs:{"lazy-validation":!1},model:{value:e.editDialogStore.valid,callback:function(t){e.$set(e.editDialogStore,"valid",t)},expression:"editDialogStore.valid"}},[i("v-select",{staticClass:"my-2",attrs:{items:e.$store.state.supportedItemTypes,rules:[function(e){return!!e||"Type is required."}],label:"Item Type",outlined:""},model:{value:e.editDialogStore.data.type,callback:function(t){e.$set(e.editDialogStore.data,"type",t)},expression:"editDialogStore.data.type"}}),i("v-text-field",{staticClass:"px-2",attrs:{label:"Name",rules:[function(e){return!!e||"Name is required."}],required:""},model:{value:e.editDialogStore.data.name,callback:function(t){e.$set(e.editDialogStore.data,"name",t)},expression:"editDialogStore.data.name"}}),i("v-select",{staticClass:"my-2",attrs:{items:e.folderList,"item-text":"name","item-value":"uuid",label:"Folder",outlined:""},model:{value:e.editDialogStore.data.folder,callback:function(t){e.$set(e.editDialogStore.data,"folder",t)},expression:"editDialogStore.data.folder"}}),i("v-text-field",{staticClass:"px-2",attrs:{label:"URL",rules:[function(e){return!!e||"URL is required."}],required:""},model:{value:e.editDialogStore.data.url,callback:function(t){e.$set(e.editDialogStore.data,"url",t)},expression:"editDialogStore.data.url"}}),i("v-card-actions",[i("v-btn",{staticClass:"px-3",attrs:{color:"red"},on:{click:function(t){e.editDialogStore.show=!1}}},[e._v(" Cancel ")]),i("v-spacer"),i("v-btn",{staticClass:"px-3",attrs:{color:"blue",disabled:!e.$store.state.editDialog.valid},on:{click:function(t){e.editDialogStore.show=!1,e.editItem(e.$store.state.editDialog.uuid)}}},[e._v(" Done ")])],1)],1)],1)],1),i("v-dialog",{attrs:{"max-width":"380"},model:{value:e.editFolderDialogStore.show,callback:function(t){e.$set(e.editFolderDialogStore,"show",t)},expression:"editFolderDialogStore.show"}},[i("v-card",[i("v-card-title",{staticClass:"headline"},[e._v("Edit Folder")]),i("v-form",{ref:"editFolderForm",attrs:{"lazy-validation":!1},model:{value:e.editFolderDialogStore.valid,callback:function(t){e.$set(e.editFolderDialogStore,"valid",t)},expression:"editFolderDialogStore.valid"}},[i("v-text-field",{staticClass:"px-2",attrs:{label:"Name",rules:[function(e){return!!e||"Name is required."}],required:""},model:{value:e.editFolderDialogStore.data.name,callback:function(t){e.$set(e.editFolderDialogStore.data,"name",t)},expression:"editFolderDialogStore.data.name"}}),i("v-select",{staticClass:"my-2",attrs:{items:e.folderList,"item-text":"name","item-value":"uuid",label:"Parent Folder",outlined:""},model:{value:e.editFolderDialogStore.data.folder,callback:function(t){e.$set(e.editFolderDialogStore.data,"folder",t)},expression:"editFolderDialogStore.data.folder"}}),i("v-card-actions",[i("v-btn",{staticClass:"px-3",attrs:{color:"red"},on:{click:function(t){e.editFolderDialogStore.show=!1}}},[e._v(" Cancel ")]),i("v-spacer"),i("v-btn",{staticClass:"px-3",attrs:{color:"blue",disabled:!e.$store.state.editFolderDialog.valid},on:{click:function(t){e.editFolderDialogStore.show=!1,e.editFolder(e.$store.state.editFolderDialog.data.uuid)}}},[e._v(" Done ")])],1)],1)],1)],1),i("v-dialog",{attrs:{"max-width":"380"},model:{value:e.createFolderDialogStore.show,callback:function(t){e.$set(e.createFolderDialogStore,"show",t)},expression:"createFolderDialogStore.show"}},[i("v-card",[i("v-card-title",{staticClass:"headline"},[e._v("Create Folder")]),i("v-card-text",[e._v(" Enter the name of the folder. ")]),i("v-form",{ref:"createFolderForm",attrs:{"lazy-validation":!1},model:{value:e.createFolderDialogStore.valid,callback:function(t){e.$set(e.createFolderDialogStore,"valid",t)},expression:"createFolderDialogStore.valid"}},[i("v-text-field",{staticClass:"px-2",attrs:{label:"Name",rules:[function(e){return!!e||"Name is required."}],required:""},model:{value:e.createFolderDialogStore.data.name,callback:function(t){e.$set(e.createFolderDialogStore.data,"name",t)},expression:"createFolderDialogStore.data.name"}}),i("v-card-actions",[i("v-btn",{staticClass:"px-3",attrs:{color:"red"},on:{click:function(t){e.createFolderDialogStore.show=!1}}},[e._v(" Cancel ")]),i("v-spacer"),i("v-btn",{staticClass:"px-3",attrs:{color:"blue",disabled:!e.$store.state.createFolderDialog.valid},on:{click:function(t){e.createFolderDialogStore.show=!1,e.createFolder(e.$store.state.createFolderDialog.data.name)}}},[e._v(" Create ")])],1)],1)],1)],1),i("v-dialog",{attrs:{"max-width":"380"},model:{value:e.addDialogStore.show,callback:function(t){e.$set(e.addDialogStore,"show",t)},expression:"addDialogStore.show"}},[i("v-card",[i("v-card-title",{staticClass:"headline"},[e._v("Add Item")]),i("v-form",{ref:"addForm",attrs:{"lazy-validation":!1},model:{value:e.addDialogStore.valid,callback:function(t){e.$set(e.addDialogStore,"valid",t)},expression:"addDialogStore.valid"}},[i("v-card-text",[e._v(" Enter the name of the item. ")]),i("v-text-field",{staticClass:"px-2",attrs:{label:"Name",rules:[function(e){return!!e||"Name is required."}],required:""},model:{value:e.addDialogStore.data.name,callback:function(t){e.$set(e.addDialogStore.data,"name",t)},expression:"addDialogStore.data.name"}}),i("v-card-text",[e._v(" Select a folder (optional). ")]),i("v-select",{staticClass:"my-2",attrs:{items:e.folderList,label:"Folder",outlined:"","item-text":"name","item-value":"uuid"},model:{value:e.addDialogStore.data.folder,callback:function(t){e.$set(e.addDialogStore.data,"folder",t)},expression:"addDialogStore.data.folder"}}),i("v-card-text",[e._v(" Enter the URL of the item. ")]),i("v-text-field",{staticClass:"px-2",attrs:{label:"URL",rules:[function(e){return!!e||"URL is required."}],required:""},model:{value:e.addDialogStore.data.url,callback:function(t){e.$set(e.addDialogStore.data,"url",t)},expression:"addDialogStore.data.url"}}),i("v-card-actions",[i("v-btn",{staticClass:"px-3",attrs:{color:"red"},on:{click:function(t){e.addDialogStore.show=!1}}},[e._v(" Cancel ")]),i("v-spacer"),i("v-btn",{staticClass:"px-3",attrs:{color:"blue",disabled:!e.$store.state.addDialog.valid},on:{click:function(t){e.addDialogStore.show=!1,e.addItem(e.$store.state.addDialog.data.name,e.$store.state.addDialog.data.folder,e.$store.state.addDialog.data.url)}}},[e._v(" Add ")])],1)],1)],1)],1),i("v-dialog",{attrs:{"max-width":"380",persistent:""},model:{value:e.receiveDialogStore.show,callback:function(t){e.$set(e.receiveDialogStore,"show",t)},expression:"receiveDialogStore.show"}},[i("v-card",[i("v-card-title",{staticClass:"headline"},[e._v("Receiving Item")]),i("v-card-text",[i("b",[e._v(e._s(e.$store.state.receiveDialog.data.userDisplayName)+" sent you an item.")]),e._v(" "),i("br"),i("i",{staticClass:"caption"},[e._v("User UUID: "+e._s(e.$store.state.receiveDialog.data.userUUID))])]),i("v-form",{ref:"receiveForm",attrs:{"lazy-validation":!1},model:{value:e.receiveDialogStore.valid,callback:function(t){e.$set(e.receiveDialogStore,"valid",t)},expression:"receiveDialogStore.valid"}},[i("v-text-field",{staticClass:"px-2",attrs:{label:"Type",rules:[function(e){return!!e||"Type is required."}],required:""},model:{value:e.receiveDialogStore.data.type,callback:function(t){e.$set(e.receiveDialogStore.data,"type",t)},expression:"receiveDialogStore.data.type"}}),i("v-text-field",{staticClass:"px-2",attrs:{label:"Name",rules:[function(e){return!!e||"Name is required."}],required:""},model:{value:e.receiveDialogStore.data.name,callback:function(t){e.$set(e.receiveDialogStore.data,"name",t)},expression:"receiveDialogStore.data.name"}}),i("v-card-text",[e._v(" Select a folder (optional). ")]),i("v-select",{staticClass:"my-2",attrs:{items:e.folderList,label:"Folder",outlined:"","item-text":"name","item-value":"uuid"},model:{value:e.receiveDialogStore.data.folder,callback:function(t){e.$set(e.receiveDialogStore.data,"folder",t)},expression:"receiveDialogStore.data.folder"}}),i("v-text-field",{staticClass:"px-2",attrs:{label:"URL",rules:[function(e){return!!e||"URL is required."}],required:""},model:{value:e.receiveDialogStore.data.url,callback:function(t){e.$set(e.receiveDialogStore.data,"url",t)},expression:"receiveDialogStore.data.url"}}),i("v-card-actions",[i("v-btn",{staticClass:"px-3",attrs:{color:"red"},on:{click:function(t){e.receiveDialogStore.show=!1}}},[e._v(" Reject ")]),i("v-spacer"),i("v-btn",{staticClass:"px-3",attrs:{color:"blue",disabled:!e.$store.state.receiveDialog.valid},on:{click:function(t){e.receiveDialogStore.show=!1,e.confirmItemReceipt()}}},[e._v(" Accept ")])],1)],1)],1)],1),i("v-dialog",{attrs:{"max-width":"380",persistent:""},model:{value:e.shareDialogStore.show,callback:function(t){e.$set(e.shareDialogStore,"show",t)},expression:"shareDialogStore.show"}},[i("v-card",[i("v-card-title",{staticClass:"headline"},[e._v("Share Item")]),i("v-card-text",[e._v(" Select a user to send this item to. ")]),i("v-form",{ref:"shareForm",staticClass:"px-2",attrs:{"lazy-validation":!1},model:{value:e.shareDialogStore.valid,callback:function(t){e.$set(e.shareDialogStore,"valid",t)},expression:"shareDialogStore.valid"}},[i("v-select",{attrs:{items:e.nearbyUsers,"item-value":"uuid",rules:[function(e){return!!e||"A recipient is required"}],label:"Nearby Users",required:""},scopedSlots:e._u([{key:"item",fn:function(t){return[i("i",{staticStyle:{color:"grey","margin-right":"5px"}},[e._v(e._s(t.item.distance.toFixed(1))+"m")]),e._v(" "+e._s(t.item.name)+" ")]}},{key:"selection",fn:function(t){return[i("i",{staticStyle:{color:"grey","margin-right":"5px"}},[e._v(e._s(t.item.distance.toFixed(1))+"m")]),e._v(" "+e._s(t.item.name)+" ")]}}]),model:{value:e.shareDialogStore.data.recipient,callback:function(t){e.$set(e.shareDialogStore.data,"recipient",t)},expression:"shareDialogStore.data.recipient"}}),i("v-text-field",{staticClass:"px-2",attrs:{label:"URL",rules:[function(e){return!!e||"URL is required."}],required:""},model:{value:e.shareDialogStore.data.url,callback:function(t){e.$set(e.shareDialogStore.data,"url",t)},expression:"shareDialogStore.data.url"}}),i("v-card-actions",[i("v-btn",{staticClass:"px-3",attrs:{color:"red"},on:{click:function(t){e.shareDialogStore.show=!1}}},[e._v(" Cancel ")]),i("v-spacer"),i("v-btn",{staticClass:"px-3",attrs:{color:"blue",disabled:!e.$store.state.shareDialog.valid},on:{click:function(t){e.shareDialogStore.show=!1,e.shareItem(e.$store.state.shareDialog.data.uuid)}}},[e._v(" Send ")])],1)],1)],1)],1)],1)},s=[],l=(i("99af"),i("4160"),i("a15b"),i("a434"),i("b0c0"),i("d3b7"),i("ac1f"),i("3ca3"),i("466d"),i("159b"),i("ddb0"),i("2b3d"),new a["a"]),n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("draggable",{attrs:{group:e.options,list:e.itemsForIterator,handle:".handle"}},e._l(e.itemsForIterator,(function(t){return i("v-item-group",{key:t.uuid},[t.items?i("v-list-group",{staticClass:"top-level-folder",scopedSlots:e._u([{key:"activator",fn:function(){return[i("v-list-item",{staticClass:"mx-auto",attrs:{"one-line":"","max-width":"344",outlined:""}},[i("v-icon",{staticClass:"folder-icon",attrs:{color:"teal"}},[e._v("mdi-folder-settings")]),e._v(" "+e._s(t.name)+" ")],1)]},proxy:!0}],null,!0)},[i("div",{staticClass:"text-center my-2"},[i("v-btn",{staticClass:"mx-1 folder-button",attrs:{medium:"",tile:"",color:"purple"},on:{click:function(i){e.editFolderDialogStore.data.uuid=t.uuid,e.editFolderDialogStore.data.name=t.name,e.editFolderDialogStore.show=!0}}},[i("v-icon",[e._v("mdi-pencil")])],1),i("v-btn",{staticClass:"mx-1 folder-button",attrs:{medium:"",tile:"",color:"red"},on:{click:function(i){e.removeFolderDialogStore.show=!0,e.removeFolderDialogStore.uuid=t.uuid}}},[i("v-icon",[e._v("mdi-minus")])],1),i("v-menu",{attrs:{bottom:"",left:""},scopedSlots:e._u([{key:"activator",fn:function(t){var r=t.on;return[i("v-btn",e._g({staticClass:"mx-1 folder-button",attrs:{medium:"",tile:"",color:"blue"}},r),[i("v-icon",[e._v("mdi-sort")])],1)]}}],null,!0)},[i("v-list",{attrs:{color:"grey darken-3"}},[i("v-list-item",{on:{click:function(i){return e.sortFolder(t.uuid,"az")}}},[i("v-list-item-title",[e._v("A-Z")]),i("v-list-item-action",[i("v-icon",{attrs:{large:""}},[e._v("mdi-sort-alphabetical-ascending")])],1)],1),i("v-list-item",{on:{click:function(i){return e.sortFolder(t.uuid,"za")}}},[i("v-list-item-title",[e._v("Z-A")]),i("v-list-item-action",[i("v-icon",{attrs:{large:""}},[e._v("mdi-sort-alphabetical-descending")])],1)],1)],1)],1)],1),i("v-container",{attrs:{fluid:""}},[i("itemiterator",{key:t.uuid,attrs:{itemsForIterator:t.items}})],1)],1):i("v-list-item",{staticClass:"mx-auto draggable-card",attrs:{"one-line":"","max-width":"344",outlined:""}},[i("div",{staticClass:"handle pa-2"},[i("v-icon",{attrs:{color:"orange darken-2"}},[e._v("mdi-square-medium-outline")])],1),i("v-list-item-content",{staticClass:"pb-1 pt-2 pl-4"},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.settings.displayDensity.size>0,expression:"settings.displayDensity.size > 0"}],staticClass:"overline",staticStyle:{"font-size":"0.825rem !important"}},[e._v(e._s(t.type))]),i("v-list-item-title",{staticClass:"subtitle-1 mb-1"},[e._v(e._s(t.name))]),i("v-list-item-subtitle",{directives:[{name:"show",rawName:"v-show",value:2==e.settings.displayDensity.size,expression:"settings.displayDensity.size == 2"}]},[e._v(e._s(t.url))])],1),i("v-menu",{attrs:{bottom:"",left:""},scopedSlots:e._u([{key:"activator",fn:function(r){var a=r.on;return[i("v-btn",e._g({directives:[{name:"show",rawName:"v-show",value:e.settings.displayDensity.size>=1,expression:"settings.displayDensity.size >= 1"}],style:{backgroundColor:e.getIconColor(t.type)},attrs:{medium:"",fab:"",dark:""}},a),[i("v-icon",[e._v(e._s(e.getIcon(t.type)))])],1),i("v-btn",e._g({directives:[{name:"show",rawName:"v-show",value:e.settings.displayDensity.size<1,expression:"settings.displayDensity.size < 1"}],style:{backgroundColor:e.getIconColor(t.type)},attrs:{small:"",fab:"",dark:""}},a),[i("v-icon",[e._v(e._s(e.getIcon(t.type)))])],1)]}}],null,!0)},[i("v-list",{attrs:{color:"grey darken-3"}},[i("v-list-item",{on:{click:function(i){return e.sendEvent("use-item",{type:t.type,url:t.url})}}},[i("v-list-item-title",[e._v("Use")]),i("v-list-item-action",[i("v-icon",[e._v("mdi-play")])],1)],1),i("v-list-item",{on:{click:function(i){e.editDialogStore.show=!0,e.editDialogStore.uuid=t.uuid,e.editDialogStore.data.type=t.type.toUpperCase(),e.editDialogStore.data.folder=null,e.editDialogStore.data.name=t.name,e.editDialogStore.data.url=t.url}}},[i("v-list-item-title",[e._v("Edit")]),i("v-list-item-action",[i("v-icon",[e._v("mdi-pencil")])],1)],1),i("v-list-item",{on:{click:function(i){e.shareDialogStore.show=!0,e.shareDialogStore.data.url=t.url,e.shareDialogStore.data.uuid=t.uuid}}},[i("v-list-item-title",[e._v("Share")]),i("v-list-item-action",[i("v-icon",[e._v("mdi-share")])],1)],1),i("v-list-item",{attrs:{color:"red darken-1"},on:{click:function(i){e.removeDialogStore.show=!0,e.removeDialogStore.uuid=t.uuid}}},[i("v-list-item-title",[e._v("Remove")]),i("v-list-item-action",[i("v-icon",[e._v("mdi-minus")])],1)],1)],1)],1)],1)],1)})),1)},d=[],c=(i("4e827"),i("310e")),u=i.n(c),m={name:"itemiterator",components:{draggable:u.a},props:["itemsForIterator"],data:function(){return{settings:{}}},created:function(){this.settings=this.$store.state.settings},computed:{options:function(){return{name:"column-item",pull:!0,put:!0}},settingsChanged:function(){return this.$store.state.settings},addDialogStore:{get:function(){return this.$store.state.addDialog},set:function(e){this.$store.commit("mutate",{property:"addDialog",with:e})}},editDialogStore:{get:function(){return this.$store.state.editDialog},set:function(e){this.$store.commit("mutate",{property:"editDialog",with:e})}},editFolderDialogStore:{get:function(){return this.$store.state.editFolderDialog},set:function(e){this.$store.commit("mutate",{property:"editFolderDialog",with:e})}},shareDialogStore:{get:function(){return this.$store.state.shareDialog},set:function(e){this.$store.commit("mutate",{property:"shareDialog",with:e})}},removeFolderDialogStore:{get:function(){return this.$store.state.removeFolderDialog},set:function(e){this.$store.commit("mutate",{property:"removeFolderDialog",with:e})}},removeDialogStore:{get:function(){return this.$store.state.removeDialog},set:function(e){this.$store.commit("mutate",{property:"removeDialog",with:e})}}},watch:{settingsChanged:function(e,t){console.info("Settings previous value:",t),e&&(this.settings=e)}},methods:{sendEvent:function(e,t){l.$emit(e,t)},getIcon:function(e){var t;return e=e.toUpperCase(),t=this.$store.state.iconType[e]?this.$store.state.iconType[e].icon:this.$store.state.iconType.UNKNOWN.icon,t},getIconColor:function(e){var t;return e=e.toUpperCase(),t=this.$store.state.iconType[e]?this.$store.state.iconType[e].color:this.$store.state.iconType.UNKNOWN.color,t},sortFolder:function(e,t){var i=this.searchForItem(e);i&&("az"===t&&i.returnedItem.items.sort((function(e,t){var i=e.name.toUpperCase(),r=t.name.toUpperCase();return i<r?-1:i>r?1:0})),"za"===t&&i.returnedItem.items.sort((function(e,t){var i=e.name.toUpperCase(),r=t.name.toUpperCase();return i>r?-1:i<r?1:0})))},searchForItem:function(e){var t=this.recursiveSingularSearch(e,this.itemsForIterator);if(t)return{returnedItem:t.returnedItem,iteration:t.iteration,parentArray:t.parentArray,itemUUID:e}},recursiveSingularSearch:function(e,t){for(var i=0;i<t.length;i++){if(t[i].uuid==e){var r={returnedItem:t[i],iteration:i,parentArray:t};return r}if(Object.prototype.hasOwnProperty.call(t[i],"items")&&t[i].items.length>0)return this.recursiveSingularSearch(e,t[i].items)}}}},v=m,g=i("2877"),p=i("6544"),h=i.n(p),f=i("8336"),D=i("a523"),S=i("132d"),y=i("604c"),b=i("8860"),G=i("56b0"),I=i("da13"),F=i("1800"),w=i("5d23"),x=i("e449"),$=Object(g["a"])(v,n,d,!1,null,null,null),_=$.exports;function k(){return"undefined"===typeof EventBridge}h()($,{VBtn:f["a"],VContainer:D["a"],VIcon:S["a"],VItemGroup:y["b"],VList:b["a"],VListGroup:G["a"],VListItem:I["a"],VListItemAction:F["a"],VListItemContent:w["a"],VListItemSubtitle:w["b"],VListItemTitle:w["c"],VMenu:x["a"]}),k()||EventBridge.scriptEventReceived.connect((function(e){if(e=JSON.parse(e),"inventory"===e.app)switch(e.command){case"script-to-web-inventory":r.receiveInventory(e.data);break;case"script-to-web-receiving-item-queue":r.receiveReceivingItemQueue(e.data);break;case"script-to-web-nearby-users":r.receiveNearbyUsers(e.data);break;case"script-to-web-settings":r.receiveSettings(e.data);break}})),l.$on("use-item",(function(e){r.useItem(e.type,e.url)}));var C={name:"App",components:{itemiterator:_},data:function(){return{receivingItemsDialog:{show:!1,data:{receivingItemQueue:[{senderUUID:"SENDERUUIDLOL",senderName:"WHOISTHIS1",senderDistance:2.5,data:{type:"script",name:"This Is A Real Script",url:"https://butwhythough.com/lol.js",uuid:"This Is A Real Script"}},{senderUUID:"TEST2SENDERUUID",senderName:"WHOTHISBE2",senderDistance:1.22,data:{type:"script",name:"REALLYLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",url:"https://butwhythough.com/looool.js",uuid:"REALLYLONNGGGGGGGG"}}]}},folderList:[],recursiveFolderHoldingList:[],nearbyUsers:[{name:"Who",uuid:"{4131531653652562}",distance:5},{name:"Is",uuid:"{4131531653756756576543652562}",distance:3.23},{name:"This?",uuid:"{4131531676575653652562}",distance:1}],sortBy:"alphabetical",settings:{displayDensity:{size:1,labels:["List","Compact","Large"]}},appVersion:"2.0.2",darkTheme:!0,drawer:!1,disabledProp:!0}},created:function(){r=this,this.$vuetify.theme.dark=this.darkTheme,this.sendAppMessage("ready","")},methods:{createUUID:function(){for(var e=[],t="0123456789abcdef",i=0;i<36;i++)e[i]=t.substr(Math.floor(16*Math.random()),1);e[14]="4",e[19]=t.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-";var r=e.join("");return r},pushToItems:function(e,t,i,r,a){var o;o=null!=a?a:this.createUUID(),this.$store.commit("pushToItems",{type:e,name:t,folder:i,url:r,uuid:o}),null!==i&&"No Folder"!==i&&this.moveItem(o,i)},checkFileType:function(e){var t=null;switch(e){case".fbx":t="MODEL";break;case".gltf":t="MODEL";break;case".glb":t="MODEL";break;case".js":t="SCRIPT";break;case".fst":t="AVATAR";break;case".json":t="JSON";break;default:t="UNKNOWN"}return t},checkItemType:function(e){var t=null;return e=e.toUpperCase(),this.$store.state.supportedItemTypes.forEach((function(i){i===e&&(t=i)})),null===t&&(t="UNKNOWN"),t},createFolder:function(e){this.$store.commit("pushToItems",{name:e,folder:"No Folder",items:[],uuid:this.createUUID()}),this.createFolderDialogStore.data.name=null},editFolder:function(e){var t=this.searchForItem(e);t&&(t.returnedItem.name=this.$store.state.editFolderDialog.data.name,null!==this.$store.state.editFolderDialog.data.folder&&"No Change"!==this.$store.state.editFolderDialog.data.folder&&(t.returnedItem.folder!==this.$store.state.editFolderDialog.data.folder&&"No Folder"!==this.$store.state.editFolderDialog.data.folder?this.moveFolder(e,this.$store.state.editFolderDialog.data.folder):"No Folder"===this.$store.state.editFolderDialog.data.folder&&this.moveFolder(e,"top")))},addItem:function(e,t,i){var r,a=this.detectFileType(i);r=null==a||null==a[0]?"unknown":this.checkFileType(a[0]),this.pushToItems(r,e,t,i,null),this.addDialogStore.data.name=null,this.addDialogStore.data.folder=null,this.addDialogStore.data.url=null},detectFileType:function(e){var t=/\.[0-9a-z]+$/i,i=e.match(t);if(null==i||null==i[0]){var r=/\.[0-9a-z]+$/i,a=new URL(e);i=a.pathname.match(r)}else null!=i&&null!=i[0]||(i=null);return i},removeItem:function(e){var t=this.searchForItem(e);t.parentArray.splice(t.iteration,1)},removeFolder:function(e){var t=this.searchForItem(e);t.parentArray.splice(t.iteration,1)},editItem:function(e){var t,i=this.searchForItem(e);i.returnedItem.type=this.checkItemType(this.$store.state.editDialog.data.type),i.returnedItem.name=this.$store.state.editDialog.data.name,i.returnedItem.folder=this.$store.state.editDialog.data.folder,i.returnedItem.url=this.$store.state.editDialog.data.url;for(var r=0;r<this.folderList.length;r++)this.folderList[r].name===i.returnedItem.folder&&(t=this.folderList[r].name);null!==this.$store.state.editDialog.data.folder&&(t!==this.$store.state.editDialog.data.folder&&"No Folder"!==this.$store.state.editDialog.data.folder?this.moveItem(e,this.$store.state.editDialog.data.folder):"No Folder"===t&&this.moveItem(e,"top"))},acceptReceivingItem:function(e){this.removeReceivingItem(e.data.uuid),this.receiveDialogStore.data.userUUID=e.senderUUID,this.receiveDialogStore.data.userDisplayName=e.senderName,this.receiveDialogStore.data.type=e.data.type,this.receiveDialogStore.data.name=e.data.name,this.receiveDialogStore.data.url=e.data.url,this.getFolderList("add"),this.receiveDialogStore.show=!0},removeReceivingItem:function(e){for(var t=0;t<this.receivingItemsDialog.data.receivingItemQueue.length;t++)this.receivingItemsDialog.data.receivingItemQueue[t].data.uuid===e&&(this.receivingItemsDialog.data.receivingItemQueue.splice(t,1),this.sendAppMessage("web-to-script-update-receiving-item-queue",this.receivingItemQueue),0===this.receivingItemsDialog.data.receivingItemQueue.length&&(this.receivingItemsDialog.show=!1))},receiveReceivingItemQueue:function(e){this.receivingItemsDialog.data.receivingItemQueue=e},shareItem:function(e){var t=this.searchForItem(e),i=t.returnedItem.type,r=t.returnedItem.name;this.sendAppMessage("share-item",{type:i,name:r,url:this.$store.state.shareDialog.data.url,recipient:this.$store.state.shareDialog.data.recipient})},confirmItemReceipt:function(){this.pushToItems(this.checkItemType(this.$store.state.receiveDialog.data.type),this.$store.state.receiveDialog.data.name,this.$store.state.receiveDialog.data.folder,this.$store.state.receiveDialog.data.url,null)},useItem:function(e,t){this.sendAppMessage("use-item",{type:e,url:t})},onDragStart:function(){console.info("Drag start.")},onDragUpdate:function(){console.info("Drag Update.")},onDragEnd:function(){console.info("Drag End.")},onDragChange:function(e){console.info("Drag Update.",e)},sortTopInventory:function(e){this.$store.commit("sortTopInventory",{sort:e})},getFolderList:function(e){var t;if(this.recursiveFolderHoldingList=[],"edit"===e?(this.folderList=[{name:"No Change",uuid:"No Change"},{name:"No Folder",uuid:"No Folder"}],t=this.recursiveFolderPopulate(this.itemsStore,null)):"add"===e?(this.folderList=[{name:"No Folder",uuid:"No Folder"}],t=this.recursiveFolderPopulate(this.itemsStore,null)):"editFolder"===e&&(this.folderList=[{name:"No Change",uuid:"No Change"},{name:"No Folder",uuid:"No Folder"}],t=this.recursiveFolderPopulate(this.itemsStore,this.$store.state.editFolderDialog.data.uuid)),t){var i=this.folderList.concat(t);this.folderList=i}},moveItem:function(e,t){var i,r=this.searchForItem(e);"top"!==t&&(i=this.searchForItem(t)),this.removeItem(e),this.$store.commit("moveItem",{uuid:e,parentFolderUUID:t,findItem:r,findParentFolder:i})},moveFolder:function(e,t){var i,r=this.searchForItem(e);"top"!==t&&(i=this.searchForItem(t)),this.removeFolder(e),this.$store.commit("moveFolder",{uuid:e,parentFolderUUID:t,findFolder:r,findParentFolder:i})},searchForItem:function(e){var t=this.recursiveSingularSearch(e,this.itemsStore);if(t)return{returnedItem:t.returnedItem,iteration:t.iteration,parentArray:t.parentArray,itemUUID:e}},recursiveSingularSearch:function(e,t){for(var i=0;i<t.length;i++){if(t[i].uuid===e){var r={returnedItem:t[i],iteration:i,parentArray:t};return r}if(Object.prototype.hasOwnProperty.call(t[i],"items")&&t[i].items.length>0){var a=this.recursiveSingularSearch(e,t[i].items);if(null!==a)return a}}return null},recursiveFolderPopulate:function(e,t){for(var i=0;i<e.length;i++)Object.prototype.hasOwnProperty.call(e[i],"items")&&t!==e[i].uuid&&(this.recursiveFolderHoldingList.push({name:e[i].name,uuid:e[i].uuid}),this.recursiveFolderPopulate(e[i].items,t));return this.recursiveFolderHoldingList},sendInventory:function(){this.sendAppMessage("web-to-script-inventory",this.itemsStore)},receiveInventory:function(e){this.itemsStore=e||[]},sendSettings:function(){this.sendAppMessage("web-to-script-settings",this.$store.state.settings)},receiveSettings:function(e){e&&(this.settings=e)},receiveNearbyUsers:function(e){this.nearbyUsers=e||[]},sendAppMessage:function(e,t){var i={app:"inventory",command:e,data:t};k()||EventBridge.emitWebEvent(JSON.stringify(i))}},computed:{itemsStore:{get:function(){return this.$store.state.items},set:function(e){this.$store.commit("mutate",{property:"items",with:e})}},addDialogStore:{get:function(){return this.$store.state.addDialog},set:function(e){this.$store.commit("mutate",{property:"addDialog",with:e})}},editDialogStore:{get:function(){return this.$store.state.editDialog},set:function(e){this.$store.commit("mutate",{property:"editDialog",with:e})}},editDialogShow:function(){return this.$store.state.editDialog.show},editFolderDialogStore:{get:function(){return this.$store.state.editFolderDialog},set:function(e){this.$store.commit("mutate",{property:"editFolderDialog",with:e})}},editFolderDialogShow:function(){return this.$store.state.editFolderDialog.show},createFolderDialogStore:{get:function(){return this.$store.state.createFolderDialog},set:function(e){this.$store.commit("mutate",{property:"createFolderDialog",with:e})}},receiveDialogStore:{get:function(){return this.$store.state.receiveDialog},set:function(e){this.$store.commit("mutate",{property:"receiveDialog",with:e})}},shareDialogShow:function(){return this.$store.state.shareDialog.show},shareDialogStore:{get:function(){return this.$store.state.shareDialog},set:function(e){this.$store.commit("mutate",{property:"shareDialog",with:e})}},removeFolderDialogStore:{get:function(){return this.$store.state.removeFolderDialog},set:function(e){this.$store.commit("mutate",{property:"removeFolderDialog",with:e})}},removeDialogStore:{get:function(){return this.$store.state.removeDialog},set:function(e){this.$store.commit("mutate",{property:"removeDialog",with:e})}},receivingItemQueue:{get:function(){return this.receivingItemsDialog.data.receivingItemQueue}},receivingItemQueueLength:{get:function(){return this.receivingItemsDialog.data.receivingItemQueue.length}}},watch:{itemsStore:{deep:!0,handler:function(){this.sendInventory()}},settings:{deep:!0,handler:function(e){this.$store.commit("mutate",{property:"settings",with:e}),this.sendSettings()}},editDialogShow:{handler:function(e){!0===e&&this.getFolderList("edit")}},editFolderDialogShow:{handler:function(e){!0===e&&this.getFolderList("editFolder")}},shareDialogShow:{handler:function(e){!0===e&&this.sendAppMessage("web-to-script-request-nearby-users","")}},receivingItemQueue:{handler:function(){}}}},N=C,L=(i("034f"),i("7496")),U=i("40dc"),T=i("5bc1"),A=i("4ca6"),V=i("b0af"),O=i("99d9"),R=i("62ad"),E=i("a75b"),j=i("169a"),z=i("4bd4"),P=i("1baa"),q=i("34c3"),M=i("f774"),Q=i("b974"),B=i("ba0d"),W=i("2fa4"),H=i("8654"),J=i("2a7f"),K=Object(g["a"])(N,o,s,!1,null,null,null),Y=K.exports;h()(K,{VApp:L["a"],VAppBar:U["a"],VAppBarNavIcon:T["a"],VBadge:A["a"],VBtn:f["a"],VCard:V["a"],VCardActions:O["a"],VCardText:O["b"],VCardTitle:O["c"],VCol:R["a"],VContainer:D["a"],VContent:E["a"],VDialog:j["a"],VForm:z["a"],VIcon:S["a"],VList:b["a"],VListItem:I["a"],VListItemAction:F["a"],VListItemContent:w["a"],VListItemGroup:P["a"],VListItemIcon:q["a"],VListItemSubtitle:w["b"],VListItemTitle:w["c"],VMenu:x["a"],VNavigationDrawer:M["a"],VSelect:Q["a"],VSlider:B["a"],VSpacer:W["a"],VTextField:H["a"],VToolbarTitle:J["a"]});var Z=i("f309");a["a"].use(Z["a"]);var X=new Z["a"]({}),ee=i("2f62");a["a"].use(ee["a"]);var te=new ee["a"].Store({devtools:!0,state:{items:[{type:"script",name:"VRGrabScale",url:"https://gooawefaweawfgle.com/vr.js",folder:"No Folder",uuid:"54254354353"},{name:"Test Folder",folder:"No Folder",items:[{name:"inception1",folder:"Test Folder",items:[{name:"inception2",folder:"Test Folder",items:[{type:"script",name:"itemincepted",url:"https://googfdafsgaergale.com/vr.js",folder:"FolderWithinAFolder",uuid:"hkjkjhkjk"}],uuid:"adsfa32"}],uuid:"s4g4sg"}],uuid:"sdfsdf"},{type:"script",name:"VRGrabScale",url:"https://googfdafsgaergale.com/vr.js",folder:"No Folder",uuid:"54hgfhgf254354353"},{type:"script",name:"TEST",url:"https://gooadfdagle.com/vr.js",folder:"No Folder",uuid:"542rfwat4t5fsddf4354353"},{type:"json",name:"TESTJSON",url:"https://gooadfdagle.com/vr.json",folder:"No Folder",uuid:"542rfwat4t54354353"},{type:"script",name:"TESTLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",url:"https://googfdaffle.com/vrLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG.js",folder:"No Folder",uuid:"5425ggsrg45354353"},{type:"whatttype",name:"BrokenIcon",url:"https://googfdaffle.com/vrLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG.js",folder:"No Folder",uuid:"5425ggsrg4fdaffdff535asdasd4353"},{type:"avatar",name:"AVI",url:"https://googlfadfe.com/vr.fst",folder:"No Folder",uuid:"542gregg45s3g4354353"},{type:"avatar",name:"AVI",url:"https://googlefdaf.com/vr.fst",folder:"No Folder",uuid:"5420798-087-54354353"},{type:"model",name:"3D MODEL",url:"https://googlee.com/vr.fbx",folder:"No Folder",uuid:"54254354980-7667jt353"},{type:"place",name:"PLACE DOMAIN",url:"https://googleee.com/vr.fbx",folder:"No Folder",uuid:"542543sg45s4gg54353"}],settings:{displayDensity:{size:1,labels:["List","Compact","Large"]}},iconType:{SCRIPT:{icon:"mdi-code-tags",color:"red"},MODEL:{icon:"mdi-video-3d",color:"green"},AVATAR:{icon:"mdi-account-convert",color:"purple"},PLACE:{icon:"mdi-earth",color:"#0097A7"},JSON:{icon:"mdi-inbox-multiple",color:"#37474F"},UNKNOWN:{icon:"mdi-help",color:"grey"}},supportedItemTypes:["SCRIPT","MODEL","AVATAR","PLACE","JSON","UNKNOWN"],removeDialog:{show:!1,uuid:null},removeFolderDialog:{show:!1,uuid:null},createFolderDialog:{show:!1,valid:!1,data:{name:null}},addDialog:{show:!1,valid:!1,data:{name:null,folder:null,url:null}},editDialog:{show:!1,valid:!1,uuid:null,data:{type:null,name:null,url:null,folder:null}},editFolderDialog:{show:!1,valid:!1,uuid:null,data:{name:null,folder:null}},receiveDialog:{show:!1,valid:!1,data:{userUUID:null,userDisplayName:null,name:null,folder:null,type:null,url:null}},shareDialog:{show:!1,valid:!1,data:{uuid:null,url:null,recipient:null}}},mutations:{mutate:function(e,t){e[t.property]=t.with},sortTopInventory:function(e,t){var i=e.items;"az"===t.sort&&e.items.sort((function(e,t){var i=e.name.toUpperCase(),r=t.name.toUpperCase();return i<r?-1:i>r?1:0})),"za"===t.sort&&e.items.sort((function(e,t){var i=e.name.toUpperCase(),r=t.name.toUpperCase();return i>r?-1:i<r?1:0})),a["a"].set(e,"items",i)},pushToItems:function(e,t){var i=e.items;i.push(t),a["a"].set(e,"items",i)},moveFolder:function(e,t){var i=e.items;"top"===t.parentFolderUUID?(t.findFolder.returnedItem.folder="No Folder",i.push(t.findFolder.returnedItem),a["a"].set(e,"items",i)):t.findParentFolder&&(t.findFolder.returnedItem.folder=t.findParentFolder.name,t.findParentFolder.returnedItem.items.push(t.findFolder.returnedItem),a["a"].set(e,"items",i))},moveItem:function(e,t){var i=e.items;"top"===t.parentFolderUUID?(t.findItem.returnedItem.folder="No Folder",i.push(t.findItem.returnedItem),a["a"].set(e,"items",i)):t.findParentFolder&&(t.findItem.returnedItem.folder=t.findParentFolder.name,t.findParentFolder.returnedItem.items.push(t.findItem.returnedItem),a["a"].set(e,"items",i))}}});a["a"].config.productionTip=!1,window.vm=new a["a"]({vuetify:X,store:te,render:function(e){return e(Y)}}).$mount("#app")},"85ec":function(e,t,i){}});
+//# sourceMappingURL=app.a3555a80.js.map
\ No newline at end of file
diff --git a/scripts/system/inventory/dist/js/app.a3555a80.js.map b/scripts/system/inventory/dist/js/app.a3555a80.js.map
new file mode 100644
index 0000000000..066dbe900e
--- /dev/null
+++ b/scripts/system/inventory/dist/js/app.a3555a80.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?0f16","webpack:///src/App.vue","webpack:///./src/App.vue?d508","webpack:///./src/plugins/event-bus.js","webpack:///./src/components/ItemIterator.vue?b950","webpack:///src/components/ItemIterator.vue","webpack:///./src/components/ItemIterator.vue?c638","webpack:///./src/components/ItemIterator.vue","webpack:///./src/App.vue?3359","webpack:///./src/App.vue","webpack:///./src/plugins/vuetify.js","webpack:///./src/plugins/store.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","vue_this","_vm","this","_h","$createElement","_c","_self","attrs","on","$event","drawer","_v","staticClass","receivingItemQueueLength","receivingItemsDialog","show","sendAppMessage","scopedSlots","_u","fn","ref","_g","sortTopInventory","model","callback","$$v","expression","settings","displayDensity","labels","$set","addDialogStore","getFolderList","createFolderDialogStore","_s","appVersion","$store","state","items","directives","rawName","_l","item","uuid","senderName","senderDistance","toFixed","acceptReceivingItem","removeReceivingItem","removeDialogStore","removeItem","removeDialog","removeFolderDialogStore","removeFolder","removeFolderDialog","editDialogStore","supportedItemTypes","v","folderList","editDialog","valid","editItem","editFolderDialogStore","editFolderDialog","editFolder","createFolderDialog","createFolder","addDialog","addItem","folder","url","receiveDialogStore","receiveDialog","userDisplayName","userUUID","confirmItemReceipt","shareDialogStore","nearbyUsers","staticStyle","distance","shareDialog","shareItem","staticRenderFns","EventBus","Vue","options","itemsForIterator","proxy","sortFolder","size","type","style","backgroundColor","getIconColor","getIcon","sendEvent","toUpperCase","component","browserDevelopment","VBtn","VContainer","VIcon","VItemGroup","VList","VListGroup","VListItem","VListItemAction","VListItemContent","VListItemSubtitle","VListItemTitle","VMenu","$on","VApp","VAppBar","VAppBarNavIcon","VBadge","VCard","VCardActions","VCardText","VCardTitle","VCol","VContent","VDialog","VForm","VListItemGroup","VListItemIcon","VNavigationDrawer","VSelect","VSlider","VSpacer","VTextField","VToolbarTitle","VToolbar","use","Vuetify","Vuex","store","Store","devtools","iconType","mutations","mutate","payload","with","sort","a","b","nameA","nameB","set","pushToItems","moveFolder","parentFolderUUID","findFolder","returnedItem","findParentFolder","moveItem","findItem","config","productionTip","vm","vuetify","render","h","App","$mount"],"mappings":"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","file":"js/app.a3555a80.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","<!--\r\n//\r\n//  App.vue\r\n//\r\n//  Created by kasenvr@gmail.com on 7 Apr 2020\r\n//  Copyright 2020 Vircadia and contributors.\r\n//\r\n//  Distributed under the Apache License, Version 2.0.\r\n//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html\r\n//\r\n-->\r\n\r\n<style>\r\n    @import './assets/styles/styles.css';\r\n</style>\r\n\r\n<template>\r\n    <v-app>\r\n        <v-app-bar\r\n            app\r\n        >\r\n            <v-app-bar-nav-icon @click=\"drawer = true\"></v-app-bar-nav-icon>\r\n\r\n            <v-toolbar-title>Inventory</v-toolbar-title>\r\n            \r\n            <v-spacer></v-spacer>\r\n            \r\n            <v-badge\r\n                bordered\r\n                color=\"primary\"\r\n                :value=\"receivingItemQueueLength\"\r\n                :content=\"receivingItemQueueLength\"\r\n                overlap\r\n                class=\"mx-5\"\r\n            >\r\n                <v-btn\r\n                    small \r\n                    color=\"red\" \r\n                    fab \r\n                    @click=\"receivingItemsDialog.show = true; sendAppMessage('web-to-script-request-receiving-item-queue', '')\"\r\n                >\r\n                    <v-icon>\r\n                        mdi-tray-full\r\n                    </v-icon>\r\n                </v-btn>\r\n            </v-badge>\r\n            \r\n            <v-menu bottom left>\r\n                <template v-slot:activator=\"{ on }\">\r\n                    <v-btn \r\n                        large\r\n                        color=\"primary\"\r\n                        v-on=\"on\"\r\n                    >\r\n                        <h4>Sort</h4>\r\n                    </v-btn>\r\n                </template>\r\n\r\n                <v-list color=\"grey darken-3\">\r\n                    <v-list-item\r\n                        @click=\"sortTopInventory('az')\"\r\n                    >\r\n                        <v-list-item-title>A-Z</v-list-item-title>\r\n                        <v-list-item-action>\r\n                            <v-icon large>mdi-sort-alphabetical-ascending</v-icon>\r\n                        </v-list-item-action>\r\n                    </v-list-item>\r\n                    <v-list-item\r\n                        @click=\"sortTopInventory('za')\"\r\n                    >\r\n                        <v-list-item-title>Z-A</v-list-item-title>\r\n                        <v-list-item-action>\r\n                            <v-icon large>mdi-sort-alphabetical-descending</v-icon>\r\n                        </v-list-item-action>\r\n                    </v-list-item>\r\n                </v-list>\r\n            </v-menu>\r\n          \r\n        </v-app-bar>\r\n\r\n        <v-navigation-drawer\r\n            v-model=\"drawer\"\r\n            fixed\r\n            temporary\r\n        >\r\n            <v-list\r\n                nav\r\n                class=\"pt-5\"\r\n            >\r\n                <v-list-item-group>\r\n\r\n                    <v-slider\r\n                        v-model=\"settings.displayDensity.size\"\r\n                        :tick-labels=\"settings.displayDensity.labels\"\r\n                        :max=\"2\"\r\n                        step=\"1\"\r\n                        ticks=\"always\"\r\n                        tick-size=\"3\"\r\n                    ></v-slider>\r\n\r\n                    <v-list-item @click=\"addDialogStore.show = true; getFolderList('add');\">\r\n                        <v-list-item-icon>\r\n                            <v-icon>mdi-plus</v-icon>\r\n                        </v-list-item-icon>\r\n                        <v-list-item-title>Add Item</v-list-item-title>\r\n                    </v-list-item>\r\n\r\n                    <v-list-item @click=\"createFolderDialogStore.show = true\">\r\n                        <v-list-item-icon>\r\n                            <v-icon>mdi-folder-plus</v-icon>\r\n                        </v-list-item-icon>\r\n                        <v-list-item-title>Create Folder</v-list-item-title>\r\n                    </v-list-item>\r\n                                    \r\n                    <p class=\"app-version\">Version {{appVersion}}</p>\r\n\r\n                </v-list-item-group>\r\n            </v-list>\r\n        </v-navigation-drawer>\r\n\r\n        <v-content>\r\n            <v-container fluid>\r\n                <v-col\r\n                    cols=\"12\"\r\n                    sm=\"6\"\r\n                    md=\"4\"\r\n                    lg=\"3\"\r\n                    class=\"py-1 column-item\"\r\n                >\r\n                    <itemiterator :itemsForIterator=\"this.$store.state.items\"></itemiterator>\r\n                </v-col>\r\n            </v-container>\r\n        </v-content>\r\n\r\n        <v-dialog\r\n            v-model=\"receivingItemsDialog.show\"\r\n            max-width=\"380\"\r\n        >\r\n            <v-card>\r\n                <v-card-title class=\"headline\">Item Inbox</v-card-title>\r\n\r\n                <v-card-text v-show=\"receivingItemQueueLength > 0\">\r\n                    A list of all items being received currently.\r\n                </v-card-text>\r\n                \r\n                <v-card-text v-show=\"receivingItemQueueLength === 0\">\r\n                    There are currently no items in your inbox.\r\n                </v-card-text>\r\n\r\n                <v-card-actions>\r\n                    <v-list\r\n                        nav\r\n                        class=\"pt-5\"\r\n                        max-width=\"370\"\r\n                        v-show=\"receivingItemQueueLength > 0\"\r\n                    >\r\n\r\n                        <v-list-item\r\n                            two-line\r\n                            v-for=\"item in receivingItemsDialog.data.receivingItemQueue\" \r\n                            v-bind:key=\"item.data.uuid\"\r\n                        >\r\n                            <v-list-item-content>\r\n                                <v-list-item-title>{{item.data.name}}</v-list-item-title>\r\n                                <v-list-item-subtitle>Sent by {{item.senderName}}</v-list-item-subtitle>\r\n                                <v-list-item-subtitle>Distance: {{item.senderDistance.toFixed(1)}}m</v-list-item-subtitle>\r\n                            </v-list-item-content>\r\n                                <v-btn color=\"success\" @click=\"acceptReceivingItem(item)\">\r\n                                    <v-icon>mdi-plus</v-icon>\r\n                                </v-btn>\r\n                                <v-btn text color=\"red\" @click=\"removeReceivingItem(item.data.uuid)\">\r\n                                    <v-icon>mdi-minus</v-icon>\r\n                                </v-btn>\r\n                        </v-list-item>\r\n\r\n                    </v-list>\r\n                </v-card-actions>\r\n            </v-card>\r\n        </v-dialog>\r\n\r\n        <v-dialog\r\n          v-model=\"removeDialogStore.show\"\r\n          max-width=\"290\"\r\n        >\r\n          <v-card>\r\n              <v-card-title class=\"headline\">Remove Item</v-card-title>\r\n\r\n              <v-card-text>\r\n                  Are you sure you want to delete this item from your inventory?\r\n              </v-card-text>\r\n\r\n              <v-card-actions>\r\n\r\n                  <v-btn\r\n                      color=\"blue\"\r\n                      class=\"px-3\"\r\n                      @click=\"removeDialogStore.show = false\"\r\n                  >\r\n                      No\r\n                  </v-btn>\r\n                  \r\n                  <v-spacer></v-spacer>\r\n                  \r\n                  <v-btn\r\n                      color=\"red\"\r\n                      class=\"px-3\"                    \r\n                      @click=\"removeDialogStore.show = false; removeItem($store.state.removeDialog.uuid);\"\r\n                  >\r\n                      Yes\r\n                  </v-btn>\r\n                  \r\n              </v-card-actions>\r\n              \r\n          </v-card>\r\n        </v-dialog>\r\n        \r\n        <v-dialog\r\n          v-model=\"removeFolderDialogStore.show\"\r\n          max-width=\"290\"\r\n        >\r\n          <v-card>\r\n              <v-card-title class=\"headline\">Remove Folder</v-card-title>\r\n\r\n              <v-card-text>\r\n                  Are you sure you want to delete this folder <b>and</b> all items within from your inventory?\r\n              </v-card-text>\r\n\r\n              <v-card-actions>\r\n\r\n                  <v-btn\r\n                      color=\"blue\"\r\n                      class=\"px-3\"\r\n                      @click=\"removeFolderDialogStore.show = false\"\r\n                  >\r\n                      No\r\n                  </v-btn>\r\n                  \r\n                  <v-spacer></v-spacer>\r\n                  \r\n                  <v-btn\r\n                      color=\"red\"\r\n                      class=\"px-3\"                    \r\n                      @click=\"removeFolderDialogStore.show = false; removeFolder($store.state.removeFolderDialog.uuid);\"\r\n                  >\r\n                      Yes\r\n                  </v-btn>\r\n                  \r\n              </v-card-actions>\r\n              \r\n          </v-card>\r\n        </v-dialog>\r\n\r\n        <v-dialog\r\n          v-model=\"editDialogStore.show\"\r\n          max-width=\"380\"\r\n        >\r\n          <v-card>\r\n              <v-card-title class=\"headline\">Edit Item</v-card-title>\r\n              \r\n              <v-form\r\n                  ref=\"editForm\"\r\n                  v-model=\"editDialogStore.valid\"\r\n                  :lazy-validation=\"false\"\r\n              >\r\n                    \r\n                    <v-select\r\n                        :items=\"$store.state.supportedItemTypes\"\r\n                        class=\"my-2\"\r\n                        v-model=\"editDialogStore.data.type\"\r\n                        :rules=\"[v => !!v || 'Type is required.']\"\r\n                        label=\"Item Type\"\r\n                        outlined\r\n                    ></v-select>\r\n\r\n                    <v-text-field\r\n                        class=\"px-2\"\r\n                        label=\"Name\"\r\n                        v-model=\"editDialogStore.data.name\"\r\n                        :rules=\"[v => !!v || 'Name is required.']\"\r\n                        required\r\n                    ></v-text-field>\r\n\r\n                    <v-select\r\n                        :items=\"folderList\"\r\n                        item-text=\"name\"\r\n                        item-value=\"uuid\"\r\n                        class=\"my-2\"\r\n                        v-model=\"editDialogStore.data.folder\"\r\n                        label=\"Folder\"\r\n                        outlined\r\n                    ></v-select>\r\n\r\n                    <v-text-field\r\n                        class=\"px-2\"\r\n                        label=\"URL\"\r\n                        v-model=\"editDialogStore.data.url\"\r\n                        :rules=\"[v => !!v || 'URL is required.']\"\r\n                        required\r\n                    ></v-text-field>\r\n\r\n                  <v-card-actions>\r\n\r\n                      <v-btn\r\n                          color=\"red\"\r\n                          class=\"px-3\"\r\n                          @click=\"editDialogStore.show = false\"\r\n                      >\r\n                          Cancel\r\n                      </v-btn>\r\n                      \r\n                      <v-spacer></v-spacer>\r\n                      \r\n                      <v-btn\r\n                          color=\"blue\"\r\n                          class=\"px-3\"       \r\n                          :disabled=\"!$store.state.editDialog.valid\"             \r\n                          @click=\"editDialogStore.show = false; editItem($store.state.editDialog.uuid);\"\r\n                      >\r\n                          Done\r\n                      </v-btn>\r\n                  \r\n                  </v-card-actions>\r\n                  \r\n              </v-form>\r\n\r\n          </v-card>\r\n        </v-dialog>\r\n        \r\n        <v-dialog\r\n          v-model=\"editFolderDialogStore.show\"\r\n          max-width=\"380\"\r\n        >\r\n          <v-card>\r\n              <v-card-title class=\"headline\">Edit Folder</v-card-title>\r\n              \r\n              <v-form\r\n                  ref=\"editFolderForm\"\r\n                  v-model=\"editFolderDialogStore.valid\"\r\n                  :lazy-validation=\"false\"\r\n              >\r\n\r\n                  <v-text-field\r\n                      class=\"px-2\"\r\n                      label=\"Name\"\r\n                      v-model=\"editFolderDialogStore.data.name\"\r\n                      :rules=\"[v => !!v || 'Name is required.']\"\r\n                      required\r\n                  ></v-text-field>\r\n                  \r\n                  <v-select\r\n                      :items=\"folderList\"\r\n                      item-text=\"name\"\r\n                      item-value=\"uuid\"\r\n                      class=\"my-2\"\r\n                      v-model=\"editFolderDialogStore.data.folder\"\r\n                      label=\"Parent Folder\"\r\n                      outlined\r\n                  ></v-select>\r\n\r\n                  <v-card-actions>\r\n\r\n                      <v-btn\r\n                          color=\"red\"\r\n                          class=\"px-3\"\r\n                          @click=\"editFolderDialogStore.show = false\"\r\n                      >\r\n                          Cancel\r\n                      </v-btn>\r\n                      \r\n                      <v-spacer></v-spacer>\r\n                      \r\n                      <v-btn\r\n                          color=\"blue\"\r\n                          class=\"px-3\"       \r\n                          :disabled=\"!$store.state.editFolderDialog.valid\"             \r\n                          @click=\"editFolderDialogStore.show = false; editFolder($store.state.editFolderDialog.data.uuid);\"\r\n                      >\r\n                          Done\r\n                      </v-btn>\r\n                  \r\n                  </v-card-actions>\r\n                  \r\n              </v-form>\r\n\r\n          </v-card>\r\n        </v-dialog>\r\n\r\n        <v-dialog\r\n          v-model=\"createFolderDialogStore.show\"\r\n          max-width=\"380\"\r\n        >\r\n          <v-card>\r\n              <v-card-title class=\"headline\">Create Folder</v-card-title>\r\n              \r\n              <v-card-text>\r\n                  Enter the name of the folder.\r\n              </v-card-text>\r\n              \r\n              <v-form\r\n                  ref=\"createFolderForm\"\r\n                  v-model=\"createFolderDialogStore.valid\"\r\n                  :lazy-validation=\"false\"\r\n              >\r\n\r\n                  <v-text-field\r\n                      class=\"px-2\"\r\n                      label=\"Name\"\r\n                      v-model=\"createFolderDialogStore.data.name\"\r\n                      :rules=\"[v => !!v || 'Name is required.']\"\r\n                      required\r\n                  ></v-text-field>\r\n\r\n                  <v-card-actions>\r\n\r\n                      <v-btn\r\n                          color=\"red\"\r\n                          class=\"px-3\"\r\n                          @click=\"createFolderDialogStore.show = false\"\r\n                      >\r\n                          Cancel\r\n                      </v-btn>\r\n                      \r\n                      <v-spacer></v-spacer>\r\n                      \r\n                      <v-btn\r\n                          color=\"blue\"\r\n                          class=\"px-3\"\r\n                          :disabled=\"!$store.state.createFolderDialog.valid\"\r\n                          @click=\"createFolderDialogStore.show = false; createFolder($store.state.createFolderDialog.data.name)\"\r\n                      >\r\n                          Create\r\n                      </v-btn>\r\n                      \r\n                  </v-card-actions>\r\n              \r\n              </v-form>\r\n          </v-card>\r\n        </v-dialog>\r\n\r\n        <v-dialog\r\n          v-model=\"addDialogStore.show\"\r\n          max-width=\"380\"\r\n        >\r\n          <v-card>\r\n              <v-card-title class=\"headline\">Add Item</v-card-title>\r\n             \r\n              \r\n              <v-form\r\n                  ref=\"addForm\"\r\n                  v-model=\"addDialogStore.valid\"\r\n                  :lazy-validation=\"false\"\r\n              >\r\n              \r\n                  <v-card-text>\r\n                      Enter the name of the item.\r\n                  </v-card-text>\r\n\r\n                  <v-text-field\r\n                      class=\"px-2\"\r\n                      label=\"Name\"\r\n                      v-model=\"addDialogStore.data.name\"\r\n                      :rules=\"[v => !!v || 'Name is required.']\"\r\n                      required\r\n                  ></v-text-field>\r\n                  \r\n                  <v-card-text>\r\n                      Select a folder (optional).\r\n                  </v-card-text>\r\n                  \r\n                  <v-select\r\n                      class=\"my-2\"\r\n                      :items=\"folderList\"\r\n                      v-model=\"addDialogStore.data.folder\"\r\n                      label=\"Folder\"\r\n                      outlined\r\n                      item-text=\"name\"\r\n                      item-value=\"uuid\"\r\n                  ></v-select>\r\n\r\n                  <v-card-text>\r\n                      Enter the URL of the item.\r\n                  </v-card-text>\r\n\r\n                  <v-text-field\r\n                      class=\"px-2\"\r\n                      label=\"URL\"\r\n                      v-model=\"addDialogStore.data.url\"\r\n                      :rules=\"[v => !!v || 'URL is required.']\"\r\n                      required\r\n                  ></v-text-field>\r\n\r\n                  <v-card-actions>\r\n\r\n                      <v-btn\r\n                          color=\"red\"\r\n                          class=\"px-3\"\r\n                          @click=\"addDialogStore.show = false\"\r\n                      >\r\n                          Cancel\r\n                      </v-btn>\r\n                      \r\n                      <v-spacer></v-spacer>\r\n                      \r\n                      <v-btn\r\n                          color=\"blue\"\r\n                          class=\"px-3\"\r\n                          :disabled=\"!$store.state.addDialog.valid\"\r\n                          @click=\"addDialogStore.show = false; addItem($store.state.addDialog.data.name, $store.state.addDialog.data.folder, $store.state.addDialog.data.url)\"\r\n                      >\r\n                          Add\r\n                      </v-btn>\r\n                      \r\n                  </v-card-actions>\r\n              \r\n              </v-form>\r\n          </v-card>\r\n        </v-dialog>\r\n\r\n        <v-dialog\r\n          v-model=\"receiveDialogStore.show\"\r\n          max-width=\"380\"\r\n          persistent\r\n        >\r\n          <v-card>\r\n              <v-card-title class=\"headline\">Receiving Item</v-card-title>\r\n\r\n              <v-card-text>\r\n                  <b>{{$store.state.receiveDialog.data.userDisplayName}} sent you an item.</b> <br />\r\n                  <i class=\"caption\">User UUID: {{$store.state.receiveDialog.data.userUUID}}</i>\r\n              </v-card-text>\r\n              \r\n              <v-form\r\n                  ref=\"receiveForm\"\r\n                  v-model=\"receiveDialogStore.valid\"\r\n                  :lazy-validation=\"false\"\r\n              >\r\n              \r\n                  <v-text-field\r\n                      class=\"px-2\"\r\n                      label=\"Type\"\r\n                      :rules=\"[v => !!v || 'Type is required.']\"\r\n                      v-model=\"receiveDialogStore.data.type\"\r\n                      required\r\n                  ></v-text-field>\r\n                  \r\n                  <v-text-field\r\n                      class=\"px-2\"\r\n                      label=\"Name\"\r\n                      :rules=\"[v => !!v || 'Name is required.']\"\r\n                      v-model=\"receiveDialogStore.data.name\"\r\n                      required\r\n                  ></v-text-field>\r\n                  \r\n                  <v-card-text>\r\n                      Select a folder (optional).\r\n                  </v-card-text>\r\n                  \r\n                  <v-select\r\n                      class=\"my-2\"\r\n                      :items=\"folderList\"\r\n                      v-model=\"receiveDialogStore.data.folder\"\r\n                      label=\"Folder\"\r\n                      outlined\r\n                      item-text=\"name\"\r\n                      item-value=\"uuid\"\r\n                  ></v-select>\r\n\r\n                  <v-text-field\r\n                      class=\"px-2\"\r\n                      label=\"URL\"\r\n                      :rules=\"[v => !!v || 'URL is required.']\"\r\n                      v-model=\"receiveDialogStore.data.url\"\r\n                      required\r\n                  ></v-text-field>\r\n\r\n                  <v-card-actions>\r\n\r\n                      <v-btn\r\n                          color=\"red\"\r\n                          class=\"px-3\"\r\n                          @click=\"receiveDialogStore.show = false\"\r\n                      >\r\n                          Reject\r\n                      </v-btn>\r\n                      \r\n                      <v-spacer></v-spacer>\r\n                      \r\n                      <v-btn\r\n                          color=\"blue\"\r\n                          class=\"px-3\"\r\n                          :disabled=\"!$store.state.receiveDialog.valid\"\r\n                          @click=\"receiveDialogStore.show = false; confirmItemReceipt();\"\r\n                      >\r\n                          Accept\r\n                      </v-btn>\r\n                      \r\n                  </v-card-actions>\r\n                  \r\n              </v-form>\r\n          </v-card>\r\n        </v-dialog>\r\n\r\n        <v-dialog\r\n          v-model=\"shareDialogStore.show\"\r\n          max-width=\"380\"\r\n          persistent\r\n        >\r\n          <v-card>\r\n              <v-card-title class=\"headline\">Share Item</v-card-title>\r\n\r\n              <v-card-text>\r\n                  Select a user to send this item to.\r\n              </v-card-text>\r\n              \r\n              <v-form\r\n                  ref=\"shareForm\"\r\n                  v-model=\"shareDialogStore.valid\"\r\n                  :lazy-validation=\"false\"\r\n                  class=\"px-2\"\r\n              >\r\n              \r\n                  <!-- <v-list>\r\n                      <v-list-item-group v-model=\"shareDialogStore.data.recipient\" color=\"primary\">\r\n                          <v-list-item\r\n                              v-for=\"user in nearbyUsers\"\r\n                              v-bind:key=\"user.uuid\"\r\n                          >\r\n                              <v-list-item-content>\r\n                                  <v-list-item-title v-text=\"user.name\"></v-list-item-title>\r\n                              </v-list-item-content>\r\n                          </v-list-item>\r\n                      </v-list-item-group>\r\n                  </v-list> -->\r\n                  \r\n                <v-select\r\n                    v-model=\"shareDialogStore.data.recipient\"\r\n                    :items=\"nearbyUsers\"\r\n                    item-value=\"uuid\"\r\n                    :rules=\"[v => !!v || 'A recipient is required']\"\r\n                    label=\"Nearby Users\"\r\n                    required\r\n                >\r\n                    <template v-slot:item=\"data\">\r\n                        <i style=\"color: grey; margin-right: 5px;\">{{data.item.distance.toFixed(1)}}m</i> {{data.item.name}}\r\n                    </template>\r\n                    <template v-slot:selection=\"data\">\r\n                        <i style=\"color: grey; margin-right: 5px;\">{{data.item.distance.toFixed(1)}}m</i> {{data.item.name}}\r\n                    </template>\r\n                </v-select>\r\n\r\n                  <v-text-field\r\n                      class=\"px-2\"\r\n                      label=\"URL\"\r\n                      :rules=\"[v => !!v || 'URL is required.']\"\r\n                      v-model=\"shareDialogStore.data.url\"\r\n                      required\r\n                  ></v-text-field>\r\n\r\n                  <v-card-actions>\r\n\r\n                      <v-btn\r\n                          color=\"red\"\r\n                          class=\"px-3\"\r\n                          @click=\"shareDialogStore.show = false\"\r\n                      >\r\n                          Cancel\r\n                      </v-btn>\r\n                      \r\n                      <v-spacer></v-spacer>\r\n                      \r\n                      <v-btn\r\n                          color=\"blue\"\r\n                          class=\"px-3\"\r\n                          :disabled=\"!$store.state.shareDialog.valid\"\r\n                          @click=\"shareDialogStore.show = false; shareItem($store.state.shareDialog.data.uuid);\"\r\n                      >\r\n                          Send\r\n                      </v-btn>\r\n                      \r\n                  </v-card-actions>\r\n                  \r\n              </v-form>\r\n          </v-card>\r\n        </v-dialog>\r\n    </v-app>\r\n</template>\r\n\r\n<script>\r\n\r\nvar vue_this;\r\n\r\nfunction browserDevelopment() {\r\n    if (typeof EventBridge !== 'undefined') {\r\n        return false; // We are in Vircadia.\r\n    } else {\r\n        return true; // We are in the browser, probably for development purposes.\r\n    }\r\n}\r\n\r\nif (!browserDevelopment()) {\r\n    // eslint-disable-next-line\r\n    EventBridge.scriptEventReceived.connect(function(receivedCommand) {\r\n        receivedCommand = JSON.parse(receivedCommand);\r\n        // alert(\"RECEIVED COMMAND:\" + receivedCommand.command)\r\n        if (receivedCommand.app === \"inventory\") {\r\n            // We route the data based on the command given.\r\n            switch (receivedCommand.command) {\r\n                case 'script-to-web-inventory':\r\n                    // alert(\"INVENTORY RECEIVED ON APP:\" + JSON.stringify(receivedCommand.data));\r\n                    vue_this.receiveInventory(receivedCommand.data);\r\n                    break;\r\n                case 'script-to-web-receiving-item-queue':\r\n                    // alert(\"RECEIVING ITEM QUEUE:\" + JSON.stringify(receivedCommand.data));\r\n                    vue_this.receiveReceivingItemQueue(receivedCommand.data);\r\n                    break;\r\n                case 'script-to-web-nearby-users':\r\n                    // alert(\"RECEIVING NEARBY USERS:\" + JSON.stringify(receivedCommand.data));\r\n                    vue_this.receiveNearbyUsers(receivedCommand.data);\r\n                    break;\r\n                case 'script-to-web-settings':\r\n                    // alert(\"RECEIVING SETTINGS:\" + JSON.stringify(receivedCommand.data));\r\n                    vue_this.receiveSettings(receivedCommand.data);\r\n                    break;\r\n            }\r\n        }\r\n    });\r\n    \r\n}\r\n\r\nimport { EventBus } from './plugins/event-bus.js';\r\n\r\nEventBus.$on('use-item', data => {\r\n    vue_this.useItem(data.type, data.url);\r\n});\r\n\r\nimport itemiterator from './components/ItemIterator'\r\n\r\nexport default {\r\n    name: 'App',\r\n    components: {\r\n        itemiterator\r\n    },\r\n    data: () => ({\r\n        receivingItemsDialog: {\r\n            show: false,\r\n            data: {\r\n                receivingItemQueue: [\r\n                    {\r\n                        \"senderUUID\": \"SENDERUUIDLOL\",\r\n                        \"senderName\": \"WHOISTHIS1\",\r\n                        \"senderDistance\": 2.5,\r\n                        \"data\": {\r\n                            \"type\": \"script\",\r\n                            \"name\": \"This Is A Real Script\",\r\n                            \"url\": \"https://butwhythough.com/lol.js\",\r\n                            \"uuid\": \"This Is A Real Script\",\r\n                        }\r\n                    },\r\n                    {\r\n                        \"senderUUID\": \"TEST2SENDERUUID\",\r\n                        \"senderName\": \"WHOTHISBE2\",\r\n                        \"senderDistance\": 1.22,\r\n                        \"data\": {\r\n                            \"type\": \"script\",\r\n                            \"name\": \"REALLYLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG\",\r\n                            \"url\": \"https://butwhythough.com/looool.js\",\r\n                            \"uuid\": \"REALLYLONNGGGGGGGG\",\r\n                        }\r\n                    }\r\n                ]\r\n            }\r\n        },\r\n        folderList: [],\r\n        recursiveFolderHoldingList: [],\r\n        nearbyUsers: [\r\n            {\r\n                name: \"Who\",\r\n                uuid: \"{4131531653652562}\",\r\n                distance: 5,\r\n            },\r\n            {\r\n                name: \"Is\",\r\n                uuid: \"{4131531653756756576543652562}\",\r\n                distance: 3.23,\r\n            },\r\n            {\r\n                name: \"This?\",\r\n                uuid: \"{4131531676575653652562}\",\r\n                distance: 1,\r\n            }\r\n        ],\r\n        sortBy: \"alphabetical\",\r\n        settings: {\r\n            \"displayDensity\": {\r\n                \"size\": 1,\r\n                \"labels\": [\r\n                    \"List\",\r\n                    \"Compact\",\r\n                    \"Large\",\r\n                ]\r\n            }\r\n        },\r\n        appVersion: \"2.0.2\",\r\n        darkTheme: true,\r\n        drawer: false,\r\n        disabledProp: true\r\n    }),\r\n    created: function () {\r\n        vue_this = this;\r\n        this.$vuetify.theme.dark = this.darkTheme;\r\n                \r\n        this.sendAppMessage(\"ready\", \"\");\r\n    },\r\n    methods: {\r\n        createUUID: function() {\r\n            // http://www.ietf.org/rfc/rfc4122.txt\r\n            var s = [];\r\n            var hexDigits = \"0123456789abcdef\";\r\n            for (var i = 0; i < 36; i++) {\r\n                s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);\r\n            }\r\n            s[14] = \"4\";  // bits 12-15 of the time_hi_and_version field to 0010\r\n            s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);  // bits 6-7 of the clock_seq_hi_and_reserved to 01\r\n            s[8] = s[13] = s[18] = s[23] = \"-\";\r\n\r\n            var uuid = s.join(\"\");\r\n            return uuid;\r\n        },\r\n        pushToItems: function(type, name, folder, url, uuid) {\r\n            var uuidToUse;\r\n\r\n            if (uuid != null) {\r\n                uuidToUse = uuid;\r\n            } else {\r\n                uuidToUse = this.createUUID();\r\n            }\r\n            \r\n            this.$store.commit('pushToItems', {\r\n                \"type\": type,\r\n                \"name\": name,\r\n                \"folder\": folder,\r\n                \"url\": url,\r\n                \"uuid\": uuidToUse\r\n            });\r\n            \r\n            if (folder !== null && folder !== \"No Folder\") {\r\n                this.moveItem(uuidToUse, folder);\r\n            }\r\n        },\r\n        checkFileType: function(fileType) {\r\n            var detectedItemType = null;\r\n            \r\n            switch (fileType) {\r\n                // Model Cases\r\n                case \".fbx\":\r\n                    detectedItemType = \"MODEL\";\r\n                    break;\r\n                case \".gltf\":\r\n                    detectedItemType = \"MODEL\";\r\n                    break;\r\n                case \".glb\":\r\n                    detectedItemType = \"MODEL\";\r\n                    break;\r\n                // Script Cases\r\n                case \".js\":\r\n                    detectedItemType = \"SCRIPT\";\r\n                    break;\r\n                // Avatar Cases\r\n                case \".fst\":\r\n                    detectedItemType = \"AVATAR\";\r\n                    break;\r\n                // JSON Cases\r\n                case \".json\":\r\n                    detectedItemType = \"JSON\";\r\n                    break;\r\n                default:\r\n                    detectedItemType = \"UNKNOWN\";\r\n            }\r\n            \r\n            return detectedItemType;\r\n        },\r\n        checkItemType: function(itemType) {\r\n            var detectedItemType = null;\r\n            itemType = itemType.toUpperCase();\r\n            \r\n            this.$store.state.supportedItemTypes.forEach(function (itemTypeInList) {\r\n                if (itemTypeInList === itemType) {\r\n                    detectedItemType = itemTypeInList;\r\n                }\r\n            });\r\n            \r\n            if (detectedItemType === null) {\r\n                // This is not a known item type...\r\n                detectedItemType = \"UNKNOWN\";\r\n            }\r\n            \r\n            return detectedItemType;\r\n        },\r\n        createFolder: function(name) {\r\n            this.$store.commit('pushToItems', {\r\n                \"name\": name,\r\n                \"folder\": \"No Folder\",\r\n                \"items\": [],\r\n                \"uuid\": this.createUUID()\r\n            });\r\n            \r\n            this.createFolderDialogStore.data.name = null;\r\n        },\r\n        editFolder: function(uuid) {\r\n            var findFolder = this.searchForItem(uuid);\r\n            \r\n            if (findFolder) {\r\n                findFolder.returnedItem.name = this.$store.state.editFolderDialog.data.name;\r\n                \r\n                if (this.$store.state.editFolderDialog.data.folder !== null && this.$store.state.editFolderDialog.data.folder !== \"No Change\") {\r\n                    if (findFolder.returnedItem.folder !== this.$store.state.editFolderDialog.data.folder && this.$store.state.editFolderDialog.data.folder !== \"No Folder\") {\r\n                        this.moveFolder(uuid, this.$store.state.editFolderDialog.data.folder);\r\n                    } else if (this.$store.state.editFolderDialog.data.folder === \"No Folder\") {\r\n                        this.moveFolder(uuid, \"top\");\r\n                    }\r\n                }\r\n            }\r\n        },\r\n        addItem: function(name, folder, url) {\r\n            var detectedFileType = this.detectFileType(url);\r\n            var itemType;\r\n                        \r\n            if (detectedFileType == null || detectedFileType[0] == null) {\r\n                itemType = \"unknown\";\r\n            } else {\r\n                itemType = this.checkFileType(detectedFileType[0]);\r\n            }\r\n\r\n            this.pushToItems(itemType, name, folder, url, null);\r\n            \r\n            this.addDialogStore.data.name = null;\r\n            this.addDialogStore.data.folder = null;\r\n            this.addDialogStore.data.url = null;\r\n        \r\n        },\r\n        detectFileType: function(url) {    \r\n            // Attempt the pure regex route...\r\n            var extensionRegex = /\\.[0-9a-z]+$/i; // to detect the file type based on extension in the URL.\r\n            var detectedFileType = url.match(extensionRegex);\r\n            \r\n            // If that fails, let's try the traditional URL route.\r\n            if (detectedFileType == null || detectedFileType[0] == null) {\r\n                var urlExtensionRegex = /\\.[0-9a-z]+$/i;\r\n                let urlToParse = new URL(url);\r\n\r\n                // Attempt the URL converted regex route...\r\n                detectedFileType = urlToParse.pathname.match(urlExtensionRegex);\r\n            } else if (detectedFileType == null || detectedFileType[0] == null) { // Still not working?!\r\n                // Your URL sucks!\r\n                detectedFileType = null; // We got nothin'.\r\n            }\r\n            \r\n            return detectedFileType;\r\n        },\r\n        removeItem: function(uuid) {\r\n            var findItem = this.searchForItem(uuid);\r\n            findItem.parentArray.splice(findItem.iteration, 1);\r\n        },\r\n        removeFolder: function(uuid) {\r\n            var findFolder = this.searchForItem(uuid);\r\n            findFolder.parentArray.splice(findFolder.iteration, 1);\r\n        },\r\n        editItem: function(uuid) {    \r\n            var findItem = this.searchForItem(uuid);\r\n            findItem.returnedItem.type = this.checkItemType(this.$store.state.editDialog.data.type);\r\n            findItem.returnedItem.name = this.$store.state.editDialog.data.name;\r\n            findItem.returnedItem.folder = this.$store.state.editDialog.data.folder;\r\n            findItem.returnedItem.url = this.$store.state.editDialog.data.url;\r\n            \r\n            var folderName;\r\n            \r\n            for (var i = 0; i < this.folderList.length; i++) {\r\n                if (this.folderList[i].name === findItem.returnedItem.folder) {\r\n                    folderName = this.folderList[i].name;\r\n                }\r\n            }\r\n            \r\n            if (this.$store.state.editDialog.data.folder !== null) {\r\n                if (folderName !== this.$store.state.editDialog.data.folder && this.$store.state.editDialog.data.folder !== \"No Folder\") {\r\n                    this.moveItem(uuid, this.$store.state.editDialog.data.folder);\r\n                } else if (folderName === \"No Folder\") {\r\n                    this.moveItem(uuid, \"top\");\r\n                }\r\n            }\r\n\r\n        },\r\n        acceptReceivingItem: function(data) {\r\n            this.removeReceivingItem(data.data.uuid);\r\n            \r\n            this.receiveDialogStore.data.userUUID = data.senderUUID;\r\n            this.receiveDialogStore.data.userDisplayName = data.senderName;\r\n            this.receiveDialogStore.data.type = data.data.type;\r\n            this.receiveDialogStore.data.name = data.data.name;\r\n            this.receiveDialogStore.data.url = data.data.url;\r\n            \r\n            this.getFolderList(\"add\");\r\n                            \r\n            this.receiveDialogStore.show = true;\r\n    \r\n        },\r\n        removeReceivingItem: function(uuid) {\r\n            for (var i = 0; i < this.receivingItemsDialog.data.receivingItemQueue.length; i++) {\r\n                if (this.receivingItemsDialog.data.receivingItemQueue[i].data.uuid === uuid) {\r\n                    this.receivingItemsDialog.data.receivingItemQueue.splice(i, 1);\r\n                    this.sendAppMessage('web-to-script-update-receiving-item-queue', this.receivingItemQueue);\r\n                    if (this.receivingItemsDialog.data.receivingItemQueue.length === 0) {\r\n                        this.receivingItemsDialog.show = false; // Close the dialog if there's nothing left.\r\n                    }\r\n                }\r\n            }\r\n        },\r\n        receiveReceivingItemQueue: function(data) {\r\n            this.receivingItemsDialog.data.receivingItemQueue = data;\r\n        },\r\n        shareItem: function(uuid) {        \r\n            var findItem = this.searchForItem(uuid);\r\n            var typeToShare = findItem.returnedItem.type;\r\n            var nameToShare = findItem.returnedItem.name;\r\n            \r\n            // alert(\"type\" + typeToShare + \"name\" + nameToShare);\r\n            this.sendAppMessage(\"share-item\", {\r\n                \"type\": typeToShare,\r\n                \"name\": nameToShare,\r\n                \"url\": this.$store.state.shareDialog.data.url,\r\n                \"recipient\": this.$store.state.shareDialog.data.recipient,\r\n            });\r\n        },\r\n        confirmItemReceipt: function() {\r\n            this.pushToItems(\r\n                this.checkItemType(this.$store.state.receiveDialog.data.type), \r\n                this.$store.state.receiveDialog.data.name,\r\n                this.$store.state.receiveDialog.data.folder,\r\n                this.$store.state.receiveDialog.data.url,\r\n                null\r\n            );\r\n        },\r\n        useItem: function(type, url) {\r\n            this.sendAppMessage(\"use-item\", { \r\n                \"type\": type, \r\n                \"url\": url \r\n            });\r\n        },\r\n        onDragStart: function() {\r\n            console.info(\"Drag start.\");\r\n        },\r\n        onDragUpdate: function() {\r\n            console.info(\"Drag Update.\");\r\n        },\r\n        onDragEnd: function() {\r\n            console.info(\"Drag End.\");\r\n        },\r\n        onDragChange: function(ev) {\r\n            console.info(\"Drag Update.\", ev);\r\n        },\r\n        sortTopInventory: function(order) {\r\n            this.$store.commit('sortTopInventory', { \"sort\": order });\r\n        },\r\n        getFolderList: function(request) {\r\n            var generateList;\r\n            this.recursiveFolderHoldingList = []; // Clear that list before we do anything.\r\n            \r\n            if (request === \"edit\") {\r\n                this.folderList = [\r\n                    {\r\n                        \"name\": \"No Change\",\r\n                        \"uuid\": \"No Change\"\r\n                    },\r\n                    {\r\n                        \"name\": \"No Folder\", \r\n                        \"uuid\": \"No Folder\"\r\n                    }\r\n                ];\r\n                \r\n                generateList = this.recursiveFolderPopulate(this.itemsStore, null);\r\n                \r\n            } else if (request === \"add\") {\r\n                this.folderList = [\r\n                    {\r\n                        \"name\": \"No Folder\", \r\n                        \"uuid\": \"No Folder\"\r\n                    }\r\n                ];\r\n                \r\n                generateList = this.recursiveFolderPopulate(this.itemsStore, null);\r\n                \r\n            } else if (request === \"editFolder\") {\r\n                this.folderList = [\r\n                    {\r\n                        \"name\": \"No Change\",\r\n                        \"uuid\": \"No Change\"\r\n                    },\r\n                    {\r\n                        \"name\": \"No Folder\", \r\n                        \"uuid\": \"No Folder\"\r\n                    }\r\n                ];\r\n                \r\n                generateList = this.recursiveFolderPopulate(this.itemsStore, this.$store.state.editFolderDialog.data.uuid);\r\n            }\r\n            \r\n            if (generateList) {\r\n                var combinedArray = this.folderList.concat(generateList);\r\n                this.folderList = combinedArray;\r\n            }\r\n        },\r\n        moveItem: function(uuid, parentFolderUUID) {\r\n            var findItem = this.searchForItem(uuid);\r\n            var findParentFolder;\r\n            \r\n            if (parentFolderUUID !== \"top\") {\r\n                findParentFolder = this.searchForItem(parentFolderUUID);\r\n            }\r\n            \r\n            // Remove the old item before placing down the copy, we already got the attributes that we had wanted.\r\n            this.removeItem(uuid);\r\n            \r\n            this.$store.commit('moveItem', {\r\n                \"uuid\": uuid,\r\n                \"parentFolderUUID\": parentFolderUUID,\r\n                \"findItem\": findItem,\r\n                \"findParentFolder\": findParentFolder\r\n            });\r\n\r\n        },\r\n        moveFolder: function(uuid, parentFolderUUID) {\r\n            var findFolder = this.searchForItem(uuid);\r\n            var findParentFolder;\r\n            \r\n            if (parentFolderUUID !== \"top\") {\r\n                findParentFolder = this.searchForItem(parentFolderUUID);\r\n            }\r\n            \r\n            // Remove the old item before placing down the copy, we already got the attributes that we had wanted.\r\n            this.removeFolder(uuid);\r\n            \r\n            this.$store.commit('moveFolder', {\r\n                \"uuid\": uuid,\r\n                \"parentFolderUUID\": parentFolderUUID,\r\n                \"findFolder\": findFolder,\r\n                \"findParentFolder\": findParentFolder\r\n            });\r\n            \r\n        },\r\n        searchForItem: function(uuid) {\r\n            var foundItem = this.recursiveSingularSearch(uuid, this.itemsStore);\r\n            \r\n            if (foundItem) {\r\n                return {\r\n                    \"returnedItem\": foundItem.returnedItem,\r\n                    \"iteration\": foundItem.iteration,\r\n                    \"parentArray\": foundItem.parentArray,\r\n                    \"itemUUID\": uuid\r\n                }\r\n            }\r\n        },\r\n        recursiveSingularSearch: function(uuid, indexToSearch) {\r\n            for (var i = 0; i < indexToSearch.length; i++) {\r\n                if (indexToSearch[i].uuid === uuid) {\r\n                    var foundItem = {\r\n                        \"returnedItem\": indexToSearch[i],\r\n                        \"iteration\": i,\r\n                        \"parentArray\": indexToSearch\r\n                    }\r\n                    return foundItem;\r\n                } else if (Object.prototype.hasOwnProperty.call(indexToSearch[i], \"items\") && indexToSearch[i].items.length > 0) {\r\n                    var deepSearch = this.recursiveSingularSearch(uuid, indexToSearch[i].items);\r\n                    if (deepSearch !== null) {\r\n                        return deepSearch;\r\n                    }\r\n                }\r\n            }\r\n            \r\n            return null;\r\n        },\r\n        recursiveFolderPopulate: function(indexToSearch, avoidFolder) {\r\n            for (var i = 0; i < indexToSearch.length; i++) {\r\n                if (Object.prototype.hasOwnProperty.call(indexToSearch[i], \"items\")) {\r\n                    // We want to avoid adding the folder itself and also any child folders it may have, putting a folder within its child folder will nuke it.\r\n                    if (avoidFolder !== indexToSearch[i].uuid) {\r\n                        // console.info(\"AvoidFolder\", avoidFolder, \"indexToSearch[i].uuid\", indexToSearch[i].uuid);\r\n                        this.recursiveFolderHoldingList.push({\r\n                            \"name\": indexToSearch[i].name,\r\n                            \"uuid\": indexToSearch[i].uuid\r\n                        });\r\n                        \r\n                        this.recursiveFolderPopulate(indexToSearch[i].items, avoidFolder);\r\n                    }\r\n                }\r\n            }\r\n            \r\n            return this.recursiveFolderHoldingList;\r\n        },\r\n        sendInventory: function() {\r\n            this.sendAppMessage(\"web-to-script-inventory\", this.itemsStore );\r\n        },\r\n        receiveInventory: function(receivedInventory) {\r\n            if (!receivedInventory) {\r\n                this.itemsStore = [];\r\n            } else {\r\n                this.itemsStore = receivedInventory;\r\n            }\r\n        },\r\n        sendSettings: function() {\r\n            this.sendAppMessage(\"web-to-script-settings\", this.$store.state.settings );\r\n        },\r\n        receiveSettings: function(receivedSettings) {\r\n            if (!receivedSettings) {\r\n                // Don't do anything, let the defaults stand. Otherwise, it will break the app.\r\n            } else {\r\n                this.settings = receivedSettings;\r\n            }\r\n        },\r\n        receiveNearbyUsers: function(receivedUsers) {\r\n            if (!receivedUsers) {\r\n                this.nearbyUsers = [];\r\n            } else {\r\n                this.nearbyUsers = receivedUsers;\r\n            }\r\n        },\r\n        sendAppMessage: function(command, data) {\r\n            var JSONtoSend = {\r\n                \"app\": \"inventory\",\r\n                \"command\": command,\r\n                \"data\": data\r\n            };\r\n                        \r\n            if (!browserDevelopment()) {\r\n                // eslint-disable-next-line\r\n                EventBridge.emitWebEvent(JSON.stringify(JSONtoSend));\r\n            } else {\r\n                // this.receivingItemsDialog.data.receivingItemQueue = [\r\n                //     {\r\n                //         \"sender\": \"WHOISTHIS1\",\r\n                //         \"data\": {\r\n                //             \"type\": \"script\",\r\n                //             \"name\": \"This Is A Real Script\",\r\n                //             \"url\": \"https://urmum.com/lol.js\",\r\n                //             \"uuid\": \"This Is A Real Script\",\r\n                //         }\r\n                //     },\r\n                //     {\r\n                //         \"sender\": \"TESTPERSON2\",\r\n                //         \"data\": {\r\n                //             \"type\": \"script\",\r\n                //             \"name\": \"REALLYLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG\",\r\n                //             \"url\": \"https://urmum.com/looool.js\",\r\n                //             \"uuid\": \"REALLYLONNGGGGGGGG\",\r\n                //         }\r\n                //     }\r\n                // ];\r\n                // alert(JSON.stringify(JSONtoSend));\r\n            }\r\n        },\r\n    },\r\n    computed: {\r\n        itemsStore: {\r\n            get() {\r\n                return this.$store.state.items;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'items', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        addDialogStore: {\r\n            get() {\r\n                return this.$store.state.addDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'addDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        editDialogStore: {\r\n            get() {\r\n                return this.$store.state.editDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'editDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        editDialogShow: function() {\r\n            return this.$store.state.editDialog.show;\r\n        },\r\n        editFolderDialogStore: {\r\n            get() {\r\n                return this.$store.state.editFolderDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'editFolderDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        editFolderDialogShow: function() {\r\n            return this.$store.state.editFolderDialog.show;\r\n        },\r\n        createFolderDialogStore: {\r\n            get() {\r\n                return this.$store.state.createFolderDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'createFolderDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        receiveDialogStore: {\r\n            get() {\r\n                return this.$store.state.receiveDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'receiveDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        shareDialogShow: function() {\r\n            return this.$store.state.shareDialog.show;\r\n        },\r\n        shareDialogStore: {\r\n            get() {\r\n                return this.$store.state.shareDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'shareDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        removeFolderDialogStore: {\r\n            get() {\r\n                return this.$store.state.removeFolderDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'removeFolderDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        removeDialogStore: {\r\n            get() {\r\n                return this.$store.state.removeDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'removeDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        receivingItemQueue: {\r\n            get() {\r\n                return this.receivingItemsDialog.data.receivingItemQueue;\r\n            }\r\n        },\r\n        receivingItemQueueLength: {\r\n            get() {\r\n                return this.receivingItemsDialog.data.receivingItemQueue.length;\r\n            }\r\n        },\r\n    },\r\n    watch: {\r\n        // Whenever the item list changes, this will notice and then send it to the script to be saved.\r\n        itemsStore: {\r\n            deep: true,\r\n            handler() {\r\n                this.sendInventory();\r\n            }\r\n        }, \r\n        // Whenever the settings change, we want to save that state.\r\n        settings: {\r\n            deep: true,\r\n            handler: function(newVal) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'settings', \r\n                    with: newVal\r\n                });\r\n                this.sendSettings();\r\n            }\r\n        },\r\n        editDialogShow: {\r\n            handler: function(newVal) {\r\n                if (newVal === true) {\r\n                    this.getFolderList('edit');\r\n                }\r\n            }\r\n        },\r\n        editFolderDialogShow: {\r\n            handler: function(newVal) {\r\n                if (newVal === true) {\r\n                    this.getFolderList('editFolder');\r\n                }\r\n            }\r\n        },\r\n        shareDialogShow: {\r\n            handler: function(newVal) {\r\n                if (newVal === true) {\r\n                    this.sendAppMessage('web-to-script-request-nearby-users', '');\r\n                }\r\n            }\r\n        },\r\n        receivingItemQueue: {\r\n            handler: function() {\r\n                // Do nothing.\r\n            }\r\n        },\r\n    }\r\n};\r\n\r\n</script>\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-app-bar',{attrs:{\"app\":\"\"}},[_c('v-app-bar-nav-icon',{on:{\"click\":function($event){_vm.drawer = true}}}),_c('v-toolbar-title',[_vm._v(\"Inventory\")]),_c('v-spacer'),_c('v-badge',{staticClass:\"mx-5\",attrs:{\"bordered\":\"\",\"color\":\"primary\",\"value\":_vm.receivingItemQueueLength,\"content\":_vm.receivingItemQueueLength,\"overlap\":\"\"}},[_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"red\",\"fab\":\"\"},on:{\"click\":function($event){_vm.receivingItemsDialog.show = true; _vm.sendAppMessage('web-to-script-request-receiving-item-queue', '')}}},[_c('v-icon',[_vm._v(\" mdi-tray-full \")])],1)],1),_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"large\":\"\",\"color\":\"primary\"}},on),[_c('h4',[_vm._v(\"Sort\")])])]}}])},[_c('v-list',{attrs:{\"color\":\"grey darken-3\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.sortTopInventory('az')}}},[_c('v-list-item-title',[_vm._v(\"A-Z\")]),_c('v-list-item-action',[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-sort-alphabetical-ascending\")])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.sortTopInventory('za')}}},[_c('v-list-item-title',[_vm._v(\"Z-A\")]),_c('v-list-item-action',[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-sort-alphabetical-descending\")])],1)],1)],1)],1)],1),_c('v-navigation-drawer',{attrs:{\"fixed\":\"\",\"temporary\":\"\"},model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('v-list',{staticClass:\"pt-5\",attrs:{\"nav\":\"\"}},[_c('v-list-item-group',[_c('v-slider',{attrs:{\"tick-labels\":_vm.settings.displayDensity.labels,\"max\":2,\"step\":\"1\",\"ticks\":\"always\",\"tick-size\":\"3\"},model:{value:(_vm.settings.displayDensity.size),callback:function ($$v) {_vm.$set(_vm.settings.displayDensity, \"size\", $$v)},expression:\"settings.displayDensity.size\"}}),_c('v-list-item',{on:{\"click\":function($event){_vm.addDialogStore.show = true; _vm.getFolderList('add');}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-plus\")])],1),_c('v-list-item-title',[_vm._v(\"Add Item\")])],1),_c('v-list-item',{on:{\"click\":function($event){_vm.createFolderDialogStore.show = true}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-folder-plus\")])],1),_c('v-list-item-title',[_vm._v(\"Create Folder\")])],1),_c('p',{staticClass:\"app-version\"},[_vm._v(\"Version \"+_vm._s(_vm.appVersion))])],1)],1)],1),_c('v-content',[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-col',{staticClass:\"py-1 column-item\",attrs:{\"cols\":\"12\",\"sm\":\"6\",\"md\":\"4\",\"lg\":\"3\"}},[_c('itemiterator',{attrs:{\"itemsForIterator\":this.$store.state.items}})],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"380\"},model:{value:(_vm.receivingItemsDialog.show),callback:function ($$v) {_vm.$set(_vm.receivingItemsDialog, \"show\", $$v)},expression:\"receivingItemsDialog.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Item Inbox\")]),_c('v-card-text',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.receivingItemQueueLength > 0),expression:\"receivingItemQueueLength > 0\"}]},[_vm._v(\" A list of all items being received currently. \")]),_c('v-card-text',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.receivingItemQueueLength === 0),expression:\"receivingItemQueueLength === 0\"}]},[_vm._v(\" There are currently no items in your inbox. \")]),_c('v-card-actions',[_c('v-list',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.receivingItemQueueLength > 0),expression:\"receivingItemQueueLength > 0\"}],staticClass:\"pt-5\",attrs:{\"nav\":\"\",\"max-width\":\"370\"}},_vm._l((_vm.receivingItemsDialog.data.receivingItemQueue),function(item){return _c('v-list-item',{key:item.data.uuid,attrs:{\"two-line\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.data.name))]),_c('v-list-item-subtitle',[_vm._v(\"Sent by \"+_vm._s(item.senderName))]),_c('v-list-item-subtitle',[_vm._v(\"Distance: \"+_vm._s(item.senderDistance.toFixed(1))+\"m\")])],1),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":function($event){return _vm.acceptReceivingItem(item)}}},[_c('v-icon',[_vm._v(\"mdi-plus\")])],1),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.removeReceivingItem(item.data.uuid)}}},[_c('v-icon',[_vm._v(\"mdi-minus\")])],1)],1)}),1)],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"290\"},model:{value:(_vm.removeDialogStore.show),callback:function ($$v) {_vm.$set(_vm.removeDialogStore, \"show\", $$v)},expression:\"removeDialogStore.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Remove Item\")]),_c('v-card-text',[_vm._v(\" Are you sure you want to delete this item from your inventory? \")]),_c('v-card-actions',[_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"blue\"},on:{\"click\":function($event){_vm.removeDialogStore.show = false}}},[_vm._v(\" No \")]),_c('v-spacer'),_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"red\"},on:{\"click\":function($event){_vm.removeDialogStore.show = false; _vm.removeItem(_vm.$store.state.removeDialog.uuid);}}},[_vm._v(\" Yes \")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"290\"},model:{value:(_vm.removeFolderDialogStore.show),callback:function ($$v) {_vm.$set(_vm.removeFolderDialogStore, \"show\", $$v)},expression:\"removeFolderDialogStore.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Remove Folder\")]),_c('v-card-text',[_vm._v(\" Are you sure you want to delete this folder \"),_c('b',[_vm._v(\"and\")]),_vm._v(\" all items within from your inventory? \")]),_c('v-card-actions',[_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"blue\"},on:{\"click\":function($event){_vm.removeFolderDialogStore.show = false}}},[_vm._v(\" No \")]),_c('v-spacer'),_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"red\"},on:{\"click\":function($event){_vm.removeFolderDialogStore.show = false; _vm.removeFolder(_vm.$store.state.removeFolderDialog.uuid);}}},[_vm._v(\" Yes \")])],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"380\"},model:{value:(_vm.editDialogStore.show),callback:function ($$v) {_vm.$set(_vm.editDialogStore, \"show\", $$v)},expression:\"editDialogStore.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Edit Item\")]),_c('v-form',{ref:\"editForm\",attrs:{\"lazy-validation\":false},model:{value:(_vm.editDialogStore.valid),callback:function ($$v) {_vm.$set(_vm.editDialogStore, \"valid\", $$v)},expression:\"editDialogStore.valid\"}},[_c('v-select',{staticClass:\"my-2\",attrs:{\"items\":_vm.$store.state.supportedItemTypes,\"rules\":[function (v) { return !!v || 'Type is required.'; }],\"label\":\"Item Type\",\"outlined\":\"\"},model:{value:(_vm.editDialogStore.data.type),callback:function ($$v) {_vm.$set(_vm.editDialogStore.data, \"type\", $$v)},expression:\"editDialogStore.data.type\"}}),_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"Name\",\"rules\":[function (v) { return !!v || 'Name is required.'; }],\"required\":\"\"},model:{value:(_vm.editDialogStore.data.name),callback:function ($$v) {_vm.$set(_vm.editDialogStore.data, \"name\", $$v)},expression:\"editDialogStore.data.name\"}}),_c('v-select',{staticClass:\"my-2\",attrs:{\"items\":_vm.folderList,\"item-text\":\"name\",\"item-value\":\"uuid\",\"label\":\"Folder\",\"outlined\":\"\"},model:{value:(_vm.editDialogStore.data.folder),callback:function ($$v) {_vm.$set(_vm.editDialogStore.data, \"folder\", $$v)},expression:\"editDialogStore.data.folder\"}}),_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"URL\",\"rules\":[function (v) { return !!v || 'URL is required.'; }],\"required\":\"\"},model:{value:(_vm.editDialogStore.data.url),callback:function ($$v) {_vm.$set(_vm.editDialogStore.data, \"url\", $$v)},expression:\"editDialogStore.data.url\"}}),_c('v-card-actions',[_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"red\"},on:{\"click\":function($event){_vm.editDialogStore.show = false}}},[_vm._v(\" Cancel \")]),_c('v-spacer'),_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"blue\",\"disabled\":!_vm.$store.state.editDialog.valid},on:{\"click\":function($event){_vm.editDialogStore.show = false; _vm.editItem(_vm.$store.state.editDialog.uuid);}}},[_vm._v(\" Done \")])],1)],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"380\"},model:{value:(_vm.editFolderDialogStore.show),callback:function ($$v) {_vm.$set(_vm.editFolderDialogStore, \"show\", $$v)},expression:\"editFolderDialogStore.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Edit Folder\")]),_c('v-form',{ref:\"editFolderForm\",attrs:{\"lazy-validation\":false},model:{value:(_vm.editFolderDialogStore.valid),callback:function ($$v) {_vm.$set(_vm.editFolderDialogStore, \"valid\", $$v)},expression:\"editFolderDialogStore.valid\"}},[_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"Name\",\"rules\":[function (v) { return !!v || 'Name is required.'; }],\"required\":\"\"},model:{value:(_vm.editFolderDialogStore.data.name),callback:function ($$v) {_vm.$set(_vm.editFolderDialogStore.data, \"name\", $$v)},expression:\"editFolderDialogStore.data.name\"}}),_c('v-select',{staticClass:\"my-2\",attrs:{\"items\":_vm.folderList,\"item-text\":\"name\",\"item-value\":\"uuid\",\"label\":\"Parent Folder\",\"outlined\":\"\"},model:{value:(_vm.editFolderDialogStore.data.folder),callback:function ($$v) {_vm.$set(_vm.editFolderDialogStore.data, \"folder\", $$v)},expression:\"editFolderDialogStore.data.folder\"}}),_c('v-card-actions',[_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"red\"},on:{\"click\":function($event){_vm.editFolderDialogStore.show = false}}},[_vm._v(\" Cancel \")]),_c('v-spacer'),_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"blue\",\"disabled\":!_vm.$store.state.editFolderDialog.valid},on:{\"click\":function($event){_vm.editFolderDialogStore.show = false; _vm.editFolder(_vm.$store.state.editFolderDialog.data.uuid);}}},[_vm._v(\" Done \")])],1)],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"380\"},model:{value:(_vm.createFolderDialogStore.show),callback:function ($$v) {_vm.$set(_vm.createFolderDialogStore, \"show\", $$v)},expression:\"createFolderDialogStore.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Create Folder\")]),_c('v-card-text',[_vm._v(\" Enter the name of the folder. \")]),_c('v-form',{ref:\"createFolderForm\",attrs:{\"lazy-validation\":false},model:{value:(_vm.createFolderDialogStore.valid),callback:function ($$v) {_vm.$set(_vm.createFolderDialogStore, \"valid\", $$v)},expression:\"createFolderDialogStore.valid\"}},[_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"Name\",\"rules\":[function (v) { return !!v || 'Name is required.'; }],\"required\":\"\"},model:{value:(_vm.createFolderDialogStore.data.name),callback:function ($$v) {_vm.$set(_vm.createFolderDialogStore.data, \"name\", $$v)},expression:\"createFolderDialogStore.data.name\"}}),_c('v-card-actions',[_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"red\"},on:{\"click\":function($event){_vm.createFolderDialogStore.show = false}}},[_vm._v(\" Cancel \")]),_c('v-spacer'),_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"blue\",\"disabled\":!_vm.$store.state.createFolderDialog.valid},on:{\"click\":function($event){_vm.createFolderDialogStore.show = false; _vm.createFolder(_vm.$store.state.createFolderDialog.data.name)}}},[_vm._v(\" Create \")])],1)],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"380\"},model:{value:(_vm.addDialogStore.show),callback:function ($$v) {_vm.$set(_vm.addDialogStore, \"show\", $$v)},expression:\"addDialogStore.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Add Item\")]),_c('v-form',{ref:\"addForm\",attrs:{\"lazy-validation\":false},model:{value:(_vm.addDialogStore.valid),callback:function ($$v) {_vm.$set(_vm.addDialogStore, \"valid\", $$v)},expression:\"addDialogStore.valid\"}},[_c('v-card-text',[_vm._v(\" Enter the name of the item. \")]),_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"Name\",\"rules\":[function (v) { return !!v || 'Name is required.'; }],\"required\":\"\"},model:{value:(_vm.addDialogStore.data.name),callback:function ($$v) {_vm.$set(_vm.addDialogStore.data, \"name\", $$v)},expression:\"addDialogStore.data.name\"}}),_c('v-card-text',[_vm._v(\" Select a folder (optional). \")]),_c('v-select',{staticClass:\"my-2\",attrs:{\"items\":_vm.folderList,\"label\":\"Folder\",\"outlined\":\"\",\"item-text\":\"name\",\"item-value\":\"uuid\"},model:{value:(_vm.addDialogStore.data.folder),callback:function ($$v) {_vm.$set(_vm.addDialogStore.data, \"folder\", $$v)},expression:\"addDialogStore.data.folder\"}}),_c('v-card-text',[_vm._v(\" Enter the URL of the item. \")]),_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"URL\",\"rules\":[function (v) { return !!v || 'URL is required.'; }],\"required\":\"\"},model:{value:(_vm.addDialogStore.data.url),callback:function ($$v) {_vm.$set(_vm.addDialogStore.data, \"url\", $$v)},expression:\"addDialogStore.data.url\"}}),_c('v-card-actions',[_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"red\"},on:{\"click\":function($event){_vm.addDialogStore.show = false}}},[_vm._v(\" Cancel \")]),_c('v-spacer'),_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"blue\",\"disabled\":!_vm.$store.state.addDialog.valid},on:{\"click\":function($event){_vm.addDialogStore.show = false; _vm.addItem(_vm.$store.state.addDialog.data.name, _vm.$store.state.addDialog.data.folder, _vm.$store.state.addDialog.data.url)}}},[_vm._v(\" Add \")])],1)],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"380\",\"persistent\":\"\"},model:{value:(_vm.receiveDialogStore.show),callback:function ($$v) {_vm.$set(_vm.receiveDialogStore, \"show\", $$v)},expression:\"receiveDialogStore.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Receiving Item\")]),_c('v-card-text',[_c('b',[_vm._v(_vm._s(_vm.$store.state.receiveDialog.data.userDisplayName)+\" sent you an item.\")]),_vm._v(\" \"),_c('br'),_c('i',{staticClass:\"caption\"},[_vm._v(\"User UUID: \"+_vm._s(_vm.$store.state.receiveDialog.data.userUUID))])]),_c('v-form',{ref:\"receiveForm\",attrs:{\"lazy-validation\":false},model:{value:(_vm.receiveDialogStore.valid),callback:function ($$v) {_vm.$set(_vm.receiveDialogStore, \"valid\", $$v)},expression:\"receiveDialogStore.valid\"}},[_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"Type\",\"rules\":[function (v) { return !!v || 'Type is required.'; }],\"required\":\"\"},model:{value:(_vm.receiveDialogStore.data.type),callback:function ($$v) {_vm.$set(_vm.receiveDialogStore.data, \"type\", $$v)},expression:\"receiveDialogStore.data.type\"}}),_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"Name\",\"rules\":[function (v) { return !!v || 'Name is required.'; }],\"required\":\"\"},model:{value:(_vm.receiveDialogStore.data.name),callback:function ($$v) {_vm.$set(_vm.receiveDialogStore.data, \"name\", $$v)},expression:\"receiveDialogStore.data.name\"}}),_c('v-card-text',[_vm._v(\" Select a folder (optional). \")]),_c('v-select',{staticClass:\"my-2\",attrs:{\"items\":_vm.folderList,\"label\":\"Folder\",\"outlined\":\"\",\"item-text\":\"name\",\"item-value\":\"uuid\"},model:{value:(_vm.receiveDialogStore.data.folder),callback:function ($$v) {_vm.$set(_vm.receiveDialogStore.data, \"folder\", $$v)},expression:\"receiveDialogStore.data.folder\"}}),_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"URL\",\"rules\":[function (v) { return !!v || 'URL is required.'; }],\"required\":\"\"},model:{value:(_vm.receiveDialogStore.data.url),callback:function ($$v) {_vm.$set(_vm.receiveDialogStore.data, \"url\", $$v)},expression:\"receiveDialogStore.data.url\"}}),_c('v-card-actions',[_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"red\"},on:{\"click\":function($event){_vm.receiveDialogStore.show = false}}},[_vm._v(\" Reject \")]),_c('v-spacer'),_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"blue\",\"disabled\":!_vm.$store.state.receiveDialog.valid},on:{\"click\":function($event){_vm.receiveDialogStore.show = false; _vm.confirmItemReceipt();}}},[_vm._v(\" Accept \")])],1)],1)],1)],1),_c('v-dialog',{attrs:{\"max-width\":\"380\",\"persistent\":\"\"},model:{value:(_vm.shareDialogStore.show),callback:function ($$v) {_vm.$set(_vm.shareDialogStore, \"show\", $$v)},expression:\"shareDialogStore.show\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline\"},[_vm._v(\"Share Item\")]),_c('v-card-text',[_vm._v(\" Select a user to send this item to. \")]),_c('v-form',{ref:\"shareForm\",staticClass:\"px-2\",attrs:{\"lazy-validation\":false},model:{value:(_vm.shareDialogStore.valid),callback:function ($$v) {_vm.$set(_vm.shareDialogStore, \"valid\", $$v)},expression:\"shareDialogStore.valid\"}},[_c('v-select',{attrs:{\"items\":_vm.nearbyUsers,\"item-value\":\"uuid\",\"rules\":[function (v) { return !!v || 'A recipient is required'; }],\"label\":\"Nearby Users\",\"required\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(data){return [_c('i',{staticStyle:{\"color\":\"grey\",\"margin-right\":\"5px\"}},[_vm._v(_vm._s(data.item.distance.toFixed(1))+\"m\")]),_vm._v(\" \"+_vm._s(data.item.name)+\" \")]}},{key:\"selection\",fn:function(data){return [_c('i',{staticStyle:{\"color\":\"grey\",\"margin-right\":\"5px\"}},[_vm._v(_vm._s(data.item.distance.toFixed(1))+\"m\")]),_vm._v(\" \"+_vm._s(data.item.name)+\" \")]}}]),model:{value:(_vm.shareDialogStore.data.recipient),callback:function ($$v) {_vm.$set(_vm.shareDialogStore.data, \"recipient\", $$v)},expression:\"shareDialogStore.data.recipient\"}}),_c('v-text-field',{staticClass:\"px-2\",attrs:{\"label\":\"URL\",\"rules\":[function (v) { return !!v || 'URL is required.'; }],\"required\":\"\"},model:{value:(_vm.shareDialogStore.data.url),callback:function ($$v) {_vm.$set(_vm.shareDialogStore.data, \"url\", $$v)},expression:\"shareDialogStore.data.url\"}}),_c('v-card-actions',[_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"red\"},on:{\"click\":function($event){_vm.shareDialogStore.show = false}}},[_vm._v(\" Cancel \")]),_c('v-spacer'),_c('v-btn',{staticClass:\"px-3\",attrs:{\"color\":\"blue\",\"disabled\":!_vm.$store.state.shareDialog.valid},on:{\"click\":function($event){_vm.shareDialogStore.show = false; _vm.shareItem(_vm.$store.state.shareDialog.data.uuid);}}},[_vm._v(\" Send \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\r\n    event-bus.js\r\n\r\n    Created by Kalila L. on 21 May 2020.\r\n    Copyright 2020 Vircadia and contributors.\r\n    \r\n    Distributed under the Apache License, Version 2.0.\r\n    See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html\r\n*/\r\n\r\nimport Vue from 'vue';\r\nexport const EventBus = new Vue();","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('draggable',{attrs:{\"group\":_vm.options,\"list\":_vm.itemsForIterator,\"handle\":\".handle\"}},_vm._l((_vm.itemsForIterator),function(item){return _c('v-item-group',{key:item.uuid},[(!item.items)?_c('v-list-item',{staticClass:\"mx-auto draggable-card\",attrs:{\"one-line\":\"\",\"max-width\":\"344\",\"outlined\":\"\"}},[_c('div',{staticClass:\"handle pa-2\"},[_c('v-icon',{attrs:{\"color\":\"orange darken-2\"}},[_vm._v(\"mdi-square-medium-outline\")])],1),_c('v-list-item-content',{staticClass:\"pb-1 pt-2 pl-4\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.settings.displayDensity.size > 0),expression:\"settings.displayDensity.size > 0\"}],staticClass:\"overline\",staticStyle:{\"font-size\":\"0.825rem !important\"}},[_vm._v(_vm._s(item.type))]),_c('v-list-item-title',{staticClass:\"subtitle-1 mb-1\"},[_vm._v(_vm._s(item.name))]),_c('v-list-item-subtitle',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.settings.displayDensity.size == 2),expression:\"settings.displayDensity.size == 2\"}]},[_vm._v(_vm._s(item.url))])],1),_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.settings.displayDensity.size >= 1),expression:\"settings.displayDensity.size >= 1\"}],style:({backgroundColor: (_vm.getIconColor(item.type)) }),attrs:{\"medium\":\"\",\"fab\":\"\",\"dark\":\"\"}},on),[_c('v-icon',[_vm._v(_vm._s(_vm.getIcon(item.type)))])],1),_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.settings.displayDensity.size < 1),expression:\"settings.displayDensity.size < 1\"}],style:({backgroundColor: (_vm.getIconColor(item.type)) }),attrs:{\"small\":\"\",\"fab\":\"\",\"dark\":\"\"}},on),[_c('v-icon',[_vm._v(_vm._s(_vm.getIcon(item.type)))])],1)]}}],null,true)},[_c('v-list',{attrs:{\"color\":\"grey darken-3\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.sendEvent('use-item', { 'type': item.type, 'url': item.url })}}},[_c('v-list-item-title',[_vm._v(\"Use\")]),_c('v-list-item-action',[_c('v-icon',[_vm._v(\"mdi-play\")])],1)],1),_c('v-list-item',{on:{\"click\":function($event){_vm.editDialogStore.show = true; \n                              _vm.editDialogStore.uuid = item.uuid;\n                              _vm.editDialogStore.data.type = item.type.toUpperCase();\n                              _vm.editDialogStore.data.folder = null;\n                              _vm.editDialogStore.data.name = item.name;\n                              _vm.editDialogStore.data.url = item.url;}}},[_c('v-list-item-title',[_vm._v(\"Edit\")]),_c('v-list-item-action',[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1)],1),_c('v-list-item',{on:{\"click\":function($event){_vm.shareDialogStore.show = true; \n                            _vm.shareDialogStore.data.url = item.url; \n                            _vm.shareDialogStore.data.uuid = item.uuid;}}},[_c('v-list-item-title',[_vm._v(\"Share\")]),_c('v-list-item-action',[_c('v-icon',[_vm._v(\"mdi-share\")])],1)],1),_c('v-list-item',{attrs:{\"color\":\"red darken-1\"},on:{\"click\":function($event){_vm.removeDialogStore.show = true; \n                            _vm.removeDialogStore.uuid = item.uuid;}}},[_c('v-list-item-title',[_vm._v(\"Remove\")]),_c('v-list-item-action',[_c('v-icon',[_vm._v(\"mdi-minus\")])],1)],1)],1)],1)],1):_c('v-list-group',{staticClass:\"top-level-folder\",scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-list-item',{staticClass:\"mx-auto\",attrs:{\"one-line\":\"\",\"max-width\":\"344\",\"outlined\":\"\"}},[_c('v-icon',{staticClass:\"folder-icon\",attrs:{\"color\":\"teal\"}},[_vm._v(\"mdi-folder-settings\")]),_vm._v(\" \"+_vm._s(item.name)+\" \")],1)]},proxy:true}],null,true)},[_c('div',{staticClass:\"text-center my-2\"},[_c('v-btn',{staticClass:\"mx-1 folder-button\",attrs:{\"medium\":\"\",\"tile\":\"\",\"color\":\"purple\"},on:{\"click\":function($event){_vm.editFolderDialogStore.data.uuid = item.uuid;\n                        _vm.editFolderDialogStore.data.name = item.name;\n                        _vm.editFolderDialogStore.show = true;}}},[_c('v-icon',[_vm._v(\"mdi-pencil\")])],1),_c('v-btn',{staticClass:\"mx-1 folder-button\",attrs:{\"medium\":\"\",\"tile\":\"\",\"color\":\"red\"},on:{\"click\":function($event){_vm.removeFolderDialogStore.show = true; \n                        _vm.removeFolderDialogStore.uuid = item.uuid;}}},[_c('v-icon',[_vm._v(\"mdi-minus\")])],1),_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n                        var on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"mx-1 folder-button\",attrs:{\"medium\":\"\",\"tile\":\"\",\"color\":\"blue\"}},on),[_c('v-icon',[_vm._v(\"mdi-sort\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"color\":\"grey darken-3\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.sortFolder(item.uuid, 'az');}}},[_c('v-list-item-title',[_vm._v(\"A-Z\")]),_c('v-list-item-action',[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-sort-alphabetical-ascending\")])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.sortFolder(item.uuid, 'za');}}},[_c('v-list-item-title',[_vm._v(\"Z-A\")]),_c('v-list-item-action',[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\"mdi-sort-alphabetical-descending\")])],1)],1)],1)],1)],1),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('itemiterator',{key:item.uuid,attrs:{\"itemsForIterator\":item.items}})],1)],1)],1)}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\r\n//  ItemIterator.vue\r\n//\r\n//  Created by Kalila L. on 13 April 2020.\r\n//  Copyright 2020 Vircadia and contributors..\r\n//\r\n//  Distributed under the Apache License, Version 2.0.\r\n//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html\r\n-->\r\n\r\n<template>\r\n    <draggable :group=\"options\" :list=\"itemsForIterator\" handle=\".handle\">           \r\n        <v-item-group\r\n            v-for=\"item in itemsForIterator\"\r\n            v-bind:key=\"item.uuid\"\r\n        >\r\n            <v-list-item \r\n                one-line \r\n                v-if=\"!item.items\"\r\n                class=\"mx-auto draggable-card\"\r\n                max-width=\"344\"\r\n                outlined\r\n            >\r\n                  <div class=\"handle pa-2\">\r\n                      <!-- <v-icon color=\"orange darken-2\">mdi-blur-linear</v-icon> -->\r\n                      <!-- <v-icon color=\"orange darken-2\">mdi-package-variant</v-icon> -->\r\n                      <v-icon color=\"orange darken-2\">mdi-square-medium-outline</v-icon>\r\n                  </div>\r\n                  <v-list-item-content \r\n                      class=\"pb-1 pt-2 pl-4\" \r\n                  >\r\n                      <div v-show=\"settings.displayDensity.size > 0\" class=\"overline\" style=\"font-size: 0.825rem !important;\">{{item.type}}</div>\r\n                      <v-list-item-title class=\"subtitle-1 mb-1\">{{item.name}}</v-list-item-title>\r\n                      <v-list-item-subtitle v-show=\"settings.displayDensity.size == 2\">{{item.url}}</v-list-item-subtitle>\r\n                  </v-list-item-content>\r\n                  \r\n                  <v-menu bottom left>\r\n                      <template v-slot:activator=\"{ on }\">\r\n                          <!-- settings.displayDensity.size >= 1 -->\r\n                          <v-btn \r\n                              :style=\"{backgroundColor: (getIconColor(item.type)) }\"\r\n                              v-show=\"settings.displayDensity.size >= 1\"\r\n                              medium \r\n                              fab \r\n                              dark\r\n                              v-on=\"on\"\r\n                          >\r\n                              <v-icon>{{getIcon(item.type)}}</v-icon>\r\n                          </v-btn>\r\n                          <!-- settings.displayDensity.size < 1 -->\r\n                          <v-btn \r\n                              :style=\"{backgroundColor: (getIconColor(item.type)) }\"\r\n                              v-show=\"settings.displayDensity.size < 1\"\r\n                              small\r\n                              fab\r\n                              dark\r\n                              v-on=\"on\"\r\n                          >\r\n                              <v-icon>{{getIcon(item.type)}}</v-icon>\r\n                          </v-btn>\r\n                      </template>\r\n\r\n                      <v-list color=\"grey darken-3\">\r\n                          <v-list-item\r\n                              @click=\"sendEvent('use-item', { 'type': item.type, 'url': item.url })\"\r\n                          >\r\n                              <v-list-item-title>Use</v-list-item-title>\r\n                              <v-list-item-action>\r\n                                  <v-icon>mdi-play</v-icon>\r\n                              </v-list-item-action>\r\n                          </v-list-item>\r\n                          <v-list-item\r\n                              @click=\"\r\n                                  editDialogStore.show = true; \r\n                                  editDialogStore.uuid = item.uuid;\r\n                                  editDialogStore.data.type = item.type.toUpperCase();\r\n                                  editDialogStore.data.folder = null;\r\n                                  editDialogStore.data.name = item.name;\r\n                                  editDialogStore.data.url = item.url;\r\n                              \"\r\n                          >\r\n                              <v-list-item-title>Edit</v-list-item-title>\r\n                              <v-list-item-action>\r\n                                  <v-icon>mdi-pencil</v-icon>\r\n                              </v-list-item-action>\r\n                          </v-list-item>\r\n                          <v-list-item\r\n                              @click=\"\r\n                                shareDialogStore.show = true; \r\n                                shareDialogStore.data.url = item.url; \r\n                                shareDialogStore.data.uuid = item.uuid; \r\n                              \"\r\n                          >\r\n                              <v-list-item-title>Share</v-list-item-title>\r\n                              <v-list-item-action>\r\n                                  <v-icon>mdi-share</v-icon>\r\n                              </v-list-item-action>\r\n                          </v-list-item>\r\n                          <v-list-item\r\n                              @click=\"\r\n                                removeDialogStore.show = true; \r\n                                removeDialogStore.uuid = item.uuid;\r\n                              \"\r\n                              color=\"red darken-1\"\r\n                          >\r\n                              <v-list-item-title>Remove</v-list-item-title>\r\n                              <v-list-item-action>\r\n                                  <v-icon>mdi-minus</v-icon>\r\n                              </v-list-item-action>\r\n                          </v-list-item>\r\n                      </v-list>\r\n                  </v-menu>\r\n                  \r\n              </v-list-item>\r\n\r\n        \r\n            <!-- The Folder List Item -->\r\n            <v-list-group\r\n                v-else\r\n                class=\"top-level-folder\"\r\n            >\r\n            <!-- prepend-icon=\"mdi-blur-linear\" put this in the list group, no idea how to make it a handle yet though... -->\r\n                <template v-slot:activator>\r\n                    <v-list-item \r\n                        one-line \r\n                        class=\"mx-auto\"\r\n                        max-width=\"344\"\r\n                        outlined\r\n                    >\r\n                        <v-icon class=\"folder-icon\" color=\"teal\">mdi-folder-settings</v-icon>\r\n                        {{item.name}}\r\n                    </v-list-item>\r\n                </template>\r\n                <div class=\"text-center my-2\">\r\n                    <v-btn medium tile color=\"purple\" class=\"mx-1 folder-button\"\r\n                        @click=\"\r\n                            editFolderDialogStore.data.uuid = item.uuid;\r\n                            editFolderDialogStore.data.name = item.name;\r\n                            editFolderDialogStore.show = true; \r\n                        \"\r\n                    >\r\n                        <v-icon>mdi-pencil</v-icon>\r\n                    </v-btn>\r\n                    <v-btn medium tile color=\"red\" class=\"mx-1 folder-button\"\r\n                        @click=\"\r\n                            removeFolderDialogStore.show = true; \r\n                            removeFolderDialogStore.uuid = item.uuid;\r\n                        \"\r\n                    >\r\n                        <v-icon>mdi-minus</v-icon>\r\n                    </v-btn>\r\n                    \r\n                    <v-menu bottom left>\r\n                        <template v-slot:activator=\"{ on }\">\r\n                            <v-btn \r\n                                medium tile \r\n                                color=\"blue\" \r\n                                class=\"mx-1 folder-button\"\r\n                                v-on=\"on\"\r\n                            >\r\n                                <v-icon>mdi-sort</v-icon>\r\n                            </v-btn>\r\n                        </template>\r\n        \r\n                        <v-list color=\"grey darken-3\">\r\n                            <v-list-item\r\n                                @click=\"sortFolder(item.uuid, 'az');\"\r\n                            >\r\n                                <v-list-item-title>A-Z</v-list-item-title>\r\n                                <v-list-item-action>\r\n                                    <v-icon large>mdi-sort-alphabetical-ascending</v-icon>\r\n                                </v-list-item-action>\r\n                            </v-list-item>\r\n                            <v-list-item\r\n                                @click=\"sortFolder(item.uuid, 'za');\"\r\n                            >\r\n                                <v-list-item-title>Z-A</v-list-item-title>\r\n                                <v-list-item-action>\r\n                                    <v-icon large>mdi-sort-alphabetical-descending</v-icon>\r\n                                </v-list-item-action>\r\n                            </v-list-item>\r\n                        </v-list>\r\n                    </v-menu>\r\n                </div>\r\n                \r\n                <v-container fluid>\r\n                    <itemiterator v-bind:key=\"item.uuid\" :itemsForIterator=\"item.items\"></itemiterator>\r\n                </v-container>\r\n                \r\n            </v-list-group>\r\n        </v-item-group>\r\n    </draggable>\r\n</template>\r\n\r\n\r\n<script>\r\n\r\nimport { EventBus } from '../plugins/event-bus.js';\r\nimport draggable from 'vuedraggable';\r\n\r\nexport default {\r\n    name: 'itemiterator',\r\n    components: {\r\n        draggable\r\n    },\r\n    props: ['itemsForIterator'],\r\n    data: () => ({\r\n        settings: {}\r\n    }),\r\n    created: function () {\r\n        this.settings = this.$store.state.settings;\r\n    },\r\n    computed: {\r\n        options : function (){\r\n            return { \r\n                name: 'column-item',\r\n                pull: true, \r\n                put: true \r\n            }\r\n        },\r\n        settingsChanged() {\r\n            return this.$store.state.settings;\r\n        },\r\n        addDialogStore: {\r\n            get() {\r\n                return this.$store.state.addDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'addDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        editDialogStore: {\r\n            get() {\r\n                return this.$store.state.editDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'editDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        editFolderDialogStore: {\r\n            get() {\r\n                return this.$store.state.editFolderDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'editFolderDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        shareDialogStore: {\r\n            get() {\r\n                return this.$store.state.shareDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'shareDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        removeFolderDialogStore: {\r\n            get() {\r\n                return this.$store.state.removeFolderDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'removeFolderDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        },\r\n        removeDialogStore: {\r\n            get() {\r\n                return this.$store.state.removeDialog;\r\n            },\r\n            set(value) {\r\n                this.$store.commit('mutate', {\r\n                    property: 'removeDialog', \r\n                    with: value\r\n                });\r\n            }\r\n        }\r\n    },\r\n    watch: {\r\n        settingsChanged (newVal, oldVal) {\r\n            console.info (\"Settings previous value:\", oldVal);\r\n            if (newVal) {\r\n                this.settings = newVal;\r\n            }\r\n        }\r\n    },\r\n    methods: {\r\n        sendEvent: function(command, data) {\r\n            EventBus.$emit(command, data);\r\n        },\r\n        getIcon: function(itemType) {\r\n            itemType = itemType.toUpperCase();\r\n            var returnedItemIcon;\r\n            \r\n            if (this.$store.state.iconType[itemType]) {\r\n                returnedItemIcon = this.$store.state.iconType[itemType].icon;\r\n            } else {\r\n                returnedItemIcon = this.$store.state.iconType.UNKNOWN.icon;\r\n            }\r\n            \r\n            return returnedItemIcon;\r\n        },\r\n        getIconColor: function(itemType) {\r\n            itemType = itemType.toUpperCase();\r\n            var returnedItemIconColor;\r\n            \r\n            if (this.$store.state.iconType[itemType]) {\r\n                returnedItemIconColor = this.$store.state.iconType[itemType].color;\r\n            } else {\r\n                returnedItemIconColor = this.$store.state.iconType.UNKNOWN.color;\r\n            }\r\n            \r\n            return returnedItemIconColor;\r\n        },\r\n        sortFolder: function(uuid, sort) {\r\n            var findFolder = this.searchForItem(uuid);\r\n            \r\n            if (findFolder) {\r\n                if (sort === \"az\") {\r\n                    findFolder.returnedItem.items.sort(function(a, b) {\r\n                        var nameA = a.name.toUpperCase(); // ignore upper and lowercase\r\n                        var nameB = b.name.toUpperCase(); // ignore upper and lowercase\r\n                        if (nameA < nameB) {\r\n                            return -1;\r\n                        }\r\n                        if (nameA > nameB) {\r\n                            return 1;\r\n                        }\r\n        \r\n                        // names must be equal\r\n                        return 0;\r\n                    });\r\n                }\r\n                if (sort === \"za\") {\r\n                    findFolder.returnedItem.items.sort(function(a, b) {\r\n                        var nameA = a.name.toUpperCase(); // ignore upper and lowercase\r\n                        var nameB = b.name.toUpperCase(); // ignore upper and lowercase\r\n                        if (nameA > nameB) {\r\n                            return -1;\r\n                        }\r\n                        if (nameA < nameB) {\r\n                            return 1;\r\n                        }\r\n        \r\n                        // names must be equal\r\n                        return 0;\r\n                    });\r\n                }\r\n            }\r\n        },\r\n        searchForItem: function(uuid) {\r\n            var foundItem = this.recursiveSingularSearch(uuid, this.itemsForIterator);\r\n            \r\n            if (foundItem) {\r\n                return {\r\n                    \"returnedItem\": foundItem.returnedItem,\r\n                    \"iteration\": foundItem.iteration,\r\n                    \"parentArray\": foundItem.parentArray,\r\n                    \"itemUUID\": uuid,\r\n                }\r\n            }\r\n        },\r\n        recursiveSingularSearch: function(uuid, indexToSearch) {\r\n            for (var i = 0; i < indexToSearch.length; i++) {\r\n                if (indexToSearch[i].uuid == uuid) {\r\n                    var foundItem = {\r\n                        \"returnedItem\": indexToSearch[i],\r\n                        \"iteration\": i,\r\n                        \"parentArray\": indexToSearch,\r\n                    }\r\n                    return foundItem;\r\n                } else if (Object.prototype.hasOwnProperty.call(indexToSearch[i], \"items\") && indexToSearch[i].items.length > 0) {\r\n                    return this.recursiveSingularSearch(uuid, indexToSearch[i].items);\r\n                }\r\n            }\r\n        },\r\n    }\r\n};\r\n</script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemIterator.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemIterator.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ItemIterator.vue?vue&type=template&id=366e0b2f&\"\nimport script from \"./ItemIterator.vue?vue&type=script&lang=js&\"\nexport * from \"./ItemIterator.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VItemGroup } from 'vuetify/lib/components/VItemGroup';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListGroup } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VContainer,VIcon,VItemGroup,VList,VListGroup,VListItem,VListItemAction,VListItemContent,VListItemSubtitle,VListItemTitle,VMenu})\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=07483036&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VAppBarNavIcon } from 'vuetify/lib/components/VAppBar';\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VContent } from 'vuetify/lib/components/VContent';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemGroup } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSlider } from 'vuetify/lib/components/VSlider';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VApp,VAppBar,VAppBarNavIcon,VBadge,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VContent,VDialog,VForm,VIcon,VList,VListItem,VListItemAction,VListItemContent,VListItemGroup,VListItemIcon,VListItemSubtitle,VListItemTitle,VMenu,VNavigationDrawer,VSelect,VSlider,VSpacer,VTextField,VToolbarTitle})\n","/*\r\n    vuetify.js\r\n\r\n    Created by Kalila L. on 7 Apr 2020\r\n    Copyright 2020 Vircadia and contributors.\r\n    \r\n    Distributed under the Apache License, Version 2.0.\r\n    See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html\r\n*/\r\n\r\nimport Vue from 'vue';\r\nimport Vuetify from 'vuetify/lib';\r\n\r\nVue.use(Vuetify);\r\n\r\nexport default new Vuetify({\r\n});\r\n","/*\r\n    store.js\r\n\r\n    Created by Kalila L. on 16 Apr 2020.\r\n    Copyright 2020 Vircadia and contributors.\r\n    \r\n    Distributed under the Apache License, Version 2.0.\r\n    See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html\r\n*/\r\n\r\nimport Vue from 'vue';\r\nimport Vuex from 'vuex';\r\n\r\nVue.use(Vuex);\r\n\r\nexport const store = new Vuex.Store({\r\n    devtools: true,\r\n    state: {\r\n        items: [\r\n            // This is test data and is primarily used for in browser development.\r\n            {\r\n                \"type\": \"script\",\r\n                \"name\": \"VRGrabScale\",\r\n                \"url\": \"https://gooawefaweawfgle.com/vr.js\",\r\n                \"folder\": \"No Folder\",\r\n                \"uuid\": \"54254354353\"\r\n            },\r\n            {\r\n                \"name\": \"Test Folder\",\r\n                \"folder\": \"No Folder\",\r\n                \"items\": [\r\n                    {\r\n                        \"name\": \"inception1\",\r\n                        \"folder\": \"Test Folder\",\r\n                        \"items\": [\r\n                            {\r\n                                \"name\": \"inception2\",\r\n                                \"folder\": \"Test Folder\",\r\n                                \"items\": [\r\n                                    {\r\n                                        \"type\": \"script\",\r\n                                        \"name\": \"itemincepted\",\r\n                                        \"url\": \"https://googfdafsgaergale.com/vr.js\",\r\n                                        \"folder\": \"FolderWithinAFolder\",\r\n                                        \"uuid\": \"hkjkjhkjk\",\r\n                                    },\r\n                                ],\r\n                                \"uuid\": \"adsfa32\"\r\n                            },\r\n                        ],\r\n                        \"uuid\": \"s4g4sg\"\r\n                    },\r\n                ],\r\n                \"uuid\": \"sdfsdf\",\r\n            },\r\n            {\r\n                \"type\": \"script\",\r\n                \"name\": \"VRGrabScale\",\r\n                \"url\": \"https://googfdafsgaergale.com/vr.js\",\r\n                \"folder\": \"No Folder\",\r\n                \"uuid\": \"54hgfhgf254354353\",\r\n            },\r\n            {\r\n                \"type\": \"script\",\r\n                \"name\": \"TEST\",\r\n                \"url\": \"https://gooadfdagle.com/vr.js\",\r\n                \"folder\": \"No Folder\",\r\n                \"uuid\": \"542rfwat4t5fsddf4354353\",\r\n            },\r\n            {\r\n                \"type\": \"json\",\r\n                \"name\": \"TESTJSON\",\r\n                \"url\": \"https://gooadfdagle.com/vr.json\",\r\n                \"folder\": \"No Folder\",\r\n                \"uuid\": \"542rfwat4t54354353\",\r\n            },\r\n            {\r\n                \"type\": \"script\",\r\n                \"name\": \"TESTLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG\",\r\n                \"url\": \"https://googfdaffle.com/vrLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG.js\",\r\n                \"folder\": \"No Folder\",\r\n                \"uuid\": \"5425ggsrg45354353\",\r\n            },\r\n            {\r\n                \"type\": \"whatttype\",\r\n                \"name\": \"BrokenIcon\",\r\n                \"url\": \"https://googfdaffle.com/vrLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG.js\",\r\n                \"folder\": \"No Folder\",\r\n                \"uuid\": \"5425ggsrg4fdaffdff535asdasd4353\",\r\n            },\r\n            {\r\n                \"type\": \"avatar\",\r\n                \"name\": \"AVI\",\r\n                \"url\": \"https://googlfadfe.com/vr.fst\",\r\n                \"folder\": \"No Folder\",\r\n                \"uuid\": \"542gregg45s3g4354353\",\r\n            },\r\n            {\r\n                \"type\": \"avatar\",\r\n                \"name\": \"AVI\",\r\n                \"url\": \"https://googlefdaf.com/vr.fst\",\r\n                \"folder\": \"No Folder\",\r\n                \"uuid\": \"5420798-087-54354353\",\r\n            },\r\n            {\r\n                \"type\": \"model\",\r\n                \"name\": \"3D MODEL\",\r\n                \"url\": \"https://googlee.com/vr.fbx\",\r\n                \"folder\": \"No Folder\",\r\n                \"uuid\": \"54254354980-7667jt353\",\r\n            },\r\n            {\r\n                \"type\": \"place\",\r\n                \"name\": \"PLACE DOMAIN\",\r\n                \"url\": \"https://googleee.com/vr.fbx\",\r\n                \"folder\": \"No Folder\",\r\n                \"uuid\": \"542543sg45s4gg54353\",\r\n            },\r\n        ],\r\n        settings: {\r\n            \"displayDensity\": {\r\n                \"size\": 1,\r\n                \"labels\": [\r\n                    \"List\",\r\n                    \"Compact\",\r\n                    \"Large\",\r\n                ],\r\n            },\r\n        },\r\n        iconType: {\r\n            \"SCRIPT\": {\r\n                \"icon\": \"mdi-code-tags\",\r\n                \"color\": \"red\",\r\n            },\r\n            \"MODEL\": {\r\n                \"icon\": \"mdi-video-3d\",\r\n                \"color\": \"green\",\r\n            },\r\n            \"AVATAR\": {\r\n                \"icon\": \"mdi-account-convert\",\r\n                \"color\": \"purple\",\r\n            },\r\n            \"PLACE\": {\r\n                \"icon\": \"mdi-earth\",\r\n                \"color\": \"#0097A7\", // cyan darken-2\r\n            },\r\n            \"JSON\": {\r\n                \"icon\": \"mdi-inbox-multiple\",\r\n                \"color\": \"#37474F\", // blue-grey darken-3\r\n            },\r\n            \"UNKNOWN\": {\r\n                \"icon\": \"mdi-help\",\r\n                \"color\": \"grey\",\r\n            }\r\n        },\r\n        supportedItemTypes: [\r\n            \"SCRIPT\",\r\n            \"MODEL\",\r\n            \"AVATAR\",\r\n            \"PLACE\",\r\n            \"JSON\",\r\n            \"UNKNOWN\",\r\n        ],\r\n        removeDialog: {\r\n            show: false,\r\n            uuid: null,\r\n        },\r\n        removeFolderDialog: {\r\n            show: false,\r\n            uuid: null,\r\n        },\r\n        createFolderDialog: {\r\n            show: false,\r\n            valid: false,\r\n            data: {\r\n                \"name\": null,\r\n            },\r\n        },\r\n        addDialog: {\r\n            show: false,\r\n            valid: false,\r\n            data: {\r\n                \"name\": null,\r\n                \"folder\": null,\r\n                \"url\": null,\r\n            },\r\n        },\r\n        editDialog: {\r\n            show: false,\r\n            valid: false,\r\n            uuid: null, //\r\n            data: {\r\n                \"type\": null,\r\n                \"name\": null,\r\n                \"url\": null,\r\n                \"folder\": null,\r\n            },\r\n        },\r\n        editFolderDialog: {\r\n            show: false,\r\n            valid: false,\r\n            uuid: null, //\r\n            data: {\r\n                \"name\": null,\r\n                \"folder\": null,\r\n            },\r\n        },\r\n        receiveDialog: {\r\n            show: false,\r\n            valid: false,\r\n            data: {\r\n                \"userUUID\": null,\r\n                \"userDisplayName\": null,\r\n                \"name\": null,\r\n                \"folder\": null,\r\n                \"type\": null,\r\n                \"url\": null,\r\n            },\r\n        },\r\n        shareDialog: {\r\n            show: false,\r\n            valid: false,\r\n            data: {\r\n                \"uuid\": null, // UUID of the item you want to share. THIS IS THE KEY.\r\n                \"url\": null, // The item you want to share.\r\n                \"recipient\": null,\r\n            }\r\n        },\r\n    },\r\n    mutations: {\r\n        mutate (state, payload) {\r\n            state[payload.property] = payload.with;\r\n            // console.info(\"Payload:\", payload.property, \"with:\", payload.with, \"state is now:\", this.state);\r\n        },\r\n        sortTopInventory (state, payload) {\r\n            let { items } = state;\r\n            \r\n            if (payload.sort === \"az\") {\r\n                state.items.sort(function(a, b) {\r\n                    var nameA = a.name.toUpperCase(); // ignore upper and lowercase\r\n                    var nameB = b.name.toUpperCase(); // ignore upper and lowercase\r\n                    if (nameA < nameB) {\r\n                        return -1;\r\n                    }\r\n                    if (nameA > nameB) {\r\n                        return 1;\r\n                    }\r\n    \r\n                    // names must be equal\r\n                    return 0;\r\n                });\r\n            } \r\n            \r\n            if (payload.sort === \"za\") {\r\n                state.items.sort(function(a, b) {\r\n                    var nameA = a.name.toUpperCase(); // ignore upper and lowercase\r\n                    var nameB = b.name.toUpperCase(); // ignore upper and lowercase\r\n                    if (nameA > nameB) {\r\n                        return -1;\r\n                    }\r\n                    if (nameA < nameB) {\r\n                        return 1;\r\n                    }\r\n    \r\n                    // names must be equal\r\n                    return 0;\r\n                });\r\n            }\r\n            \r\n            Vue.set(state,'items', items);\r\n        },\r\n        pushToItems (state, payload) {\r\n            let { items } = state;\r\n            items.push(payload);\r\n            \r\n            Vue.set(state,'items', items);\r\n        },\r\n        moveFolder (state, payload) {\r\n            let { items } = state;\r\n            \r\n            if (payload.parentFolderUUID === \"top\") {\r\n                payload.findFolder.returnedItem.folder = \"No Folder\";\r\n                // console.info(\"Going to push...\", payload.findFolder.returnedItem);\r\n                // console.info(\"Containing these items...\", payload.findFolder.returnedItem.items);\r\n\r\n                items.push(payload.findFolder.returnedItem);\r\n                Vue.set(state, 'items', items);\r\n                                \r\n            } else if (payload.findParentFolder) {                \r\n                // console.info(\"Going to push...\", payload.findFolder.returnedItem);\r\n                // console.info(\"Containing these items...\", payload.findFolder.returnedItem.items);\r\n                // console.info(\"Into...\", payload.findParentFolder.returnedItem);\r\n\r\n                payload.findFolder.returnedItem.folder = payload.findParentFolder.name;\r\n                payload.findParentFolder.returnedItem.items.push(payload.findFolder.returnedItem);\r\n                Vue.set(state,'items', items);\r\n            }\r\n        },\r\n        moveItem (state, payload) {\r\n            let { items } = state;\r\n            \r\n            if (payload.parentFolderUUID === \"top\") {\r\n                payload.findItem.returnedItem.folder = \"No Folder\";\r\n                // console.info(\"Going to push...\", payload.findFolder.returnedItem);\r\n                // console.info(\"Containing these items...\", payload.findFolder.returnedItem.items);\r\n\r\n                items.push(payload.findItem.returnedItem);\r\n                Vue.set(state,'items', items);\r\n                                \r\n            } else if (payload.findParentFolder) {                \r\n                // console.info(\"Going to push...\", payload.findFolder.returnedItem);\r\n                // console.info(\"Containing these items...\", payload.findFolder.returnedItem.items);\r\n                // console.info(\"Into...\", payload.findParentFolder.returnedItem);\r\n\r\n                payload.findItem.returnedItem.folder = payload.findParentFolder.name;\r\n                payload.findParentFolder.returnedItem.items.push(payload.findItem.returnedItem);\r\n                Vue.set(state,'items', items);\r\n            }\r\n        }\r\n    }\r\n})\r\n","/*\r\n    main.js\r\n\r\n    Created by Kalila L. on 7 Apr 2020\r\n    Copyright 2020 Vircadia and contributors.\r\n    \r\n    Distributed under the Apache License, Version 2.0.\r\n    See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html\r\n*/\r\n\r\nimport Vue from 'vue'\r\nimport App from './App.vue'\r\nimport vuetify from './plugins/vuetify';\r\nimport { store } from './plugins/store';\r\n\r\nVue.config.productionTip = false;\r\n\r\nwindow.vm = new Vue({\r\n    vuetify,\r\n    store,\r\n    render: h => h(App)\r\n}).$mount('#app');\r\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/scripts/system/inventory/dist/js/chunk-vendors.a0f21a27.js b/scripts/system/inventory/dist/js/chunk-vendors.a0f21a27.js
new file mode 100644
index 0000000000..82d8c35668
--- /dev/null
+++ b/scripts/system/inventory/dist/js/chunk-vendors.a0f21a27.js
@@ -0,0 +1,21 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-vendors"],{"00ee":function(t,e,n){var i=n("b622"),r=i("toStringTag"),o={};o[r]="z",t.exports="[object z]"===String(o)},"0366":function(t,e,n){var i=n("1c0b");t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},"0481":function(t,e,n){"use strict";var i=n("23e7"),r=n("a2bf"),o=n("7b0b"),a=n("50c4"),s=n("a691"),c=n("65f0");i({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=o(this),n=a(e.length),i=c(e,0);return i.length=r(i,e,e,n,0,void 0===t?1:s(t)),i}})},"0538":function(t,e,n){"use strict";var i=n("1c0b"),r=n("861d"),o=[].slice,a={},s=function(t,e,n){if(!(e in a)){for(var i=[],r=0;r<e;r++)i[r]="a["+r+"]";a[e]=Function("C,a","return new C("+i.join(",")+")")}return a[e](t,n)};t.exports=Function.bind||function(t){var e=i(this),n=o.call(arguments,1),a=function(){var i=n.concat(o.call(arguments));return this instanceof a?s(e,i.length,i):e.apply(t,i)};return r(e.prototype)&&(a.prototype=e.prototype),a}},"057f":function(t,e,n){var i=n("fc6a"),r=n("241c").f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&"[object Window]"==o.call(t)?s(t):r(i(t))}},"06c5":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));n("a630"),n("fb6a"),n("b0c0"),n("d3b7"),n("25f0"),n("3ca3");var i=n("6b75");function r(t,e){if(t){if("string"===typeof t)return Object(i["a"])(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Object(i["a"])(t,e):void 0}}},"06cf":function(t,e,n){var i=n("83ab"),r=n("d1e7"),o=n("5c6c"),a=n("fc6a"),s=n("c04e"),c=n("5135"),l=n("0cfb"),u=Object.getOwnPropertyDescriptor;e.f=i?u:function(t,e){if(t=a(t),e=s(e,!0),l)try{return u(t,e)}catch(n){}if(c(t,e))return o(!r.f.call(t,e),t[e])}},"0789":function(t,e,n){"use strict";n.d(e,"c",(function(){return u})),n.d(e,"d",(function(){return h})),n.d(e,"e",(function(){return f})),n.d(e,"a",(function(){return d})),n.d(e,"b",(function(){return p}));n("99af");var i=n("d9f7");function r(){for(var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return(t=Array()).concat.apply(t,[e].concat(i))}function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top center 0",n=arguments.length>2?arguments[2]:void 0;return{name:t,functional:!0,props:{group:{type:Boolean,default:!1},hideOnLeave:{type:Boolean,default:!1},leaveAbsolute:{type:Boolean,default:!1},mode:{type:String,default:n},origin:{type:String,default:e}},render:function(e,n){var o="transition".concat(n.props.group?"-group":""),a={props:{name:t,mode:n.props.mode},on:{beforeEnter:function(t){t.style.transformOrigin=n.props.origin,t.style.webkitTransformOrigin=n.props.origin}}};return n.props.leaveAbsolute&&(a.on.leave=r(a.on.leave,(function(t){return t.style.position="absolute"}))),n.props.hideOnLeave&&(a.on.leave=r(a.on.leave,(function(t){return t.style.display="none"}))),e(o,Object(i["a"])(n.data,a),n.children)}}}function a(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"in-out";return{name:t,functional:!0,props:{mode:{type:String,default:n}},render:function(n,r){return n("transition",Object(i["a"])(r.data,{props:{name:t},on:e}),r.children)}}}var s=n("ade3"),c=n("80d2"),l=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e?"width":"height",i="offset".concat(Object(c["y"])(n));return{beforeEnter:function(t){t._parent=t.parentNode,t._initialStyle=Object(s["a"])({transition:t.style.transition,visibility:t.style.visibility,overflow:t.style.overflow},n,t.style[n])},enter:function(e){var r=e._initialStyle,o="".concat(e[i],"px");e.style.setProperty("transition","none","important"),e.style.visibility="hidden",e.style.visibility=r.visibility,e.style.overflow="hidden",e.style[n]="0",e.offsetHeight,e.style.transition=r.transition,t&&e._parent&&e._parent.classList.add(t),requestAnimationFrame((function(){e.style[n]=o}))},afterEnter:o,enterCancelled:o,leave:function(t){t._initialStyle=Object(s["a"])({transition:"",visibility:"",overflow:t.style.overflow},n,t.style[n]),t.style.overflow="hidden",t.style[n]="".concat(t[i],"px"),t.offsetHeight,requestAnimationFrame((function(){return t.style[n]="0"}))},afterLeave:r,leaveCancelled:r};function r(e){t&&e._parent&&e._parent.classList.remove(t),o(e)}function o(t){var e=t._initialStyle[n];t.style.overflow=t._initialStyle.overflow,null!=e&&(t.style[n]=e),delete t._initialStyle}},u=(o("carousel-transition"),o("carousel-reverse-transition"),o("tab-transition"),o("tab-reverse-transition"),o("menu-transition"),o("fab-transition","center center","out-in"),o("dialog-transition"),o("dialog-bottom-transition"),o("fade-transition")),h=o("scale-transition"),f=(o("scroll-x-transition"),o("scroll-x-reverse-transition"),o("scroll-y-transition"),o("scroll-y-reverse-transition"),o("slide-x-transition")),d=(o("slide-x-reverse-transition"),o("slide-y-transition"),o("slide-y-reverse-transition"),a("expand-transition",l())),p=a("expand-x-transition",l("",!0))},"07ac":function(t,e,n){var i=n("23e7"),r=n("6f53").values;i({target:"Object",stat:!0},{values:function(t){return r(t)}})},"0bc6":function(t,e,n){},"0cfb":function(t,e,n){var i=n("83ab"),r=n("d039"),o=n("cc12");t.exports=!i&&!r((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},"0d3b":function(t,e,n){var i=n("d039"),r=n("b622"),o=n("c430"),a=r("iterator");t.exports=!i((function(){var t=new URL("b?a=1&b=2&c=3","http://a"),e=t.searchParams,n="";return t.pathname="c%20d",e.forEach((function(t,i){e["delete"]("b"),n+=i+t})),o&&!t.toJSON||!e.sort||"http://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[a]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==n||"x"!==new URL("http://x",void 0).host}))},"10d2":function(t,e,n){"use strict";var i=n("8dd9");e["a"]=i["a"]},1148:function(t,e,n){"use strict";var i=n("a691"),r=n("1d80");t.exports="".repeat||function(t){var e=String(r(this)),n="",o=i(t);if(o<0||o==1/0)throw RangeError("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(e+=e))1&o&&(n+=e);return n}},1276:function(t,e,n){"use strict";var i=n("d784"),r=n("44e7"),o=n("825a"),a=n("1d80"),s=n("4840"),c=n("8aa5"),l=n("50c4"),u=n("14c3"),h=n("9263"),f=n("d039"),d=[].push,p=Math.min,v=4294967295,m=!f((function(){return!RegExp(v,"y")}));i("split",2,(function(t,e,n){var i;return i="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var i=String(a(this)),o=void 0===n?v:n>>>0;if(0===o)return[];if(void 0===t)return[i];if(!r(t))return e.call(i,t,o);var s,c,l,u=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),p=0,m=new RegExp(t.source,f+"g");while(s=h.call(m,i)){if(c=m.lastIndex,c>p&&(u.push(i.slice(p,s.index)),s.length>1&&s.index<i.length&&d.apply(u,s.slice(1)),l=s[0].length,p=c,u.length>=o))break;m.lastIndex===s.index&&m.lastIndex++}return p===i.length?!l&&m.test("")||u.push(""):u.push(i.slice(p)),u.length>o?u.slice(0,o):u}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:e.call(this,t,n)}:e,[function(e,n){var r=a(this),o=void 0==e?void 0:e[t];return void 0!==o?o.call(e,r,n):i.call(String(r),e,n)},function(t,r){var a=n(i,t,this,r,i!==e);if(a.done)return a.value;var h=o(t),f=String(this),d=s(h,RegExp),g=h.unicode,b=(h.ignoreCase?"i":"")+(h.multiline?"m":"")+(h.unicode?"u":"")+(m?"y":"g"),y=new d(m?h:"^(?:"+h.source+")",b),w=void 0===r?v:r>>>0;if(0===w)return[];if(0===f.length)return null===u(y,f)?[f]:[];var x=0,O=0,_=[];while(O<f.length){y.lastIndex=m?O:0;var S,C=u(y,m?f:f.slice(O));if(null===C||(S=p(l(y.lastIndex+(m?0:O)),f.length))===x)O=c(f,O,g);else{if(_.push(f.slice(x,O)),_.length===w)return _;for(var k=1;k<=C.length-1;k++)if(_.push(C[k]),_.length===w)return _;O=x=S}}return _.push(f.slice(x)),_}]}),!m)},"129f":function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},"132d":function(t,e,n){"use strict";n("7db0"),n("caad"),n("c975"),n("fb6a"),n("45fc"),n("a9e3"),n("2532"),n("498a"),n("c96a");var i,r=n("5530"),o=(n("4804"),n("7e2b")),a=n("a9ad"),s=n("af2b"),c=n("7560"),l=n("80d2"),u=n("2b0e"),h=n("58df");function f(t){return["fas","far","fal","fab","fad"].some((function(e){return t.includes(e)}))}function d(t){return/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4}(function(t){t["xSmall"]="12px",t["small"]="16px",t["default"]="24px",t["medium"]="28px",t["large"]="36px",t["xLarge"]="40px"})(i||(i={}));var p=Object(h["a"])(o["a"],a["a"],s["a"],c["a"]).extend({name:"v-icon",props:{dense:Boolean,disabled:Boolean,left:Boolean,right:Boolean,size:[Number,String],tag:{type:String,required:!1,default:"i"}},computed:{medium:function(){return!1},hasClickListener:function(){return Boolean(this.listeners$.click||this.listeners$["!click"])}},methods:{getIcon:function(){var t="";return this.$slots.default&&(t=this.$slots.default[0].text.trim()),Object(l["x"])(this,t)},getSize:function(){var t={xSmall:this.xSmall,small:this.small,medium:this.medium,large:this.large,xLarge:this.xLarge},e=Object(l["t"])(t).find((function(e){return t[e]}));return e&&i[e]||Object(l["f"])(this.size)},getDefaultData:function(){var t={staticClass:"v-icon notranslate",class:{"v-icon--disabled":this.disabled,"v-icon--left":this.left,"v-icon--link":this.hasClickListener,"v-icon--right":this.right,"v-icon--dense":this.dense},attrs:Object(r["a"])({"aria-hidden":!this.hasClickListener,disabled:this.hasClickListener&&this.disabled,type:this.hasClickListener?"button":void 0},this.attrs$),on:this.listeners$};return t},applyColors:function(t){t.class=Object(r["a"])(Object(r["a"])({},t.class),this.themeClasses),this.setTextColor(this.color,t)},renderFontIcon:function(t,e){var n=[],i=this.getDefaultData(),r="material-icons",o=t.indexOf("-"),a=o<=-1;a?n.push(t):(r=t.slice(0,o),f(r)&&(r="")),i.class[r]=!0,i.class[t]=!a;var s=this.getSize();return s&&(i.style={fontSize:s}),this.applyColors(i),e(this.hasClickListener?"button":this.tag,i,n)},renderSvgIcon:function(t,e){var n=this.getSize(),i=Object(r["a"])(Object(r["a"])({},this.getDefaultData()),{},{style:n?{fontSize:n,height:n,width:n}:void 0});i.class["v-icon--svg"]=!0,this.applyColors(i);var o={attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",height:n||"24",width:n||"24",role:"img","aria-hidden":!0}};return e(this.hasClickListener?"button":"span",i,[e("svg",o,[e("path",{attrs:{d:t}})])])},renderSvgIconComponent:function(t,e){var n=this.getDefaultData();n.class["v-icon--is-component"]=!0;var i=this.getSize();i&&(n.style={fontSize:i,height:i,width:i}),this.applyColors(n);var r=t.component;return n.props=t.props,n.nativeOn=n.on,e(r,n)}},render:function(t){var e=this.getIcon();return"string"===typeof e?d(e)?this.renderSvgIcon(e,t):this.renderFontIcon(e,t):this.renderSvgIconComponent(e,t)}});e["a"]=u["a"].extend({name:"v-icon",$_wrapperFor:p,functional:!0,render:function(t,e){var n=e.data,i=e.children,r="";return n.domProps&&(r=n.domProps.textContent||n.domProps.innerHTML||r,delete n.domProps.textContent,delete n.domProps.innerHTML),t(p,n,r?[r]:i)}})},"13d5":function(t,e,n){"use strict";var i=n("23e7"),r=n("d58f").left,o=n("a640"),a=n("ae40"),s=o("reduce"),c=a("reduce",{1:0});i({target:"Array",proto:!0,forced:!s||!c},{reduce:function(t){return r(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(t,e,n){var i=n("c6b6"),r=n("9263");t.exports=function(t,e){var n=t.exec;if("function"===typeof n){var o=n.call(t,e);if("object"!==typeof o)throw TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==i(t))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(t,e)}},"159b":function(t,e,n){var i=n("da84"),r=n("fdbc"),o=n("17c2"),a=n("9112");for(var s in r){var c=i[s],l=c&&c.prototype;if(l&&l.forEach!==o)try{a(l,"forEach",o)}catch(u){l.forEach=o}}},"15fd":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));n("a4d3"),n("c975"),n("b64b");function i(t,e){if(null==t)return{};var n,i,r={},o=Object.keys(t);for(i=0;i<o.length;i++)n=o[i],e.indexOf(n)>=0||(r[n]=t[n]);return r}function r(t,e){if(null==t)return{};var n,r,o=i(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r<a.length;r++)n=a[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}},"166a":function(t,e,n){},"169a":function(t,e,n){"use strict";n("7db0"),n("caad"),n("45fc"),n("a9e3"),n("2532"),n("498a");var i=n("5530"),r=n("2909"),o=n("ade3"),a=(n("368e"),n("480e")),s=n("4ad4"),c=n("b848"),l=n("75eb"),u=n("e707"),h=n("e4d3"),f=n("21be"),d=n("f2e7"),p=n("a293"),v=n("58df"),m=n("d9bd"),g=n("80d2"),b=Object(v["a"])(s["a"],c["a"],l["a"],u["a"],h["a"],f["a"],d["a"]);e["a"]=b.extend({name:"v-dialog",directives:{ClickOutside:p["a"]},props:{dark:Boolean,disabled:Boolean,fullscreen:Boolean,light:Boolean,maxWidth:{type:[String,Number],default:"none"},noClickAnimation:Boolean,origin:{type:String,default:"center center"},persistent:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,transition:{type:[String,Boolean],default:"dialog-transition"},width:{type:[String,Number],default:"auto"}},data:function(){return{activatedBy:null,animate:!1,animateTimeout:-1,isActive:!!this.value,stackMinZIndex:200}},computed:{classes:function(){var t;return t={},Object(o["a"])(t,"v-dialog ".concat(this.contentClass).trim(),!0),Object(o["a"])(t,"v-dialog--active",this.isActive),Object(o["a"])(t,"v-dialog--persistent",this.persistent),Object(o["a"])(t,"v-dialog--fullscreen",this.fullscreen),Object(o["a"])(t,"v-dialog--scrollable",this.scrollable),Object(o["a"])(t,"v-dialog--animated",this.animate),t},contentClasses:function(){return{"v-dialog__content":!0,"v-dialog__content--active":this.isActive}},hasActivator:function(){return Boolean(!!this.$slots.activator||!!this.$scopedSlots.activator)}},watch:{isActive:function(t){t?(this.show(),this.hideScroll()):(this.removeOverlay(),this.unbind())},fullscreen:function(t){this.isActive&&(t?(this.hideScroll(),this.removeOverlay(!1)):(this.showScroll(),this.genOverlay()))}},created:function(){this.$attrs.hasOwnProperty("full-width")&&Object(m["e"])("full-width",this)},beforeMount:function(){var t=this;this.$nextTick((function(){t.isBooted=t.isActive,t.isActive&&t.show()}))},beforeDestroy:function(){"undefined"!==typeof window&&this.unbind()},methods:{animateClick:function(){var t=this;this.animate=!1,this.$nextTick((function(){t.animate=!0,window.clearTimeout(t.animateTimeout),t.animateTimeout=window.setTimeout((function(){return t.animate=!1}),150)}))},closeConditional:function(t){var e=t.target;return!(this._isDestroyed||!this.isActive||this.$refs.content.contains(e)||this.overlay&&e&&!this.overlay.$el.contains(e))&&this.activeZIndex>=this.getMaxZIndex()},hideScroll:function(){this.fullscreen?document.documentElement.classList.add("overflow-y-hidden"):u["a"].options.methods.hideScroll.call(this)},show:function(){var t=this;!this.fullscreen&&!this.hideOverlay&&this.genOverlay(),this.$nextTick((function(){t.$refs.content.focus(),t.bind()}))},bind:function(){window.addEventListener("focusin",this.onFocusin)},unbind:function(){window.removeEventListener("focusin",this.onFocusin)},onClickOutside:function(t){this.$emit("click:outside",t),this.persistent?this.noClickAnimation||this.animateClick():this.isActive=!1},onKeydown:function(t){if(t.keyCode===g["s"].esc&&!this.getOpenDependents().length)if(this.persistent)this.noClickAnimation||this.animateClick();else{this.isActive=!1;var e=this.getActivator();this.$nextTick((function(){return e&&e.focus()}))}this.$emit("keydown",t)},onFocusin:function(t){if(t&&this.retainFocus){var e=t.target;if(e&&![document,this.$refs.content].includes(e)&&!this.$refs.content.contains(e)&&this.activeZIndex>=this.getMaxZIndex()&&!this.getOpenDependentElements().some((function(t){return t.contains(e)}))){var n=this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),i=Object(r["a"])(n).find((function(t){return!t.hasAttribute("disabled")}));i&&i.focus()}}},genContent:function(){var t=this;return this.showLazyContent((function(){return[t.$createElement(a["a"],{props:{root:!0,light:t.light,dark:t.dark}},[t.$createElement("div",{class:t.contentClasses,attrs:Object(i["a"])({role:"document",tabindex:t.isActive?0:void 0},t.getScopeIdAttrs()),on:{keydown:t.onKeydown},style:{zIndex:t.activeZIndex},ref:"content"},[t.genTransition()])])]}))},genTransition:function(){var t=this.genInnerContent();return this.transition?this.$createElement("transition",{props:{name:this.transition,origin:this.origin,appear:!0}},[t]):t},genInnerContent:function(){var t={class:this.classes,ref:"dialog",directives:[{name:"click-outside",value:{handler:this.onClickOutside,closeConditional:this.closeConditional,include:this.getOpenDependentElements}},{name:"show",value:this.isActive}],style:{transformOrigin:this.origin}};return this.fullscreen||(t.style=Object(i["a"])(Object(i["a"])({},t.style),{},{maxWidth:"none"===this.maxWidth?void 0:Object(g["f"])(this.maxWidth),width:"auto"===this.width?void 0:Object(g["f"])(this.width)})),this.$createElement("div",t,this.getContentSlot())}},render:function(t){return t("div",{staticClass:"v-dialog__container",class:{"v-dialog__container--attached":""===this.attach||!0===this.attach||"attach"===this.attach},attrs:{role:"dialog"}},[this.genActivator(),this.genContent()])}})},"16b7":function(t,e,n){"use strict";n("a9e3");var i=n("2b0e");e["a"]=i["a"].extend().extend({name:"delayable",props:{openDelay:{type:[Number,String],default:0},closeDelay:{type:[Number,String],default:0}},data:function(){return{openTimeout:void 0,closeTimeout:void 0}},methods:{clearDelay:function(){clearTimeout(this.openTimeout),clearTimeout(this.closeTimeout)},runDelay:function(t,e){var n=this;this.clearDelay();var i=parseInt(this["".concat(t,"Delay")],10);this["".concat(t,"Timeout")]=setTimeout(e||function(){n.isActive={open:!0,close:!1}[t]},i)}}})},"17c2":function(t,e,n){"use strict";var i=n("b727").forEach,r=n("a640"),o=n("ae40"),a=r("forEach"),s=o("forEach");t.exports=a&&s?[].forEach:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}},1800:function(t,e,n){"use strict";n("4de4");var i=n("2b0e");e["a"]=i["a"].extend({name:"v-list-item-action",functional:!0,render:function(t,e){var n=e.data,i=e.children,r=void 0===i?[]:i;n.staticClass=n.staticClass?"v-list-item__action ".concat(n.staticClass):"v-list-item__action";var o=r.filter((function(t){return!1===t.isComment&&" "!==t.text}));return o.length>1&&(n.staticClass+=" v-list-item__action--stack"),t("div",n,r)}})},"18a5":function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),o=n("af03");i({target:"String",proto:!0,forced:o("anchor")},{anchor:function(t){return r(this,"a","name",t)}})},"19aa":function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return t}},"1b2c":function(t,e,n){},"1baa":function(t,e,n){"use strict";var i=n("5530"),r=(n("899c"),n("604c")),o=n("a9ad"),a=n("58df");e["a"]=Object(a["a"])(r["a"],o["a"]).extend({name:"v-list-item-group",provide:function(){return{isInGroup:!0,listItemGroup:this}},computed:{classes:function(){return Object(i["a"])(Object(i["a"])({},r["a"].options.computed.classes.call(this)),{},{"v-list-item-group":!0})}},methods:{genData:function(){return this.setTextColor(this.color,Object(i["a"])(Object(i["a"])({},r["a"].options.methods.genData.call(this)),{},{attrs:{role:"listbox"}}))}}})},"1be4":function(t,e,n){var i=n("d066");t.exports=i("document","documentElement")},"1c0b":function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},"1c7e":function(t,e,n){var i=n("b622"),r=i("iterator"),o=!1;try{var a=0,s={next:function(){return{done:!!a++}},return:function(){o=!0}};s[r]=function(){return this},Array.from(s,(function(){throw 2}))}catch(c){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(c){}return n}},"1c87":function(t,e,n){"use strict";n("99af"),n("ac1f"),n("5319"),n("498a"),n("9911");var i=n("ade3"),r=n("5530"),o=n("2b0e"),a=n("5607"),s=n("80d2");e["a"]=o["a"].extend({name:"routable",directives:{Ripple:a["a"]},props:{activeClass:String,append:Boolean,disabled:Boolean,exact:{type:Boolean,default:void 0},exactActiveClass:String,link:Boolean,href:[String,Object],to:[String,Object],nuxt:Boolean,replace:Boolean,ripple:{type:[Boolean,Object],default:null},tag:String,target:String},data:function(){return{isActive:!1,proxyClass:""}},computed:{classes:function(){var t={};return this.to||(this.activeClass&&(t[this.activeClass]=this.isActive),this.proxyClass&&(t[this.proxyClass]=this.isActive)),t},computedRipple:function(){return null!=this.ripple?this.ripple:!this.disabled&&this.isClickable},isClickable:function(){return!this.disabled&&Boolean(this.isLink||this.$listeners.click||this.$listeners["!click"]||this.$attrs.tabindex)},isLink:function(){return this.to||this.href||this.link},styles:function(){return{}}},watch:{$route:"onRouteChange"},methods:{click:function(t){this.$emit("click",t)},generateRouteLink:function(){var t,e,n=this.exact,o=(t={attrs:{tabindex:"tabindex"in this.$attrs?this.$attrs.tabindex:void 0},class:this.classes,style:this.styles,props:{},directives:[{name:"ripple",value:this.computedRipple}]},Object(i["a"])(t,this.to?"nativeOn":"on",Object(r["a"])(Object(r["a"])({},this.$listeners),{},{click:this.click})),Object(i["a"])(t,"ref","link"),t);if("undefined"===typeof this.exact&&(n="/"===this.to||this.to===Object(this.to)&&"/"===this.to.path),this.to){var a=this.activeClass,s=this.exactActiveClass||a;this.proxyClass&&(a="".concat(a," ").concat(this.proxyClass).trim(),s="".concat(s," ").concat(this.proxyClass).trim()),e=this.nuxt?"nuxt-link":"router-link",Object.assign(o.props,{to:this.to,exact:n,activeClass:a,exactActiveClass:s,append:this.append,replace:this.replace})}else e=(this.href?"a":this.tag)||"div","a"===e&&this.href&&(o.attrs.href=this.href);return this.target&&(o.attrs.target=this.target),{tag:e,data:o}},onRouteChange:function(){var t=this;if(this.to&&this.$refs.link&&this.$route){var e="".concat(this.activeClass," ").concat(this.proxyClass||"").trim(),n="_vnode.data.class.".concat(e);this.$nextTick((function(){Object(s["m"])(t.$refs.link,n)&&t.toggle()}))}},toggle:function(){}}})},"1cdc":function(t,e,n){var i=n("342f");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(i)},"1d80":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},"1dde":function(t,e,n){var i=n("d039"),r=n("b622"),o=n("2d00"),a=r("species");t.exports=function(t){return o>=51||!i((function(){var e=[],n=e.constructor={};return n[a]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},"20f6":function(t,e,n){},"21be":function(t,e,n){"use strict";n("99af"),n("caad"),n("2532");var i=n("2909"),r=n("2b0e"),o=n("80d2");e["a"]=r["a"].extend().extend({name:"stackable",data:function(){return{stackElement:null,stackExclude:null,stackMinZIndex:0,isActive:!1}},computed:{activeZIndex:function(){if("undefined"===typeof window)return 0;var t=this.stackElement||this.$refs.content,e=this.isActive?this.getMaxZIndex(this.stackExclude||[t])+2:Object(o["q"])(t);return null==e?e:parseInt(e)}},methods:{getMaxZIndex:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.$el,n=[this.stackMinZIndex,Object(o["q"])(e)],r=[].concat(Object(i["a"])(document.getElementsByClassName("v-menu__content--active")),Object(i["a"])(document.getElementsByClassName("v-dialog__content--active"))),a=0;a<r.length;a++)t.includes(r[a])||n.push(Object(o["q"])(r[a]));return Math.max.apply(Math,n)}}})},2266:function(t,e,n){var i=n("825a"),r=n("e95a"),o=n("50c4"),a=n("0366"),s=n("35a1"),c=n("9bdd"),l=function(t,e){this.stopped=t,this.result=e},u=t.exports=function(t,e,n,u,h){var f,d,p,v,m,g,b,y=a(e,n,u?2:1);if(h)f=t;else{if(d=s(t),"function"!=typeof d)throw TypeError("Target is not iterable");if(r(d)){for(p=0,v=o(t.length);v>p;p++)if(m=u?y(i(b=t[p])[0],b[1]):y(t[p]),m&&m instanceof l)return m;return new l(!1)}f=d.call(t)}g=f.next;while(!(b=g.call(f)).done)if(m=c(f,y,b.value,u),"object"==typeof m&&m&&m instanceof l)return m;return new l(!1)};u.stop=function(t){return new l(!0,t)}},"23cb":function(t,e,n){var i=n("a691"),r=Math.max,o=Math.min;t.exports=function(t,e){var n=i(t);return n<0?r(n+e,0):o(n,e)}},"23e7":function(t,e,n){var i=n("da84"),r=n("06cf").f,o=n("9112"),a=n("6eeb"),s=n("ce4e"),c=n("e893"),l=n("94ca");t.exports=function(t,e){var n,u,h,f,d,p,v=t.target,m=t.global,g=t.stat;if(u=m?i:g?i[v]||s(v,{}):(i[v]||{}).prototype,u)for(h in e){if(d=e[h],t.noTargetGet?(p=r(u,h),f=p&&p.value):f=u[h],n=l(m?h:v+(g?".":"#")+h,t.forced),!n&&void 0!==f){if(typeof d===typeof f)continue;c(d,f)}(t.sham||f&&f.sham)&&o(d,"sham",!0),a(u,h,d,t)}}},"241c":function(t,e,n){var i=n("ca84"),r=n("7839"),o=r.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,o)}},"24b2":function(t,e,n){"use strict";n("a9e3");var i=n("80d2"),r=n("2b0e");e["a"]=r["a"].extend({name:"measurable",props:{height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},computed:{measurableStyles:function(){var t={},e=Object(i["f"])(this.height),n=Object(i["f"])(this.minHeight),r=Object(i["f"])(this.minWidth),o=Object(i["f"])(this.maxHeight),a=Object(i["f"])(this.maxWidth),s=Object(i["f"])(this.width);return e&&(t.height=e),n&&(t.minHeight=n),r&&(t.minWidth=r),o&&(t.maxHeight=o),a&&(t.maxWidth=a),s&&(t.width=s),t}}})},2532:function(t,e,n){"use strict";var i=n("23e7"),r=n("5a34"),o=n("1d80"),a=n("ab13");i({target:"String",proto:!0,forced:!a("includes")},{includes:function(t){return!!~String(o(this)).indexOf(r(t),arguments.length>1?arguments[1]:void 0)}})},"25a8":function(t,e,n){},"25f0":function(t,e,n){"use strict";var i=n("6eeb"),r=n("825a"),o=n("d039"),a=n("ad6d"),s="toString",c=RegExp.prototype,l=c[s],u=o((function(){return"/a/b"!=l.call({source:"a",flags:"b"})})),h=l.name!=s;(u||h)&&i(RegExp.prototype,s,(function(){var t=r(this),e=String(t.source),n=t.flags,i=String(void 0===n&&t instanceof RegExp&&!("flags"in c)?a.call(t):n);return"/"+e+"/"+i}),{unsafe:!0})},2626:function(t,e,n){"use strict";var i=n("d066"),r=n("9bf2"),o=n("b622"),a=n("83ab"),s=o("species");t.exports=function(t){var e=i(t),n=r.f;a&&e&&!e[s]&&n(e,s,{configurable:!0,get:function(){return this}})}},2877:function(t,e,n){"use strict";function i(t,e,n,i,r,o,a,s){var c,l="function"===typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),i&&(l.functional=!0),o&&(l._scopeId="data-v-"+o),a?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},l._ssrRegister=c):r&&(c=s?function(){r.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:r),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,e){return c.call(e),u(t,e)}}else{var h=l.beforeCreate;l.beforeCreate=h?[].concat(h,c):[c]}return{exports:t,options:l}}n.d(e,"a",(function(){return i}))},2909:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var i=n("6b75");function r(t){if(Array.isArray(t))return Object(i["a"])(t)}n("a4d3"),n("e01a"),n("d28b"),n("a630"),n("d3b7"),n("3ca3"),n("ddb0");function o(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}var a=n("06c5");function s(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(t){return r(t)||o(t)||Object(a["a"])(t)||s()}},"297c":function(t,e,n){"use strict";n("a9e3");var i=n("2b0e"),r=(n("c7cd"),n("5530")),o=n("ade3"),a=(n("6ece"),n("0789")),s=n("a9ad"),c=n("fe6c"),l=n("a452"),u=n("7560"),h=n("80d2"),f=n("58df"),d=Object(f["a"])(s["a"],Object(c["b"])(["absolute","fixed","top","bottom"]),l["a"],u["a"]),p=d.extend({name:"v-progress-linear",props:{active:{type:Boolean,default:!0},backgroundColor:{type:String,default:null},backgroundOpacity:{type:[Number,String],default:null},bufferValue:{type:[Number,String],default:100},color:{type:String,default:"primary"},height:{type:[Number,String],default:4},indeterminate:Boolean,query:Boolean,reverse:Boolean,rounded:Boolean,stream:Boolean,striped:Boolean,value:{type:[Number,String],default:0}},data:function(){return{internalLazyValue:this.value||0}},computed:{__cachedBackground:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor||this.color,{staticClass:"v-progress-linear__background",style:this.backgroundStyle}))},__cachedBar:function(){return this.$createElement(this.computedTransition,[this.__cachedBarType])},__cachedBarType:function(){return this.indeterminate?this.__cachedIndeterminate:this.__cachedDeterminate},__cachedBuffer:function(){return this.$createElement("div",{staticClass:"v-progress-linear__buffer",style:this.styles})},__cachedDeterminate:function(){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__determinate",style:{width:Object(h["f"])(this.normalizedValue,"%")}}))},__cachedIndeterminate:function(){return this.$createElement("div",{staticClass:"v-progress-linear__indeterminate",class:{"v-progress-linear__indeterminate--active":this.active}},[this.genProgressBar("long"),this.genProgressBar("short")])},__cachedStream:function(){return this.stream?this.$createElement("div",this.setTextColor(this.color,{staticClass:"v-progress-linear__stream",style:{width:Object(h["f"])(100-this.normalizedBuffer,"%")}})):null},backgroundStyle:function(){var t,e=null==this.backgroundOpacity?this.backgroundColor?1:.3:parseFloat(this.backgroundOpacity);return t={opacity:e},Object(o["a"])(t,this.isReversed?"right":"left",Object(h["f"])(this.normalizedValue,"%")),Object(o["a"])(t,"width",Object(h["f"])(this.normalizedBuffer-this.normalizedValue,"%")),t},classes:function(){return Object(r["a"])({"v-progress-linear--absolute":this.absolute,"v-progress-linear--fixed":this.fixed,"v-progress-linear--query":this.query,"v-progress-linear--reactive":this.reactive,"v-progress-linear--reverse":this.isReversed,"v-progress-linear--rounded":this.rounded,"v-progress-linear--striped":this.striped},this.themeClasses)},computedTransition:function(){return this.indeterminate?a["c"]:a["e"]},isReversed:function(){return this.$vuetify.rtl!==this.reverse},normalizedBuffer:function(){return this.normalize(this.bufferValue)},normalizedValue:function(){return this.normalize(this.internalLazyValue)},reactive:function(){return Boolean(this.$listeners.change)},styles:function(){var t={};return this.active||(t.height=0),this.indeterminate||100===parseFloat(this.normalizedBuffer)||(t.width=Object(h["f"])(this.normalizedBuffer,"%")),t}},methods:{genContent:function(){var t=Object(h["o"])(this,"default",{value:this.internalLazyValue});return t?this.$createElement("div",{staticClass:"v-progress-linear__content"},t):null},genListeners:function(){var t=this.$listeners;return this.reactive&&(t.click=this.onClick),t},genProgressBar:function(t){return this.$createElement("div",this.setBackgroundColor(this.color,{staticClass:"v-progress-linear__indeterminate",class:Object(o["a"])({},t,!0)}))},onClick:function(t){if(this.reactive){var e=this.$el.getBoundingClientRect(),n=e.width;this.internalValue=t.offsetX/n*100}},normalize:function(t){return t<0?0:t>100?100:parseFloat(t)}},render:function(t){var e={staticClass:"v-progress-linear",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":this.normalizedBuffer,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,style:{bottom:this.bottom?0:void 0,height:this.active?Object(h["f"])(this.height):0,top:this.top?0:void 0},on:this.genListeners()};return t("div",e,[this.__cachedStream,this.__cachedBackground,this.__cachedBuffer,this.__cachedBar,this.genContent()])}}),v=p;e["a"]=i["a"].extend().extend({name:"loadable",props:{loading:{type:[Boolean,String],default:!1},loaderHeight:{type:[Number,String],default:2}},methods:{genProgress:function(){return!1===this.loading?null:this.$slots.progress||this.$createElement(v,{props:{absolute:!0,color:!0===this.loading||""===this.loading?this.color||"primary":this.loading,height:this.loaderHeight,indeterminate:!0}})}}})},"2a7f":function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var i=n("71d9"),r=n("80d2"),o=Object(r["h"])("v-toolbar__title"),a=Object(r["h"])("v-toolbar__items");i["a"]},"2b0e":function(t,e,n){"use strict";(function(t){
+/*!
+ * Vue.js v2.6.11
+ * (c) 2014-2019 Evan You
+ * Released under the MIT License.
+ */
+var n=Object.freeze({});function i(t){return void 0===t||null===t}function r(t){return void 0!==t&&null!==t}function o(t){return!0===t}function a(t){return!1===t}function s(t){return"string"===typeof t||"number"===typeof t||"symbol"===typeof t||"boolean"===typeof t}function c(t){return null!==t&&"object"===typeof t}var l=Object.prototype.toString;function u(t){return"[object Object]"===l.call(t)}function h(t){return"[object RegExp]"===l.call(t)}function f(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return r(t)&&"function"===typeof t.then&&"function"===typeof t.catch}function p(t){return null==t?"":Array.isArray(t)||u(t)&&t.toString===l?JSON.stringify(t,null,2):String(t)}function v(t){var e=parseFloat(t);return isNaN(e)?t:e}function m(t,e){for(var n=Object.create(null),i=t.split(","),r=0;r<i.length;r++)n[i[r]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}m("slot,component",!0);var g=m("key,ref,slot,slot-scope,is");function b(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(n,1)}}var y=Object.prototype.hasOwnProperty;function w(t,e){return y.call(t,e)}function x(t){var e=Object.create(null);return function(n){var i=e[n];return i||(e[n]=t(n))}}var O=/-(\w)/g,_=x((function(t){return t.replace(O,(function(t,e){return e?e.toUpperCase():""}))})),S=x((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),C=/\B([A-Z])/g,k=x((function(t){return t.replace(C,"-$1").toLowerCase()}));function j(t,e){function n(n){var i=arguments.length;return i?i>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function A(t,e){return t.bind(e)}var $=Function.prototype.bind?A:j;function E(t,e){e=e||0;var n=t.length-e,i=new Array(n);while(n--)i[n]=t[n+e];return i}function T(t,e){for(var n in e)t[n]=e[n];return t}function I(t){for(var e={},n=0;n<t.length;n++)t[n]&&T(e,t[n]);return e}function L(t,e,n){}var M=function(t,e,n){return!1},D=function(t){return t};function B(t,e){if(t===e)return!0;var n=c(t),i=c(e);if(!n||!i)return!n&&!i&&String(t)===String(e);try{var r=Array.isArray(t),o=Array.isArray(e);if(r&&o)return t.length===e.length&&t.every((function(t,n){return B(t,e[n])}));if(t instanceof Date&&e instanceof Date)return t.getTime()===e.getTime();if(r||o)return!1;var a=Object.keys(t),s=Object.keys(e);return a.length===s.length&&a.every((function(n){return B(t[n],e[n])}))}catch(l){return!1}}function P(t,e){for(var n=0;n<t.length;n++)if(B(t[n],e))return n;return-1}function N(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}var V="data-server-rendered",R=["component","directive","filter"],F=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],z={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:M,isReservedAttr:M,isUnknownElement:M,getTagNamespace:L,parsePlatformTagName:D,mustUseProp:M,async:!0,_lifecycleHooks:F},H=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function W(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}function U(t,e,n,i){Object.defineProperty(t,e,{value:n,enumerable:!!i,writable:!0,configurable:!0})}var Y=new RegExp("[^"+H.source+".$_\\d]");function q(t){if(!Y.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}var X,G="__proto__"in{},K="undefined"!==typeof window,Z="undefined"!==typeof WXEnvironment&&!!WXEnvironment.platform,J=Z&&WXEnvironment.platform.toLowerCase(),Q=K&&window.navigator.userAgent.toLowerCase(),tt=Q&&/msie|trident/.test(Q),et=Q&&Q.indexOf("msie 9.0")>0,nt=Q&&Q.indexOf("edge/")>0,it=(Q&&Q.indexOf("android"),Q&&/iphone|ipad|ipod|ios/.test(Q)||"ios"===J),rt=(Q&&/chrome\/\d+/.test(Q),Q&&/phantomjs/.test(Q),Q&&Q.match(/firefox\/(\d+)/)),ot={}.watch,at=!1;if(K)try{var st={};Object.defineProperty(st,"passive",{get:function(){at=!0}}),window.addEventListener("test-passive",null,st)}catch(_a){}var ct=function(){return void 0===X&&(X=!K&&!Z&&"undefined"!==typeof t&&(t["process"]&&"server"===t["process"].env.VUE_ENV)),X},lt=K&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ut(t){return"function"===typeof t&&/native code/.test(t.toString())}var ht,ft="undefined"!==typeof Symbol&&ut(Symbol)&&"undefined"!==typeof Reflect&&ut(Reflect.ownKeys);ht="undefined"!==typeof Set&&ut(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var dt=L,pt=0,vt=function(){this.id=pt++,this.subs=[]};vt.prototype.addSub=function(t){this.subs.push(t)},vt.prototype.removeSub=function(t){b(this.subs,t)},vt.prototype.depend=function(){vt.target&&vt.target.addDep(this)},vt.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e<n;e++)t[e].update()},vt.target=null;var mt=[];function gt(t){mt.push(t),vt.target=t}function bt(){mt.pop(),vt.target=mt[mt.length-1]}var yt=function(t,e,n,i,r,o,a,s){this.tag=t,this.data=e,this.children=n,this.text=i,this.elm=r,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},wt={child:{configurable:!0}};wt.child.get=function(){return this.componentInstance},Object.defineProperties(yt.prototype,wt);var xt=function(t){void 0===t&&(t="");var e=new yt;return e.text=t,e.isComment=!0,e};function Ot(t){return new yt(void 0,void 0,void 0,String(t))}function _t(t){var e=new yt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var St=Array.prototype,Ct=Object.create(St),kt=["push","pop","shift","unshift","splice","sort","reverse"];kt.forEach((function(t){var e=St[t];U(Ct,t,(function(){var n=[],i=arguments.length;while(i--)n[i]=arguments[i];var r,o=e.apply(this,n),a=this.__ob__;switch(t){case"push":case"unshift":r=n;break;case"splice":r=n.slice(2);break}return r&&a.observeArray(r),a.dep.notify(),o}))}));var jt=Object.getOwnPropertyNames(Ct),At=!0;function $t(t){At=t}var Et=function(t){this.value=t,this.dep=new vt,this.vmCount=0,U(t,"__ob__",this),Array.isArray(t)?(G?Tt(t,Ct):It(t,Ct,jt),this.observeArray(t)):this.walk(t)};function Tt(t,e){t.__proto__=e}function It(t,e,n){for(var i=0,r=n.length;i<r;i++){var o=n[i];U(t,o,e[o])}}function Lt(t,e){var n;if(c(t)&&!(t instanceof yt))return w(t,"__ob__")&&t.__ob__ instanceof Et?n=t.__ob__:At&&!ct()&&(Array.isArray(t)||u(t))&&Object.isExtensible(t)&&!t._isVue&&(n=new Et(t)),e&&n&&n.vmCount++,n}function Mt(t,e,n,i,r){var o=new vt,a=Object.getOwnPropertyDescriptor(t,e);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set;s&&!c||2!==arguments.length||(n=t[e]);var l=!r&&Lt(n);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(t):n;return vt.target&&(o.depend(),l&&(l.dep.depend(),Array.isArray(e)&&Pt(e))),e},set:function(e){var i=s?s.call(t):n;e===i||e!==e&&i!==i||s&&!c||(c?c.call(t,e):n=e,l=!r&&Lt(e),o.notify())}})}}function Dt(t,e,n){if(Array.isArray(t)&&f(e))return t.length=Math.max(t.length,e),t.splice(e,1,n),n;if(e in t&&!(e in Object.prototype))return t[e]=n,n;var i=t.__ob__;return t._isVue||i&&i.vmCount?n:i?(Mt(i.value,e,n),i.dep.notify(),n):(t[e]=n,n)}function Bt(t,e){if(Array.isArray(t)&&f(e))t.splice(e,1);else{var n=t.__ob__;t._isVue||n&&n.vmCount||w(t,e)&&(delete t[e],n&&n.dep.notify())}}function Pt(t){for(var e=void 0,n=0,i=t.length;n<i;n++)e=t[n],e&&e.__ob__&&e.__ob__.dep.depend(),Array.isArray(e)&&Pt(e)}Et.prototype.walk=function(t){for(var e=Object.keys(t),n=0;n<e.length;n++)Mt(t,e[n])},Et.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)Lt(t[e])};var Nt=z.optionMergeStrategies;function Vt(t,e){if(!e)return t;for(var n,i,r,o=ft?Reflect.ownKeys(e):Object.keys(e),a=0;a<o.length;a++)n=o[a],"__ob__"!==n&&(i=t[n],r=e[n],w(t,n)?i!==r&&u(i)&&u(r)&&Vt(i,r):Dt(t,n,r));return t}function Rt(t,e,n){return n?function(){var i="function"===typeof e?e.call(n,n):e,r="function"===typeof t?t.call(n,n):t;return i?Vt(i,r):r}:e?t?function(){return Vt("function"===typeof e?e.call(this,this):e,"function"===typeof t?t.call(this,this):t)}:e:t}function Ft(t,e){var n=e?t?t.concat(e):Array.isArray(e)?e:[e]:t;return n?zt(n):n}function zt(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}function Ht(t,e,n,i){var r=Object.create(t||null);return e?T(r,e):r}Nt.data=function(t,e,n){return n?Rt(t,e,n):e&&"function"!==typeof e?t:Rt(t,e)},F.forEach((function(t){Nt[t]=Ft})),R.forEach((function(t){Nt[t+"s"]=Ht})),Nt.watch=function(t,e,n,i){if(t===ot&&(t=void 0),e===ot&&(e=void 0),!e)return Object.create(t||null);if(!t)return e;var r={};for(var o in T(r,t),e){var a=r[o],s=e[o];a&&!Array.isArray(a)&&(a=[a]),r[o]=a?a.concat(s):Array.isArray(s)?s:[s]}return r},Nt.props=Nt.methods=Nt.inject=Nt.computed=function(t,e,n,i){if(!t)return e;var r=Object.create(null);return T(r,t),e&&T(r,e),r},Nt.provide=Rt;var Wt=function(t,e){return void 0===e?t:e};function Ut(t,e){var n=t.props;if(n){var i,r,o,a={};if(Array.isArray(n)){i=n.length;while(i--)r=n[i],"string"===typeof r&&(o=_(r),a[o]={type:null})}else if(u(n))for(var s in n)r=n[s],o=_(s),a[o]=u(r)?r:{type:r};else 0;t.props=a}}function Yt(t,e){var n=t.inject;if(n){var i=t.inject={};if(Array.isArray(n))for(var r=0;r<n.length;r++)i[n[r]]={from:n[r]};else if(u(n))for(var o in n){var a=n[o];i[o]=u(a)?T({from:o},a):{from:a}}else 0}}function qt(t){var e=t.directives;if(e)for(var n in e){var i=e[n];"function"===typeof i&&(e[n]={bind:i,update:i})}}function Xt(t,e,n){if("function"===typeof e&&(e=e.options),Ut(e,n),Yt(e,n),qt(e),!e._base&&(e.extends&&(t=Xt(t,e.extends,n)),e.mixins))for(var i=0,r=e.mixins.length;i<r;i++)t=Xt(t,e.mixins[i],n);var o,a={};for(o in t)s(o);for(o in e)w(t,o)||s(o);function s(i){var r=Nt[i]||Wt;a[i]=r(t[i],e[i],n,i)}return a}function Gt(t,e,n,i){if("string"===typeof n){var r=t[e];if(w(r,n))return r[n];var o=_(n);if(w(r,o))return r[o];var a=S(o);if(w(r,a))return r[a];var s=r[n]||r[o]||r[a];return s}}function Kt(t,e,n,i){var r=e[t],o=!w(n,t),a=n[t],s=te(Boolean,r.type);if(s>-1)if(o&&!w(r,"default"))a=!1;else if(""===a||a===k(t)){var c=te(String,r.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=Zt(i,r,t);var l=At;$t(!0),Lt(a),$t(l)}return a}function Zt(t,e,n){if(w(e,"default")){var i=e.default;return t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n]?t._props[n]:"function"===typeof i&&"Function"!==Jt(e.type)?i.call(t):i}}function Jt(t){var e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function Qt(t,e){return Jt(t)===Jt(e)}function te(t,e){if(!Array.isArray(e))return Qt(e,t)?0:-1;for(var n=0,i=e.length;n<i;n++)if(Qt(e[n],t))return n;return-1}function ee(t,e,n){gt();try{if(e){var i=e;while(i=i.$parent){var r=i.$options.errorCaptured;if(r)for(var o=0;o<r.length;o++)try{var a=!1===r[o].call(i,t,e,n);if(a)return}catch(_a){ie(_a,i,"errorCaptured hook")}}}ie(t,e,n)}finally{bt()}}function ne(t,e,n,i,r){var o;try{o=n?t.apply(e,n):t.call(e),o&&!o._isVue&&d(o)&&!o._handled&&(o.catch((function(t){return ee(t,i,r+" (Promise/async)")})),o._handled=!0)}catch(_a){ee(_a,i,r)}return o}function ie(t,e,n){if(z.errorHandler)try{return z.errorHandler.call(null,t,e,n)}catch(_a){_a!==t&&re(_a,null,"config.errorHandler")}re(t,e,n)}function re(t,e,n){if(!K&&!Z||"undefined"===typeof console)throw t;console.error(t)}var oe,ae=!1,se=[],ce=!1;function le(){ce=!1;var t=se.slice(0);se.length=0;for(var e=0;e<t.length;e++)t[e]()}if("undefined"!==typeof Promise&&ut(Promise)){var ue=Promise.resolve();oe=function(){ue.then(le),it&&setTimeout(L)},ae=!0}else if(tt||"undefined"===typeof MutationObserver||!ut(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())oe="undefined"!==typeof setImmediate&&ut(setImmediate)?function(){setImmediate(le)}:function(){setTimeout(le,0)};else{var he=1,fe=new MutationObserver(le),de=document.createTextNode(String(he));fe.observe(de,{characterData:!0}),oe=function(){he=(he+1)%2,de.data=String(he)},ae=!0}function pe(t,e){var n;if(se.push((function(){if(t)try{t.call(e)}catch(_a){ee(_a,e,"nextTick")}else n&&n(e)})),ce||(ce=!0,oe()),!t&&"undefined"!==typeof Promise)return new Promise((function(t){n=t}))}var ve=new ht;function me(t){ge(t,ve),ve.clear()}function ge(t,e){var n,i,r=Array.isArray(t);if(!(!r&&!c(t)||Object.isFrozen(t)||t instanceof yt)){if(t.__ob__){var o=t.__ob__.dep.id;if(e.has(o))return;e.add(o)}if(r){n=t.length;while(n--)ge(t[n],e)}else{i=Object.keys(t),n=i.length;while(n--)ge(t[i[n]],e)}}}var be=x((function(t){var e="&"===t.charAt(0);t=e?t.slice(1):t;var n="~"===t.charAt(0);t=n?t.slice(1):t;var i="!"===t.charAt(0);return t=i?t.slice(1):t,{name:t,once:n,capture:i,passive:e}}));function ye(t,e){function n(){var t=arguments,i=n.fns;if(!Array.isArray(i))return ne(i,null,arguments,e,"v-on handler");for(var r=i.slice(),o=0;o<r.length;o++)ne(r[o],null,t,e,"v-on handler")}return n.fns=t,n}function we(t,e,n,r,a,s){var c,l,u,h;for(c in t)l=t[c],u=e[c],h=be(c),i(l)||(i(u)?(i(l.fns)&&(l=t[c]=ye(l,s)),o(h.once)&&(l=t[c]=a(h.name,l,h.capture)),n(h.name,l,h.capture,h.passive,h.params)):l!==u&&(u.fns=l,t[c]=u));for(c in e)i(t[c])&&(h=be(c),r(h.name,e[c],h.capture))}function xe(t,e,n){var a;t instanceof yt&&(t=t.data.hook||(t.data.hook={}));var s=t[e];function c(){n.apply(this,arguments),b(a.fns,c)}i(s)?a=ye([c]):r(s.fns)&&o(s.merged)?(a=s,a.fns.push(c)):a=ye([s,c]),a.merged=!0,t[e]=a}function Oe(t,e,n){var o=e.options.props;if(!i(o)){var a={},s=t.attrs,c=t.props;if(r(s)||r(c))for(var l in o){var u=k(l);_e(a,c,l,u,!0)||_e(a,s,l,u,!1)}return a}}function _e(t,e,n,i,o){if(r(e)){if(w(e,n))return t[n]=e[n],o||delete e[n],!0;if(w(e,i))return t[n]=e[i],o||delete e[i],!0}return!1}function Se(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return Array.prototype.concat.apply([],t);return t}function Ce(t){return s(t)?[Ot(t)]:Array.isArray(t)?je(t):void 0}function ke(t){return r(t)&&r(t.text)&&a(t.isComment)}function je(t,e){var n,a,c,l,u=[];for(n=0;n<t.length;n++)a=t[n],i(a)||"boolean"===typeof a||(c=u.length-1,l=u[c],Array.isArray(a)?a.length>0&&(a=je(a,(e||"")+"_"+n),ke(a[0])&&ke(l)&&(u[c]=Ot(l.text+a[0].text),a.shift()),u.push.apply(u,a)):s(a)?ke(l)?u[c]=Ot(l.text+a):""!==a&&u.push(Ot(a)):ke(a)&&ke(l)?u[c]=Ot(l.text+a.text):(o(t._isVList)&&r(a.tag)&&i(a.key)&&r(e)&&(a.key="__vlist"+e+"_"+n+"__"),u.push(a)));return u}function Ae(t){var e=t.$options.provide;e&&(t._provided="function"===typeof e?e.call(t):e)}function $e(t){var e=Ee(t.$options.inject,t);e&&($t(!1),Object.keys(e).forEach((function(n){Mt(t,n,e[n])})),$t(!0))}function Ee(t,e){if(t){for(var n=Object.create(null),i=ft?Reflect.ownKeys(t):Object.keys(t),r=0;r<i.length;r++){var o=i[r];if("__ob__"!==o){var a=t[o].from,s=e;while(s){if(s._provided&&w(s._provided,a)){n[o]=s._provided[a];break}s=s.$parent}if(!s)if("default"in t[o]){var c=t[o].default;n[o]="function"===typeof c?c.call(e):c}else 0}}return n}}function Te(t,e){if(!t||!t.length)return{};for(var n={},i=0,r=t.length;i<r;i++){var o=t[i],a=o.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,o.context!==e&&o.fnContext!==e||!a||null==a.slot)(n.default||(n.default=[])).push(o);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===o.tag?c.push.apply(c,o.children||[]):c.push(o)}}for(var l in n)n[l].every(Ie)&&delete n[l];return n}function Ie(t){return t.isComment&&!t.asyncFactory||" "===t.text}function Le(t,e,i){var r,o=Object.keys(e).length>0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&i&&i!==n&&s===i.$key&&!o&&!i.$hasNormal)return i;for(var c in r={},t)t[c]&&"$"!==c[0]&&(r[c]=Me(e,c,t[c]))}else r={};for(var l in e)l in r||(r[l]=De(e,l));return t&&Object.isExtensible(t)&&(t._normalized=r),U(r,"$stable",a),U(r,"$key",s),U(r,"$hasNormal",o),r}function Me(t,e,n){var i=function(){var t=arguments.length?n.apply(null,arguments):n({});return t=t&&"object"===typeof t&&!Array.isArray(t)?[t]:Ce(t),t&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:i,enumerable:!0,configurable:!0}),i}function De(t,e){return function(){return t[e]}}function Be(t,e){var n,i,o,a,s;if(Array.isArray(t)||"string"===typeof t)for(n=new Array(t.length),i=0,o=t.length;i<o;i++)n[i]=e(t[i],i);else if("number"===typeof t)for(n=new Array(t),i=0;i<t;i++)n[i]=e(i+1,i);else if(c(t))if(ft&&t[Symbol.iterator]){n=[];var l=t[Symbol.iterator](),u=l.next();while(!u.done)n.push(e(u.value,n.length)),u=l.next()}else for(a=Object.keys(t),n=new Array(a.length),i=0,o=a.length;i<o;i++)s=a[i],n[i]=e(t[s],s,i);return r(n)||(n=[]),n._isVList=!0,n}function Pe(t,e,n,i){var r,o=this.$scopedSlots[t];o?(n=n||{},i&&(n=T(T({},i),n)),r=o(n)||e):r=this.$slots[t]||e;var a=n&&n.slot;return a?this.$createElement("template",{slot:a},r):r}function Ne(t){return Gt(this.$options,"filters",t,!0)||D}function Ve(t,e){return Array.isArray(t)?-1===t.indexOf(e):t!==e}function Re(t,e,n,i,r){var o=z.keyCodes[e]||n;return r&&i&&!z.keyCodes[e]?Ve(r,i):o?Ve(o,t):i?k(i)!==e:void 0}function Fe(t,e,n,i,r){if(n)if(c(n)){var o;Array.isArray(n)&&(n=I(n));var a=function(a){if("class"===a||"style"===a||g(a))o=t;else{var s=t.attrs&&t.attrs.type;o=i||z.mustUseProp(e,s,a)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}var c=_(a),l=k(a);if(!(c in o)&&!(l in o)&&(o[a]=n[a],r)){var u=t.on||(t.on={});u["update:"+a]=function(t){n[a]=t}}};for(var s in n)a(s)}else;return t}function ze(t,e){var n=this._staticTrees||(this._staticTrees=[]),i=n[t];return i&&!e||(i=n[t]=this.$options.staticRenderFns[t].call(this._renderProxy,null,this),We(i,"__static__"+t,!1)),i}function He(t,e,n){return We(t,"__once__"+e+(n?"_"+n:""),!0),t}function We(t,e,n){if(Array.isArray(t))for(var i=0;i<t.length;i++)t[i]&&"string"!==typeof t[i]&&Ue(t[i],e+"_"+i,n);else Ue(t,e,n)}function Ue(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function Ye(t,e){if(e)if(u(e)){var n=t.on=t.on?T({},t.on):{};for(var i in e){var r=n[i],o=e[i];n[i]=r?[].concat(r,o):o}}else;return t}function qe(t,e,n,i){e=e||{$stable:!n};for(var r=0;r<t.length;r++){var o=t[r];Array.isArray(o)?qe(o,e,n):o&&(o.proxy&&(o.fn.proxy=!0),e[o.key]=o.fn)}return i&&(e.$key=i),e}function Xe(t,e){for(var n=0;n<e.length;n+=2){var i=e[n];"string"===typeof i&&i&&(t[e[n]]=e[n+1])}return t}function Ge(t,e){return"string"===typeof t?e+t:t}function Ke(t){t._o=He,t._n=v,t._s=p,t._l=Be,t._t=Pe,t._q=B,t._i=P,t._m=ze,t._f=Ne,t._k=Re,t._b=Fe,t._v=Ot,t._e=xt,t._u=qe,t._g=Ye,t._d=Xe,t._p=Ge}function Ze(t,e,i,r,a){var s,c=this,l=a.options;w(r,"_uid")?(s=Object.create(r),s._original=r):(s=r,r=r._original);var u=o(l._compiled),h=!u;this.data=t,this.props=e,this.children=i,this.parent=r,this.listeners=t.on||n,this.injections=Ee(l.inject,r),this.slots=function(){return c.$slots||Le(t.scopedSlots,c.$slots=Te(i,r)),c.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return Le(t.scopedSlots,this.slots())}}),u&&(this.$options=l,this.$slots=this.slots(),this.$scopedSlots=Le(t.scopedSlots,this.$slots)),l._scopeId?this._c=function(t,e,n,i){var o=hn(s,t,e,n,i,h);return o&&!Array.isArray(o)&&(o.fnScopeId=l._scopeId,o.fnContext=r),o}:this._c=function(t,e,n,i){return hn(s,t,e,n,i,h)}}function Je(t,e,i,o,a){var s=t.options,c={},l=s.props;if(r(l))for(var u in l)c[u]=Kt(u,l,e||n);else r(i.attrs)&&tn(c,i.attrs),r(i.props)&&tn(c,i.props);var h=new Ze(i,c,a,o,t),f=s.render.call(null,h._c,h);if(f instanceof yt)return Qe(f,i,h.parent,s,h);if(Array.isArray(f)){for(var d=Ce(f)||[],p=new Array(d.length),v=0;v<d.length;v++)p[v]=Qe(d[v],i,h.parent,s,h);return p}}function Qe(t,e,n,i,r){var o=_t(t);return o.fnContext=n,o.fnOptions=i,e.slot&&((o.data||(o.data={})).slot=e.slot),o}function tn(t,e){for(var n in e)t[_(n)]=e[n]}Ke(Ze.prototype);var en={init:function(t,e){if(t.componentInstance&&!t.componentInstance._isDestroyed&&t.data.keepAlive){var n=t;en.prepatch(n,n)}else{var i=t.componentInstance=on(t,En);i.$mount(e?t.elm:void 0,e)}},prepatch:function(t,e){var n=e.componentOptions,i=e.componentInstance=t.componentInstance;Dn(i,n.propsData,n.listeners,e,n.children)},insert:function(t){var e=t.context,n=t.componentInstance;n._isMounted||(n._isMounted=!0,Vn(n,"mounted")),t.data.keepAlive&&(e._isMounted?Jn(n):Pn(n,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?Nn(e,!0):e.$destroy())}},nn=Object.keys(en);function rn(t,e,n,a,s){if(!i(t)){var l=n.$options._base;if(c(t)&&(t=l.extend(t)),"function"===typeof t){var u;if(i(t.cid)&&(u=t,t=xn(u,l),void 0===t))return wn(u,e,n,a,s);e=e||{},xi(t),r(e.model)&&cn(t.options,e);var h=Oe(e,t,s);if(o(t.options.functional))return Je(t,h,e,n,a);var f=e.on;if(e.on=e.nativeOn,o(t.options.abstract)){var d=e.slot;e={},d&&(e.slot=d)}an(e);var p=t.options.name||s,v=new yt("vue-component-"+t.cid+(p?"-"+p:""),e,void 0,void 0,void 0,n,{Ctor:t,propsData:h,listeners:f,tag:s,children:a},u);return v}}}function on(t,e){var n={_isComponent:!0,_parentVnode:t,parent:e},i=t.data.inlineTemplate;return r(i)&&(n.render=i.render,n.staticRenderFns=i.staticRenderFns),new t.componentOptions.Ctor(n)}function an(t){for(var e=t.hook||(t.hook={}),n=0;n<nn.length;n++){var i=nn[n],r=e[i],o=en[i];r===o||r&&r._merged||(e[i]=r?sn(o,r):o)}}function sn(t,e){var n=function(n,i){t(n,i),e(n,i)};return n._merged=!0,n}function cn(t,e){var n=t.model&&t.model.prop||"value",i=t.model&&t.model.event||"input";(e.attrs||(e.attrs={}))[n]=e.model.value;var o=e.on||(e.on={}),a=o[i],s=e.model.callback;r(a)?(Array.isArray(a)?-1===a.indexOf(s):a!==s)&&(o[i]=[s].concat(a)):o[i]=s}var ln=1,un=2;function hn(t,e,n,i,r,a){return(Array.isArray(n)||s(n))&&(r=i,i=n,n=void 0),o(a)&&(r=un),fn(t,e,n,i,r)}function fn(t,e,n,i,o){if(r(n)&&r(n.__ob__))return xt();if(r(n)&&r(n.is)&&(e=n.is),!e)return xt();var a,s,c;(Array.isArray(i)&&"function"===typeof i[0]&&(n=n||{},n.scopedSlots={default:i[0]},i.length=0),o===un?i=Ce(i):o===ln&&(i=Se(i)),"string"===typeof e)?(s=t.$vnode&&t.$vnode.ns||z.getTagNamespace(e),a=z.isReservedTag(e)?new yt(z.parsePlatformTagName(e),n,i,void 0,void 0,t):n&&n.pre||!r(c=Gt(t.$options,"components",e))?new yt(e,n,i,void 0,void 0,t):rn(c,n,t,i,e)):a=rn(e,n,t,i);return Array.isArray(a)?a:r(a)?(r(s)&&dn(a,s),r(n)&&pn(n),a):xt()}function dn(t,e,n){if(t.ns=e,"foreignObject"===t.tag&&(e=void 0,n=!0),r(t.children))for(var a=0,s=t.children.length;a<s;a++){var c=t.children[a];r(c.tag)&&(i(c.ns)||o(n)&&"svg"!==c.tag)&&dn(c,e,n)}}function pn(t){c(t.style)&&me(t.style),c(t.class)&&me(t.class)}function vn(t){t._vnode=null,t._staticTrees=null;var e=t.$options,i=t.$vnode=e._parentVnode,r=i&&i.context;t.$slots=Te(e._renderChildren,r),t.$scopedSlots=n,t._c=function(e,n,i,r){return hn(t,e,n,i,r,!1)},t.$createElement=function(e,n,i,r){return hn(t,e,n,i,r,!0)};var o=i&&i.data;Mt(t,"$attrs",o&&o.attrs||n,null,!0),Mt(t,"$listeners",e._parentListeners||n,null,!0)}var mn,gn=null;function bn(t){Ke(t.prototype),t.prototype.$nextTick=function(t){return pe(t,this)},t.prototype._render=function(){var t,e=this,n=e.$options,i=n.render,r=n._parentVnode;r&&(e.$scopedSlots=Le(r.data.scopedSlots,e.$slots,e.$scopedSlots)),e.$vnode=r;try{gn=e,t=i.call(e._renderProxy,e.$createElement)}catch(_a){ee(_a,e,"render"),t=e._vnode}finally{gn=null}return Array.isArray(t)&&1===t.length&&(t=t[0]),t instanceof yt||(t=xt()),t.parent=r,t}}function yn(t,e){return(t.__esModule||ft&&"Module"===t[Symbol.toStringTag])&&(t=t.default),c(t)?e.extend(t):t}function wn(t,e,n,i,r){var o=xt();return o.asyncFactory=t,o.asyncMeta={data:e,context:n,children:i,tag:r},o}function xn(t,e){if(o(t.error)&&r(t.errorComp))return t.errorComp;if(r(t.resolved))return t.resolved;var n=gn;if(n&&r(t.owners)&&-1===t.owners.indexOf(n)&&t.owners.push(n),o(t.loading)&&r(t.loadingComp))return t.loadingComp;if(n&&!r(t.owners)){var a=t.owners=[n],s=!0,l=null,u=null;n.$on("hook:destroyed",(function(){return b(a,n)}));var h=function(t){for(var e=0,n=a.length;e<n;e++)a[e].$forceUpdate();t&&(a.length=0,null!==l&&(clearTimeout(l),l=null),null!==u&&(clearTimeout(u),u=null))},f=N((function(n){t.resolved=yn(n,e),s?a.length=0:h(!0)})),p=N((function(e){r(t.errorComp)&&(t.error=!0,h(!0))})),v=t(f,p);return c(v)&&(d(v)?i(t.resolved)&&v.then(f,p):d(v.component)&&(v.component.then(f,p),r(v.error)&&(t.errorComp=yn(v.error,e)),r(v.loading)&&(t.loadingComp=yn(v.loading,e),0===v.delay?t.loading=!0:l=setTimeout((function(){l=null,i(t.resolved)&&i(t.error)&&(t.loading=!0,h(!1))}),v.delay||200)),r(v.timeout)&&(u=setTimeout((function(){u=null,i(t.resolved)&&p(null)}),v.timeout)))),s=!1,t.loading?t.loadingComp:t.resolved}}function On(t){return t.isComment&&t.asyncFactory}function _n(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];if(r(n)&&(r(n.componentOptions)||On(n)))return n}}function Sn(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&An(t,e)}function Cn(t,e){mn.$on(t,e)}function kn(t,e){mn.$off(t,e)}function jn(t,e){var n=mn;return function i(){var r=e.apply(null,arguments);null!==r&&n.$off(t,i)}}function An(t,e,n){mn=t,we(e,n||{},Cn,kn,jn,t),mn=void 0}function $n(t){var e=/^hook:/;t.prototype.$on=function(t,n){var i=this;if(Array.isArray(t))for(var r=0,o=t.length;r<o;r++)i.$on(t[r],n);else(i._events[t]||(i._events[t]=[])).push(n),e.test(t)&&(i._hasHookEvent=!0);return i},t.prototype.$once=function(t,e){var n=this;function i(){n.$off(t,i),e.apply(n,arguments)}return i.fn=e,n.$on(t,i),n},t.prototype.$off=function(t,e){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(t)){for(var i=0,r=t.length;i<r;i++)n.$off(t[i],e);return n}var o,a=n._events[t];if(!a)return n;if(!e)return n._events[t]=null,n;var s=a.length;while(s--)if(o=a[s],o===e||o.fn===e){a.splice(s,1);break}return n},t.prototype.$emit=function(t){var e=this,n=e._events[t];if(n){n=n.length>1?E(n):n;for(var i=E(arguments,1),r='event handler for "'+t+'"',o=0,a=n.length;o<a;o++)ne(n[o],e,i,e,r)}return e}}var En=null;function Tn(t){var e=En;return En=t,function(){En=e}}function In(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){while(n.$options.abstract&&n.$parent)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}function Ln(t){t.prototype._update=function(t,e){var n=this,i=n.$el,r=n._vnode,o=Tn(n);n._vnode=t,n.$el=r?n.__patch__(r,t):n.__patch__(n.$el,t,e,!1),o(),i&&(i.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},t.prototype.$forceUpdate=function(){var t=this;t._watcher&&t._watcher.update()},t.prototype.$destroy=function(){var t=this;if(!t._isBeingDestroyed){Vn(t,"beforeDestroy"),t._isBeingDestroyed=!0;var e=t.$parent;!e||e._isBeingDestroyed||t.$options.abstract||b(e.$children,t),t._watcher&&t._watcher.teardown();var n=t._watchers.length;while(n--)t._watchers[n].teardown();t._data.__ob__&&t._data.__ob__.vmCount--,t._isDestroyed=!0,t.__patch__(t._vnode,null),Vn(t,"destroyed"),t.$off(),t.$el&&(t.$el.__vue__=null),t.$vnode&&(t.$vnode.parent=null)}}}function Mn(t,e,n){var i;return t.$el=e,t.$options.render||(t.$options.render=xt),Vn(t,"beforeMount"),i=function(){t._update(t._render(),n)},new ni(t,i,L,{before:function(){t._isMounted&&!t._isDestroyed&&Vn(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,Vn(t,"mounted")),t}function Dn(t,e,i,r,o){var a=r.data.scopedSlots,s=t.$scopedSlots,c=!!(a&&!a.$stable||s!==n&&!s.$stable||a&&t.$scopedSlots.$key!==a.$key),l=!!(o||t.$options._renderChildren||c);if(t.$options._parentVnode=r,t.$vnode=r,t._vnode&&(t._vnode.parent=r),t.$options._renderChildren=o,t.$attrs=r.data.attrs||n,t.$listeners=i||n,e&&t.$options.props){$t(!1);for(var u=t._props,h=t.$options._propKeys||[],f=0;f<h.length;f++){var d=h[f],p=t.$options.props;u[d]=Kt(d,p,e,t)}$t(!0),t.$options.propsData=e}i=i||n;var v=t.$options._parentListeners;t.$options._parentListeners=i,An(t,i,v),l&&(t.$slots=Te(o,r.context),t.$forceUpdate())}function Bn(t){while(t&&(t=t.$parent))if(t._inactive)return!0;return!1}function Pn(t,e){if(e){if(t._directInactive=!1,Bn(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)Pn(t.$children[n]);Vn(t,"activated")}}function Nn(t,e){if((!e||(t._directInactive=!0,!Bn(t)))&&!t._inactive){t._inactive=!0;for(var n=0;n<t.$children.length;n++)Nn(t.$children[n]);Vn(t,"deactivated")}}function Vn(t,e){gt();var n=t.$options[e],i=e+" hook";if(n)for(var r=0,o=n.length;r<o;r++)ne(n[r],t,null,t,i);t._hasHookEvent&&t.$emit("hook:"+e),bt()}var Rn=[],Fn=[],zn={},Hn=!1,Wn=!1,Un=0;function Yn(){Un=Rn.length=Fn.length=0,zn={},Hn=Wn=!1}var qn=0,Xn=Date.now;if(K&&!tt){var Gn=window.performance;Gn&&"function"===typeof Gn.now&&Xn()>document.createEvent("Event").timeStamp&&(Xn=function(){return Gn.now()})}function Kn(){var t,e;for(qn=Xn(),Wn=!0,Rn.sort((function(t,e){return t.id-e.id})),Un=0;Un<Rn.length;Un++)t=Rn[Un],t.before&&t.before(),e=t.id,zn[e]=null,t.run();var n=Fn.slice(),i=Rn.slice();Yn(),Qn(n),Zn(i),lt&&z.devtools&&lt.emit("flush")}function Zn(t){var e=t.length;while(e--){var n=t[e],i=n.vm;i._watcher===n&&i._isMounted&&!i._isDestroyed&&Vn(i,"updated")}}function Jn(t){t._inactive=!1,Fn.push(t)}function Qn(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,Pn(t[e],!0)}function ti(t){var e=t.id;if(null==zn[e]){if(zn[e]=!0,Wn){var n=Rn.length-1;while(n>Un&&Rn[n].id>t.id)n--;Rn.splice(n+1,0,t)}else Rn.push(t);Hn||(Hn=!0,pe(Kn))}}var ei=0,ni=function(t,e,n,i,r){this.vm=t,r&&(t._watcher=this),t._watchers.push(this),i?(this.deep=!!i.deep,this.user=!!i.user,this.lazy=!!i.lazy,this.sync=!!i.sync,this.before=i.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++ei,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ht,this.newDepIds=new ht,this.expression="","function"===typeof e?this.getter=e:(this.getter=q(e),this.getter||(this.getter=L)),this.value=this.lazy?void 0:this.get()};ni.prototype.get=function(){var t;gt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(_a){if(!this.user)throw _a;ee(_a,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&me(t),bt(),this.cleanupDeps()}return t},ni.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},ni.prototype.cleanupDeps=function(){var t=this.deps.length;while(t--){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},ni.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():ti(this)},ni.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||c(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(_a){ee(_a,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},ni.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},ni.prototype.depend=function(){var t=this.deps.length;while(t--)this.deps[t].depend()},ni.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||b(this.vm._watchers,this);var t=this.deps.length;while(t--)this.deps[t].removeSub(this);this.active=!1}};var ii={enumerable:!0,configurable:!0,get:L,set:L};function ri(t,e,n){ii.get=function(){return this[e][n]},ii.set=function(t){this[e][n]=t},Object.defineProperty(t,n,ii)}function oi(t){t._watchers=[];var e=t.$options;e.props&&ai(t,e.props),e.methods&&pi(t,e.methods),e.data?si(t):Lt(t._data={},!0),e.computed&&ui(t,e.computed),e.watch&&e.watch!==ot&&vi(t,e.watch)}function ai(t,e){var n=t.$options.propsData||{},i=t._props={},r=t.$options._propKeys=[],o=!t.$parent;o||$t(!1);var a=function(o){r.push(o);var a=Kt(o,e,n,t);Mt(i,o,a),o in t||ri(t,"_props",o)};for(var s in e)a(s);$t(!0)}function si(t){var e=t.$options.data;e=t._data="function"===typeof e?ci(e,t):e||{},u(e)||(e={});var n=Object.keys(e),i=t.$options.props,r=(t.$options.methods,n.length);while(r--){var o=n[r];0,i&&w(i,o)||W(o)||ri(t,"_data",o)}Lt(e,!0)}function ci(t,e){gt();try{return t.call(e,e)}catch(_a){return ee(_a,e,"data()"),{}}finally{bt()}}var li={lazy:!0};function ui(t,e){var n=t._computedWatchers=Object.create(null),i=ct();for(var r in e){var o=e[r],a="function"===typeof o?o:o.get;0,i||(n[r]=new ni(t,a||L,L,li)),r in t||hi(t,r,o)}}function hi(t,e,n){var i=!ct();"function"===typeof n?(ii.get=i?fi(e):di(n),ii.set=L):(ii.get=n.get?i&&!1!==n.cache?fi(e):di(n.get):L,ii.set=n.set||L),Object.defineProperty(t,e,ii)}function fi(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),vt.target&&e.depend(),e.value}}function di(t){return function(){return t.call(this,this)}}function pi(t,e){t.$options.props;for(var n in e)t[n]="function"!==typeof e[n]?L:$(e[n],t)}function vi(t,e){for(var n in e){var i=e[n];if(Array.isArray(i))for(var r=0;r<i.length;r++)mi(t,n,i[r]);else mi(t,n,i)}}function mi(t,e,n,i){return u(n)&&(i=n,n=n.handler),"string"===typeof n&&(n=t[n]),t.$watch(e,n,i)}function gi(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Dt,t.prototype.$delete=Bt,t.prototype.$watch=function(t,e,n){var i=this;if(u(e))return mi(i,t,e,n);n=n||{},n.user=!0;var r=new ni(i,t,e,n);if(n.immediate)try{e.call(i,r.value)}catch(o){ee(o,i,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}var bi=0;function yi(t){t.prototype._init=function(t){var e=this;e._uid=bi++,e._isVue=!0,t&&t._isComponent?wi(e,t):e.$options=Xt(xi(e.constructor),t||{},e),e._renderProxy=e,e._self=e,In(e),Sn(e),vn(e),Vn(e,"beforeCreate"),$e(e),oi(e),Ae(e),Vn(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}function wi(t,e){var n=t.$options=Object.create(t.constructor.options),i=e._parentVnode;n.parent=e.parent,n._parentVnode=i;var r=i.componentOptions;n.propsData=r.propsData,n._parentListeners=r.listeners,n._renderChildren=r.children,n._componentTag=r.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}function xi(t){var e=t.options;if(t.super){var n=xi(t.super),i=t.superOptions;if(n!==i){t.superOptions=n;var r=Oi(t);r&&T(t.extendOptions,r),e=t.options=Xt(n,t.extendOptions),e.name&&(e.components[e.name]=t)}}return e}function Oi(t){var e,n=t.options,i=t.sealedOptions;for(var r in n)n[r]!==i[r]&&(e||(e={}),e[r]=n[r]);return e}function _i(t){this._init(t)}function Si(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=E(arguments,1);return n.unshift(this),"function"===typeof t.install?t.install.apply(t,n):"function"===typeof t&&t.apply(null,n),e.push(t),this}}function Ci(t){t.mixin=function(t){return this.options=Xt(this.options,t),this}}function ki(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,i=n.cid,r=t._Ctor||(t._Ctor={});if(r[i])return r[i];var o=t.name||n.options.name;var a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=Xt(n.options,t),a["super"]=n,a.options.props&&ji(a),a.options.computed&&Ai(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,R.forEach((function(t){a[t]=n[t]})),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=T({},a.options),r[i]=a,a}}function ji(t){var e=t.options.props;for(var n in e)ri(t.prototype,"_props",n)}function Ai(t){var e=t.options.computed;for(var n in e)hi(t.prototype,n,e[n])}function $i(t){R.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&u(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"===typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}function Ei(t){return t&&(t.Ctor.options.name||t.tag)}function Ti(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"===typeof t?t.split(",").indexOf(e)>-1:!!h(t)&&t.test(e)}function Ii(t,e){var n=t.cache,i=t.keys,r=t._vnode;for(var o in n){var a=n[o];if(a){var s=Ei(a.componentOptions);s&&!e(s)&&Li(n,o,i,r)}}}function Li(t,e,n,i){var r=t[e];!r||i&&r.tag===i.tag||r.componentInstance.$destroy(),t[e]=null,b(n,e)}yi(_i),gi(_i),$n(_i),Ln(_i),bn(_i);var Mi=[String,RegExp,Array],Di={name:"keep-alive",abstract:!0,props:{include:Mi,exclude:Mi,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Li(this.cache,t,this.keys)},mounted:function(){var t=this;this.$watch("include",(function(e){Ii(t,(function(t){return Ti(e,t)}))})),this.$watch("exclude",(function(e){Ii(t,(function(t){return!Ti(e,t)}))}))},render:function(){var t=this.$slots.default,e=_n(t),n=e&&e.componentOptions;if(n){var i=Ei(n),r=this,o=r.include,a=r.exclude;if(o&&(!i||!Ti(o,i))||a&&i&&Ti(a,i))return e;var s=this,c=s.cache,l=s.keys,u=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;c[u]?(e.componentInstance=c[u].componentInstance,b(l,u),l.push(u)):(c[u]=e,l.push(u),this.max&&l.length>parseInt(this.max)&&Li(c,l[0],l,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}},Bi={KeepAlive:Di};function Pi(t){var e={get:function(){return z}};Object.defineProperty(t,"config",e),t.util={warn:dt,extend:T,mergeOptions:Xt,defineReactive:Mt},t.set=Dt,t.delete=Bt,t.nextTick=pe,t.observable=function(t){return Lt(t),t},t.options=Object.create(null),R.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,T(t.options.components,Bi),Si(t),Ci(t),ki(t),$i(t)}Pi(_i),Object.defineProperty(_i.prototype,"$isServer",{get:ct}),Object.defineProperty(_i.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(_i,"FunctionalRenderContext",{value:Ze}),_i.version="2.6.11";var Ni=m("style,class"),Vi=m("input,textarea,option,select,progress"),Ri=function(t,e,n){return"value"===n&&Vi(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Fi=m("contenteditable,draggable,spellcheck"),zi=m("events,caret,typing,plaintext-only"),Hi=function(t,e){return Xi(e)||"false"===e?"false":"contenteditable"===t&&zi(e)?e:"true"},Wi=m("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Ui="http://www.w3.org/1999/xlink",Yi=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},qi=function(t){return Yi(t)?t.slice(6,t.length):""},Xi=function(t){return null==t||!1===t};function Gi(t){var e=t.data,n=t,i=t;while(r(i.componentInstance))i=i.componentInstance._vnode,i&&i.data&&(e=Ki(i.data,e));while(r(n=n.parent))n&&n.data&&(e=Ki(e,n.data));return Zi(e.staticClass,e.class)}function Ki(t,e){return{staticClass:Ji(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function Zi(t,e){return r(t)||r(e)?Ji(t,Qi(e)):""}function Ji(t,e){return t?e?t+" "+e:t:e||""}function Qi(t){return Array.isArray(t)?tr(t):c(t)?er(t):"string"===typeof t?t:""}function tr(t){for(var e,n="",i=0,o=t.length;i<o;i++)r(e=Qi(t[i]))&&""!==e&&(n&&(n+=" "),n+=e);return n}function er(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}var nr={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},ir=m("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),rr=m("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),or=function(t){return ir(t)||rr(t)};function ar(t){return rr(t)?"svg":"math"===t?"math":void 0}var sr=Object.create(null);function cr(t){if(!K)return!0;if(or(t))return!1;if(t=t.toLowerCase(),null!=sr[t])return sr[t];var e=document.createElement(t);return t.indexOf("-")>-1?sr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:sr[t]=/HTMLUnknownElement/.test(e.toString())}var lr=m("text,number,password,search,email,tel,url");function ur(t){if("string"===typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function hr(t,e){var n=document.createElement(t);return"select"!==t||e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n}function fr(t,e){return document.createElementNS(nr[t],e)}function dr(t){return document.createTextNode(t)}function pr(t){return document.createComment(t)}function vr(t,e,n){t.insertBefore(e,n)}function mr(t,e){t.removeChild(e)}function gr(t,e){t.appendChild(e)}function br(t){return t.parentNode}function yr(t){return t.nextSibling}function wr(t){return t.tagName}function xr(t,e){t.textContent=e}function Or(t,e){t.setAttribute(e,"")}var _r=Object.freeze({createElement:hr,createElementNS:fr,createTextNode:dr,createComment:pr,insertBefore:vr,removeChild:mr,appendChild:gr,parentNode:br,nextSibling:yr,tagName:wr,setTextContent:xr,setStyleScope:Or}),Sr={create:function(t,e){Cr(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Cr(t,!0),Cr(e))},destroy:function(t){Cr(t,!0)}};function Cr(t,e){var n=t.data.ref;if(r(n)){var i=t.context,o=t.componentInstance||t.elm,a=i.$refs;e?Array.isArray(a[n])?b(a[n],o):a[n]===o&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(o)<0&&a[n].push(o):a[n]=[o]:a[n]=o}}var kr=new yt("",{},[]),jr=["create","activate","update","remove","destroy"];function Ar(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&r(t.data)===r(e.data)&&$r(t,e)||o(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&i(e.asyncFactory.error))}function $r(t,e){if("input"!==t.tag)return!0;var n,i=r(n=t.data)&&r(n=n.attrs)&&n.type,o=r(n=e.data)&&r(n=n.attrs)&&n.type;return i===o||lr(i)&&lr(o)}function Er(t,e,n){var i,o,a={};for(i=e;i<=n;++i)o=t[i].key,r(o)&&(a[o]=i);return a}function Tr(t){var e,n,a={},c=t.modules,l=t.nodeOps;for(e=0;e<jr.length;++e)for(a[jr[e]]=[],n=0;n<c.length;++n)r(c[n][jr[e]])&&a[jr[e]].push(c[n][jr[e]]);function u(t){return new yt(l.tagName(t).toLowerCase(),{},[],void 0,t)}function h(t,e){function n(){0===--n.listeners&&f(t)}return n.listeners=e,n}function f(t){var e=l.parentNode(t);r(e)&&l.removeChild(e,t)}function d(t,e,n,i,a,s,c){if(r(t.elm)&&r(s)&&(t=s[c]=_t(t)),t.isRootInsert=!a,!p(t,e,n,i)){var u=t.data,h=t.children,f=t.tag;r(f)?(t.elm=t.ns?l.createElementNS(t.ns,f):l.createElement(f,t),O(t),y(t,h,e),r(u)&&x(t,e),b(n,t.elm,i)):o(t.isComment)?(t.elm=l.createComment(t.text),b(n,t.elm,i)):(t.elm=l.createTextNode(t.text),b(n,t.elm,i))}}function p(t,e,n,i){var a=t.data;if(r(a)){var s=r(t.componentInstance)&&a.keepAlive;if(r(a=a.hook)&&r(a=a.init)&&a(t,!1),r(t.componentInstance))return v(t,e),b(n,t.elm,i),o(s)&&g(t,e,n,i),!0}}function v(t,e){r(t.data.pendingInsert)&&(e.push.apply(e,t.data.pendingInsert),t.data.pendingInsert=null),t.elm=t.componentInstance.$el,w(t)?(x(t,e),O(t)):(Cr(t),e.push(t))}function g(t,e,n,i){var o,s=t;while(s.componentInstance)if(s=s.componentInstance._vnode,r(o=s.data)&&r(o=o.transition)){for(o=0;o<a.activate.length;++o)a.activate[o](kr,s);e.push(s);break}b(n,t.elm,i)}function b(t,e,n){r(t)&&(r(n)?l.parentNode(n)===t&&l.insertBefore(t,e,n):l.appendChild(t,e))}function y(t,e,n){if(Array.isArray(e)){0;for(var i=0;i<e.length;++i)d(e[i],n,t.elm,null,!0,e,i)}else s(t.text)&&l.appendChild(t.elm,l.createTextNode(String(t.text)))}function w(t){while(t.componentInstance)t=t.componentInstance._vnode;return r(t.tag)}function x(t,n){for(var i=0;i<a.create.length;++i)a.create[i](kr,t);e=t.data.hook,r(e)&&(r(e.create)&&e.create(kr,t),r(e.insert)&&n.push(t))}function O(t){var e;if(r(e=t.fnScopeId))l.setStyleScope(t.elm,e);else{var n=t;while(n)r(e=n.context)&&r(e=e.$options._scopeId)&&l.setStyleScope(t.elm,e),n=n.parent}r(e=En)&&e!==t.context&&e!==t.fnContext&&r(e=e.$options._scopeId)&&l.setStyleScope(t.elm,e)}function _(t,e,n,i,r,o){for(;i<=r;++i)d(n[i],o,t,e,!1,n,i)}function S(t){var e,n,i=t.data;if(r(i))for(r(e=i.hook)&&r(e=e.destroy)&&e(t),e=0;e<a.destroy.length;++e)a.destroy[e](t);if(r(e=t.children))for(n=0;n<t.children.length;++n)S(t.children[n])}function C(t,e,n){for(;e<=n;++e){var i=t[e];r(i)&&(r(i.tag)?(k(i),S(i)):f(i.elm))}}function k(t,e){if(r(e)||r(t.data)){var n,i=a.remove.length+1;for(r(e)?e.listeners+=i:e=h(t.elm,i),r(n=t.componentInstance)&&r(n=n._vnode)&&r(n.data)&&k(n,e),n=0;n<a.remove.length;++n)a.remove[n](t,e);r(n=t.data.hook)&&r(n=n.remove)?n(t,e):e()}else f(t.elm)}function j(t,e,n,o,a){var s,c,u,h,f=0,p=0,v=e.length-1,m=e[0],g=e[v],b=n.length-1,y=n[0],w=n[b],x=!a;while(f<=v&&p<=b)i(m)?m=e[++f]:i(g)?g=e[--v]:Ar(m,y)?($(m,y,o,n,p),m=e[++f],y=n[++p]):Ar(g,w)?($(g,w,o,n,b),g=e[--v],w=n[--b]):Ar(m,w)?($(m,w,o,n,b),x&&l.insertBefore(t,m.elm,l.nextSibling(g.elm)),m=e[++f],w=n[--b]):Ar(g,y)?($(g,y,o,n,p),x&&l.insertBefore(t,g.elm,m.elm),g=e[--v],y=n[++p]):(i(s)&&(s=Er(e,f,v)),c=r(y.key)?s[y.key]:A(y,e,f,v),i(c)?d(y,o,t,m.elm,!1,n,p):(u=e[c],Ar(u,y)?($(u,y,o,n,p),e[c]=void 0,x&&l.insertBefore(t,u.elm,m.elm)):d(y,o,t,m.elm,!1,n,p)),y=n[++p]);f>v?(h=i(n[b+1])?null:n[b+1].elm,_(t,h,n,p,b,o)):p>b&&C(e,f,v)}function A(t,e,n,i){for(var o=n;o<i;o++){var a=e[o];if(r(a)&&Ar(t,a))return o}}function $(t,e,n,s,c,u){if(t!==e){r(e.elm)&&r(s)&&(e=s[c]=_t(e));var h=e.elm=t.elm;if(o(t.isAsyncPlaceholder))r(e.asyncFactory.resolved)?I(t.elm,e,n):e.isAsyncPlaceholder=!0;else if(o(e.isStatic)&&o(t.isStatic)&&e.key===t.key&&(o(e.isCloned)||o(e.isOnce)))e.componentInstance=t.componentInstance;else{var f,d=e.data;r(d)&&r(f=d.hook)&&r(f=f.prepatch)&&f(t,e);var p=t.children,v=e.children;if(r(d)&&w(e)){for(f=0;f<a.update.length;++f)a.update[f](t,e);r(f=d.hook)&&r(f=f.update)&&f(t,e)}i(e.text)?r(p)&&r(v)?p!==v&&j(h,p,v,n,u):r(v)?(r(t.text)&&l.setTextContent(h,""),_(h,null,v,0,v.length-1,n)):r(p)?C(p,0,p.length-1):r(t.text)&&l.setTextContent(h,""):t.text!==e.text&&l.setTextContent(h,e.text),r(d)&&r(f=d.hook)&&r(f=f.postpatch)&&f(t,e)}}}function E(t,e,n){if(o(n)&&r(t.parent))t.parent.data.pendingInsert=e;else for(var i=0;i<e.length;++i)e[i].data.hook.insert(e[i])}var T=m("attrs,class,staticClass,staticStyle,key");function I(t,e,n,i){var a,s=e.tag,c=e.data,l=e.children;if(i=i||c&&c.pre,e.elm=t,o(e.isComment)&&r(e.asyncFactory))return e.isAsyncPlaceholder=!0,!0;if(r(c)&&(r(a=c.hook)&&r(a=a.init)&&a(e,!0),r(a=e.componentInstance)))return v(e,n),!0;if(r(s)){if(r(l))if(t.hasChildNodes())if(r(a=c)&&r(a=a.domProps)&&r(a=a.innerHTML)){if(a!==t.innerHTML)return!1}else{for(var u=!0,h=t.firstChild,f=0;f<l.length;f++){if(!h||!I(h,l[f],n,i)){u=!1;break}h=h.nextSibling}if(!u||h)return!1}else y(e,l,n);if(r(c)){var d=!1;for(var p in c)if(!T(p)){d=!0,x(e,n);break}!d&&c["class"]&&me(c["class"])}}else t.data!==e.text&&(t.data=e.text);return!0}return function(t,e,n,s){if(!i(e)){var c=!1,h=[];if(i(t))c=!0,d(e,h);else{var f=r(t.nodeType);if(!f&&Ar(t,e))$(t,e,h,null,null,s);else{if(f){if(1===t.nodeType&&t.hasAttribute(V)&&(t.removeAttribute(V),n=!0),o(n)&&I(t,e,h))return E(e,h,!0),t;t=u(t)}var p=t.elm,v=l.parentNode(p);if(d(e,h,p._leaveCb?null:v,l.nextSibling(p)),r(e.parent)){var m=e.parent,g=w(e);while(m){for(var b=0;b<a.destroy.length;++b)a.destroy[b](m);if(m.elm=e.elm,g){for(var y=0;y<a.create.length;++y)a.create[y](kr,m);var x=m.data.hook.insert;if(x.merged)for(var O=1;O<x.fns.length;O++)x.fns[O]()}else Cr(m);m=m.parent}}r(v)?C([t],0,0):r(t.tag)&&S(t)}}return E(e,h,c),e.elm}r(t)&&S(t)}}var Ir={create:Lr,update:Lr,destroy:function(t){Lr(t,kr)}};function Lr(t,e){(t.data.directives||e.data.directives)&&Mr(t,e)}function Mr(t,e){var n,i,r,o=t===kr,a=e===kr,s=Br(t.data.directives,t.context),c=Br(e.data.directives,e.context),l=[],u=[];for(n in c)i=s[n],r=c[n],i?(r.oldValue=i.value,r.oldArg=i.arg,Nr(r,"update",e,t),r.def&&r.def.componentUpdated&&u.push(r)):(Nr(r,"bind",e,t),r.def&&r.def.inserted&&l.push(r));if(l.length){var h=function(){for(var n=0;n<l.length;n++)Nr(l[n],"inserted",e,t)};o?xe(e,"insert",h):h()}if(u.length&&xe(e,"postpatch",(function(){for(var n=0;n<u.length;n++)Nr(u[n],"componentUpdated",e,t)})),!o)for(n in s)c[n]||Nr(s[n],"unbind",t,t,a)}var Dr=Object.create(null);function Br(t,e){var n,i,r=Object.create(null);if(!t)return r;for(n=0;n<t.length;n++)i=t[n],i.modifiers||(i.modifiers=Dr),r[Pr(i)]=i,i.def=Gt(e.$options,"directives",i.name,!0);return r}function Pr(t){return t.rawName||t.name+"."+Object.keys(t.modifiers||{}).join(".")}function Nr(t,e,n,i,r){var o=t.def&&t.def[e];if(o)try{o(n.elm,t,n,i,r)}catch(_a){ee(_a,n.context,"directive "+t.name+" "+e+" hook")}}var Vr=[Sr,Ir];function Rr(t,e){var n=e.componentOptions;if((!r(n)||!1!==n.Ctor.options.inheritAttrs)&&(!i(t.data.attrs)||!i(e.data.attrs))){var o,a,s,c=e.elm,l=t.data.attrs||{},u=e.data.attrs||{};for(o in r(u.__ob__)&&(u=e.data.attrs=T({},u)),u)a=u[o],s=l[o],s!==a&&Fr(c,o,a);for(o in(tt||nt)&&u.value!==l.value&&Fr(c,"value",u.value),l)i(u[o])&&(Yi(o)?c.removeAttributeNS(Ui,qi(o)):Fi(o)||c.removeAttribute(o))}}function Fr(t,e,n){t.tagName.indexOf("-")>-1?zr(t,e,n):Wi(e)?Xi(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Fi(e)?t.setAttribute(e,Hi(e,n)):Yi(e)?Xi(n)?t.removeAttributeNS(Ui,qi(e)):t.setAttributeNS(Ui,e,n):zr(t,e,n)}function zr(t,e,n){if(Xi(n))t.removeAttribute(e);else{if(tt&&!et&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var i=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",i)};t.addEventListener("input",i),t.__ieph=!0}t.setAttribute(e,n)}}var Hr={create:Rr,update:Rr};function Wr(t,e){var n=e.elm,o=e.data,a=t.data;if(!(i(o.staticClass)&&i(o.class)&&(i(a)||i(a.staticClass)&&i(a.class)))){var s=Gi(e),c=n._transitionClasses;r(c)&&(s=Ji(s,Qi(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Ur,Yr={create:Wr,update:Wr},qr="__r",Xr="__c";function Gr(t){if(r(t[qr])){var e=tt?"change":"input";t[e]=[].concat(t[qr],t[e]||[]),delete t[qr]}r(t[Xr])&&(t.change=[].concat(t[Xr],t.change||[]),delete t[Xr])}function Kr(t,e,n){var i=Ur;return function r(){var o=e.apply(null,arguments);null!==o&&Qr(t,r,n,i)}}var Zr=ae&&!(rt&&Number(rt[1])<=53);function Jr(t,e,n,i){if(Zr){var r=qn,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=r||t.timeStamp<=0||t.target.ownerDocument!==document)return o.apply(this,arguments)}}Ur.addEventListener(t,e,at?{capture:n,passive:i}:n)}function Qr(t,e,n,i){(i||Ur).removeEventListener(t,e._wrapper||e,n)}function to(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Ur=e.elm,Gr(n),we(n,r,Jr,Qr,Kr,e.context),Ur=void 0}}var eo,no={create:to,update:to};function io(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,o,a=e.elm,s=t.data.domProps||{},c=e.data.domProps||{};for(n in r(c.__ob__)&&(c=e.data.domProps=T({},c)),s)n in c||(a[n]="");for(n in c){if(o=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),o===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=o;var l=i(o)?"":String(o);ro(a,l)&&(a.value=l)}else if("innerHTML"===n&&rr(a.tagName)&&i(a.innerHTML)){eo=eo||document.createElement("div"),eo.innerHTML="<svg>"+o+"</svg>";var u=eo.firstChild;while(a.firstChild)a.removeChild(a.firstChild);while(u.firstChild)a.appendChild(u.firstChild)}else if(o!==s[n])try{a[n]=o}catch(_a){}}}}function ro(t,e){return!t.composing&&("OPTION"===t.tagName||oo(t,e)||ao(t,e))}function oo(t,e){var n=!0;try{n=document.activeElement!==t}catch(_a){}return n&&t.value!==e}function ao(t,e){var n=t.value,i=t._vModifiers;if(r(i)){if(i.number)return v(n)!==v(e);if(i.trim)return n.trim()!==e.trim()}return n!==e}var so={create:io,update:io},co=x((function(t){var e={},n=/;(?![^(]*\))/g,i=/:(.+)/;return t.split(n).forEach((function(t){if(t){var n=t.split(i);n.length>1&&(e[n[0].trim()]=n[1].trim())}})),e}));function lo(t){var e=uo(t.style);return t.staticStyle?T(t.staticStyle,e):e}function uo(t){return Array.isArray(t)?I(t):"string"===typeof t?co(t):t}function ho(t,e){var n,i={};if(e){var r=t;while(r.componentInstance)r=r.componentInstance._vnode,r&&r.data&&(n=lo(r.data))&&T(i,n)}(n=lo(t.data))&&T(i,n);var o=t;while(o=o.parent)o.data&&(n=lo(o.data))&&T(i,n);return i}var fo,po=/^--/,vo=/\s*!important$/,mo=function(t,e,n){if(po.test(e))t.style.setProperty(e,n);else if(vo.test(n))t.style.setProperty(k(e),n.replace(vo,""),"important");else{var i=bo(e);if(Array.isArray(n))for(var r=0,o=n.length;r<o;r++)t.style[i]=n[r];else t.style[i]=n}},go=["Webkit","Moz","ms"],bo=x((function(t){if(fo=fo||document.createElement("div").style,t=_(t),"filter"!==t&&t in fo)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<go.length;n++){var i=go[n]+e;if(i in fo)return i}}));function yo(t,e){var n=e.data,o=t.data;if(!(i(n.staticStyle)&&i(n.style)&&i(o.staticStyle)&&i(o.style))){var a,s,c=e.elm,l=o.staticStyle,u=o.normalizedStyle||o.style||{},h=l||u,f=uo(e.data.style)||{};e.data.normalizedStyle=r(f.__ob__)?T({},f):f;var d=ho(e,!0);for(s in h)i(d[s])&&mo(c,s,"");for(s in d)a=d[s],a!==h[s]&&mo(c,s,null==a?"":a)}}var wo={create:yo,update:yo},xo=/\s+/;function Oo(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(xo).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function _o(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(xo).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{var n=" "+(t.getAttribute("class")||"")+" ",i=" "+e+" ";while(n.indexOf(i)>=0)n=n.replace(i," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function So(t){if(t){if("object"===typeof t){var e={};return!1!==t.css&&T(e,Co(t.name||"v")),T(e,t),e}return"string"===typeof t?Co(t):void 0}}var Co=x((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),ko=K&&!et,jo="transition",Ao="animation",$o="transition",Eo="transitionend",To="animation",Io="animationend";ko&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&($o="WebkitTransition",Eo="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(To="WebkitAnimation",Io="webkitAnimationEnd"));var Lo=K?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Mo(t){Lo((function(){Lo(t)}))}function Do(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Oo(t,e))}function Bo(t,e){t._transitionClasses&&b(t._transitionClasses,e),_o(t,e)}function Po(t,e,n){var i=Vo(t,e),r=i.type,o=i.timeout,a=i.propCount;if(!r)return n();var s=r===jo?Eo:Io,c=0,l=function(){t.removeEventListener(s,u),n()},u=function(e){e.target===t&&++c>=a&&l()};setTimeout((function(){c<a&&l()}),o+1),t.addEventListener(s,u)}var No=/\b(transform|all)(,|$)/;function Vo(t,e){var n,i=window.getComputedStyle(t),r=(i[$o+"Delay"]||"").split(", "),o=(i[$o+"Duration"]||"").split(", "),a=Ro(r,o),s=(i[To+"Delay"]||"").split(", "),c=(i[To+"Duration"]||"").split(", "),l=Ro(s,c),u=0,h=0;e===jo?a>0&&(n=jo,u=a,h=o.length):e===Ao?l>0&&(n=Ao,u=l,h=c.length):(u=Math.max(a,l),n=u>0?a>l?jo:Ao:null,h=n?n===jo?o.length:c.length:0);var f=n===jo&&No.test(i[$o+"Property"]);return{type:n,timeout:u,propCount:h,hasTransform:f}}function Ro(t,e){while(t.length<e.length)t=t.concat(t);return Math.max.apply(null,e.map((function(e,n){return Fo(e)+Fo(t[n])})))}function Fo(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}function zo(t,e){var n=t.elm;r(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var o=So(t.data.transition);if(!i(o)&&!r(n._enterCb)&&1===n.nodeType){var a=o.css,s=o.type,l=o.enterClass,u=o.enterToClass,h=o.enterActiveClass,f=o.appearClass,d=o.appearToClass,p=o.appearActiveClass,m=o.beforeEnter,g=o.enter,b=o.afterEnter,y=o.enterCancelled,w=o.beforeAppear,x=o.appear,O=o.afterAppear,_=o.appearCancelled,S=o.duration,C=En,k=En.$vnode;while(k&&k.parent)C=k.context,k=k.parent;var j=!C._isMounted||!t.isRootInsert;if(!j||x||""===x){var A=j&&f?f:l,$=j&&p?p:h,E=j&&d?d:u,T=j&&w||m,I=j&&"function"===typeof x?x:g,L=j&&O||b,M=j&&_||y,D=v(c(S)?S.enter:S);0;var B=!1!==a&&!et,P=Uo(I),V=n._enterCb=N((function(){B&&(Bo(n,E),Bo(n,$)),V.cancelled?(B&&Bo(n,A),M&&M(n)):L&&L(n),n._enterCb=null}));t.data.show||xe(t,"insert",(function(){var e=n.parentNode,i=e&&e._pending&&e._pending[t.key];i&&i.tag===t.tag&&i.elm._leaveCb&&i.elm._leaveCb(),I&&I(n,V)})),T&&T(n),B&&(Do(n,A),Do(n,$),Mo((function(){Bo(n,A),V.cancelled||(Do(n,E),P||(Wo(D)?setTimeout(V,D):Po(n,s,V)))}))),t.data.show&&(e&&e(),I&&I(n,V)),B||P||V()}}}function Ho(t,e){var n=t.elm;r(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var o=So(t.data.transition);if(i(o)||1!==n.nodeType)return e();if(!r(n._leaveCb)){var a=o.css,s=o.type,l=o.leaveClass,u=o.leaveToClass,h=o.leaveActiveClass,f=o.beforeLeave,d=o.leave,p=o.afterLeave,m=o.leaveCancelled,g=o.delayLeave,b=o.duration,y=!1!==a&&!et,w=Uo(d),x=v(c(b)?b.leave:b);0;var O=n._leaveCb=N((function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[t.key]=null),y&&(Bo(n,u),Bo(n,h)),O.cancelled?(y&&Bo(n,l),m&&m(n)):(e(),p&&p(n)),n._leaveCb=null}));g?g(_):_()}function _(){O.cancelled||(!t.data.show&&n.parentNode&&((n.parentNode._pending||(n.parentNode._pending={}))[t.key]=t),f&&f(n),y&&(Do(n,l),Do(n,h),Mo((function(){Bo(n,l),O.cancelled||(Do(n,u),w||(Wo(x)?setTimeout(O,x):Po(n,s,O)))}))),d&&d(n,O),y||w||O())}}function Wo(t){return"number"===typeof t&&!isNaN(t)}function Uo(t){if(i(t))return!1;var e=t.fns;return r(e)?Uo(Array.isArray(e)?e[0]:e):(t._length||t.length)>1}function Yo(t,e){!0!==e.data.show&&zo(e)}var qo=K?{create:Yo,activate:Yo,remove:function(t,e){!0!==t.data.show?Ho(t,e):e()}}:{},Xo=[Hr,Yr,no,so,wo,qo],Go=Xo.concat(Vr),Ko=Tr({nodeOps:_r,modules:Go});et&&document.addEventListener("selectionchange",(function(){var t=document.activeElement;t&&t.vmodel&&ra(t,"input")}));var Zo={inserted:function(t,e,n,i){"select"===n.tag?(i.elm&&!i.elm._vOptions?xe(n,"postpatch",(function(){Zo.componentUpdated(t,e,n)})):Jo(t,e,n.context),t._vOptions=[].map.call(t.options,ea)):("textarea"===n.tag||lr(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",na),t.addEventListener("compositionend",ia),t.addEventListener("change",ia),et&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){Jo(t,e,n.context);var i=t._vOptions,r=t._vOptions=[].map.call(t.options,ea);if(r.some((function(t,e){return!B(t,i[e])}))){var o=t.multiple?e.value.some((function(t){return ta(t,r)})):e.value!==e.oldValue&&ta(e.value,r);o&&ra(t,"change")}}}};function Jo(t,e,n){Qo(t,e,n),(tt||nt)&&setTimeout((function(){Qo(t,e,n)}),0)}function Qo(t,e,n){var i=e.value,r=t.multiple;if(!r||Array.isArray(i)){for(var o,a,s=0,c=t.options.length;s<c;s++)if(a=t.options[s],r)o=P(i,ea(a))>-1,a.selected!==o&&(a.selected=o);else if(B(ea(a),i))return void(t.selectedIndex!==s&&(t.selectedIndex=s));r||(t.selectedIndex=-1)}}function ta(t,e){return e.every((function(e){return!B(e,t)}))}function ea(t){return"_value"in t?t._value:t.value}function na(t){t.target.composing=!0}function ia(t){t.target.composing&&(t.target.composing=!1,ra(t.target,"input"))}function ra(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function oa(t){return!t.componentInstance||t.data&&t.data.transition?t:oa(t.componentInstance._vnode)}var aa={bind:function(t,e,n){var i=e.value;n=oa(n);var r=n.data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;i&&r?(n.data.show=!0,zo(n,(function(){t.style.display=o}))):t.style.display=i?o:"none"},update:function(t,e,n){var i=e.value,r=e.oldValue;if(!i!==!r){n=oa(n);var o=n.data&&n.data.transition;o?(n.data.show=!0,i?zo(n,(function(){t.style.display=t.__vOriginalDisplay})):Ho(n,(function(){t.style.display="none"}))):t.style.display=i?t.__vOriginalDisplay:"none"}},unbind:function(t,e,n,i,r){r||(t.style.display=t.__vOriginalDisplay)}},sa={model:Zo,show:aa},ca={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function la(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?la(_n(e.children)):t}function ua(t){var e={},n=t.$options;for(var i in n.propsData)e[i]=t[i];var r=n._parentListeners;for(var o in r)e[_(o)]=r[o];return e}function ha(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function fa(t){while(t=t.parent)if(t.data.transition)return!0}function da(t,e){return e.key===t.key&&e.tag===t.tag}var pa=function(t){return t.tag||On(t)},va=function(t){return"show"===t.name},ma={name:"transition",props:ca,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(pa),n.length)){0;var i=this.mode;0;var r=n[0];if(fa(this.$vnode))return r;var o=la(r);if(!o)return r;if(this._leaving)return ha(t,r);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:s(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var c=(o.data||(o.data={})).transition=ua(this),l=this._vnode,u=la(l);if(o.data.directives&&o.data.directives.some(va)&&(o.data.show=!0),u&&u.data&&!da(o,u)&&!On(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var h=u.data.transition=T({},c);if("out-in"===i)return this._leaving=!0,xe(h,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),ha(t,r);if("in-out"===i){if(On(o))return l;var f,d=function(){f()};xe(c,"afterEnter",d),xe(c,"enterCancelled",d),xe(h,"delayLeave",(function(t){f=t}))}}return r}}},ga=T({tag:String,moveClass:String},ca);delete ga.mode;var ba={props:ga,beforeMount:function(){var t=this,e=this._update;this._update=function(n,i){var r=Tn(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,r(),e.call(t,n,i)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),i=this.prevChildren=this.children,r=this.$slots.default||[],o=this.children=[],a=ua(this),s=0;s<r.length;s++){var c=r[s];if(c.tag)if(null!=c.key&&0!==String(c.key).indexOf("__vlist"))o.push(c),n[c.key]=c,(c.data||(c.data={})).transition=a;else;}if(i){for(var l=[],u=[],h=0;h<i.length;h++){var f=i[h];f.data.transition=a,f.data.pos=f.elm.getBoundingClientRect(),n[f.key]?l.push(f):u.push(f)}this.kept=t(e,null,l),this.removed=u}return t(e,null,o)},updated:function(){var t=this.prevChildren,e=this.moveClass||(this.name||"v")+"-move";t.length&&this.hasMove(t[0].elm,e)&&(t.forEach(ya),t.forEach(wa),t.forEach(xa),this._reflow=document.body.offsetHeight,t.forEach((function(t){if(t.data.moved){var n=t.elm,i=n.style;Do(n,e),i.transform=i.WebkitTransform=i.transitionDuration="",n.addEventListener(Eo,n._moveCb=function t(i){i&&i.target!==n||i&&!/transform$/.test(i.propertyName)||(n.removeEventListener(Eo,t),n._moveCb=null,Bo(n,e))})}})))},methods:{hasMove:function(t,e){if(!ko)return!1;if(this._hasMove)return this._hasMove;var n=t.cloneNode();t._transitionClasses&&t._transitionClasses.forEach((function(t){_o(n,t)})),Oo(n,e),n.style.display="none",this.$el.appendChild(n);var i=Vo(n);return this.$el.removeChild(n),this._hasMove=i.hasTransform}}};function ya(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function wa(t){t.data.newPos=t.elm.getBoundingClientRect()}function xa(t){var e=t.data.pos,n=t.data.newPos,i=e.left-n.left,r=e.top-n.top;if(i||r){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate("+i+"px,"+r+"px)",o.transitionDuration="0s"}}var Oa={Transition:ma,TransitionGroup:ba};_i.config.mustUseProp=Ri,_i.config.isReservedTag=or,_i.config.isReservedAttr=Ni,_i.config.getTagNamespace=ar,_i.config.isUnknownElement=cr,T(_i.options.directives,sa),T(_i.options.components,Oa),_i.prototype.__patch__=K?Ko:L,_i.prototype.$mount=function(t,e){return t=t&&K?ur(t):void 0,Mn(this,t,e)},K&&setTimeout((function(){z.devtools&&lt&&lt.emit("init",_i)}),0),e["a"]=_i}).call(this,n("c8ba"))},"2b19":function(t,e,n){var i=n("23e7"),r=n("129f");i({target:"Object",stat:!0},{is:r})},"2b3d":function(t,e,n){"use strict";n("3ca3");var i,r=n("23e7"),o=n("83ab"),a=n("0d3b"),s=n("da84"),c=n("37e8"),l=n("6eeb"),u=n("19aa"),h=n("5135"),f=n("60da"),d=n("4df4"),p=n("6547").codeAt,v=n("5fb2"),m=n("d44e"),g=n("9861"),b=n("69f3"),y=s.URL,w=g.URLSearchParams,x=g.getState,O=b.set,_=b.getterFor("URL"),S=Math.floor,C=Math.pow,k="Invalid authority",j="Invalid scheme",A="Invalid host",$="Invalid port",E=/[A-Za-z]/,T=/[\d+-.A-Za-z]/,I=/\d/,L=/^(0x|0X)/,M=/^[0-7]+$/,D=/^\d+$/,B=/^[\dA-Fa-f]+$/,P=/[\u0000\u0009\u000A\u000D #%/:?@[\\]]/,N=/[\u0000\u0009\u000A\u000D #/:?@[\\]]/,V=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,R=/[\u0009\u000A\u000D]/g,F=function(t,e){var n,i,r;if("["==e.charAt(0)){if("]"!=e.charAt(e.length-1))return A;if(n=H(e.slice(1,-1)),!n)return A;t.host=n}else if(J(t)){if(e=v(e),P.test(e))return A;if(n=z(e),null===n)return A;t.host=n}else{if(N.test(e))return A;for(n="",i=d(e),r=0;r<i.length;r++)n+=K(i[r],Y);t.host=n}},z=function(t){var e,n,i,r,o,a,s,c=t.split(".");if(c.length&&""==c[c.length-1]&&c.pop(),e=c.length,e>4)return t;for(n=[],i=0;i<e;i++){if(r=c[i],""==r)return t;if(o=10,r.length>1&&"0"==r.charAt(0)&&(o=L.test(r)?16:8,r=r.slice(8==o?1:2)),""===r)a=0;else{if(!(10==o?D:8==o?M:B).test(r))return t;a=parseInt(r,o)}n.push(a)}for(i=0;i<e;i++)if(a=n[i],i==e-1){if(a>=C(256,5-e))return null}else if(a>255)return null;for(s=n.pop(),i=0;i<n.length;i++)s+=n[i]*C(256,3-i);return s},H=function(t){var e,n,i,r,o,a,s,c=[0,0,0,0,0,0,0,0],l=0,u=null,h=0,f=function(){return t.charAt(h)};if(":"==f()){if(":"!=t.charAt(1))return;h+=2,l++,u=l}while(f()){if(8==l)return;if(":"!=f()){e=n=0;while(n<4&&B.test(f()))e=16*e+parseInt(f(),16),h++,n++;if("."==f()){if(0==n)return;if(h-=n,l>6)return;i=0;while(f()){if(r=null,i>0){if(!("."==f()&&i<4))return;h++}if(!I.test(f()))return;while(I.test(f())){if(o=parseInt(f(),10),null===r)r=o;else{if(0==r)return;r=10*r+o}if(r>255)return;h++}c[l]=256*c[l]+r,i++,2!=i&&4!=i||l++}if(4!=i)return;break}if(":"==f()){if(h++,!f())return}else if(f())return;c[l++]=e}else{if(null!==u)return;h++,l++,u=l}}if(null!==u){a=l-u,l=7;while(0!=l&&a>0)s=c[l],c[l--]=c[u+a-1],c[u+--a]=s}else if(8!=l)return;return c},W=function(t){for(var e=null,n=1,i=null,r=0,o=0;o<8;o++)0!==t[o]?(r>n&&(e=i,n=r),i=null,r=0):(null===i&&(i=o),++r);return r>n&&(e=i,n=r),e},U=function(t){var e,n,i,r;if("number"==typeof t){for(e=[],n=0;n<4;n++)e.unshift(t%256),t=S(t/256);return e.join(".")}if("object"==typeof t){for(e="",i=W(t),n=0;n<8;n++)r&&0===t[n]||(r&&(r=!1),i===n?(e+=n?":":"::",r=!0):(e+=t[n].toString(16),n<7&&(e+=":")));return"["+e+"]"}return t},Y={},q=f({},Y,{" ":1,'"':1,"<":1,">":1,"`":1}),X=f({},q,{"#":1,"?":1,"{":1,"}":1}),G=f({},X,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),K=function(t,e){var n=p(t,0);return n>32&&n<127&&!h(e,t)?t:encodeURIComponent(t)},Z={ftp:21,file:null,http:80,https:443,ws:80,wss:443},J=function(t){return h(Z,t.scheme)},Q=function(t){return""!=t.username||""!=t.password},tt=function(t){return!t.host||t.cannotBeABaseURL||"file"==t.scheme},et=function(t,e){var n;return 2==t.length&&E.test(t.charAt(0))&&(":"==(n=t.charAt(1))||!e&&"|"==n)},nt=function(t){var e;return t.length>1&&et(t.slice(0,2))&&(2==t.length||"/"===(e=t.charAt(2))||"\\"===e||"?"===e||"#"===e)},it=function(t){var e=t.path,n=e.length;!n||"file"==t.scheme&&1==n&&et(e[0],!0)||e.pop()},rt=function(t){return"."===t||"%2e"===t.toLowerCase()},ot=function(t){return t=t.toLowerCase(),".."===t||"%2e."===t||".%2e"===t||"%2e%2e"===t},at={},st={},ct={},lt={},ut={},ht={},ft={},dt={},pt={},vt={},mt={},gt={},bt={},yt={},wt={},xt={},Ot={},_t={},St={},Ct={},kt={},jt=function(t,e,n,r){var o,a,s,c,l=n||at,u=0,f="",p=!1,v=!1,m=!1;n||(t.scheme="",t.username="",t.password="",t.host=null,t.port=null,t.path=[],t.query=null,t.fragment=null,t.cannotBeABaseURL=!1,e=e.replace(V,"")),e=e.replace(R,""),o=d(e);while(u<=o.length){switch(a=o[u],l){case at:if(!a||!E.test(a)){if(n)return j;l=ct;continue}f+=a.toLowerCase(),l=st;break;case st:if(a&&(T.test(a)||"+"==a||"-"==a||"."==a))f+=a.toLowerCase();else{if(":"!=a){if(n)return j;f="",l=ct,u=0;continue}if(n&&(J(t)!=h(Z,f)||"file"==f&&(Q(t)||null!==t.port)||"file"==t.scheme&&!t.host))return;if(t.scheme=f,n)return void(J(t)&&Z[t.scheme]==t.port&&(t.port=null));f="","file"==t.scheme?l=yt:J(t)&&r&&r.scheme==t.scheme?l=lt:J(t)?l=dt:"/"==o[u+1]?(l=ut,u++):(t.cannotBeABaseURL=!0,t.path.push(""),l=St)}break;case ct:if(!r||r.cannotBeABaseURL&&"#"!=a)return j;if(r.cannotBeABaseURL&&"#"==a){t.scheme=r.scheme,t.path=r.path.slice(),t.query=r.query,t.fragment="",t.cannotBeABaseURL=!0,l=kt;break}l="file"==r.scheme?yt:ht;continue;case lt:if("/"!=a||"/"!=o[u+1]){l=ht;continue}l=pt,u++;break;case ut:if("/"==a){l=vt;break}l=_t;continue;case ht:if(t.scheme=r.scheme,a==i)t.username=r.username,t.password=r.password,t.host=r.host,t.port=r.port,t.path=r.path.slice(),t.query=r.query;else if("/"==a||"\\"==a&&J(t))l=ft;else if("?"==a)t.username=r.username,t.password=r.password,t.host=r.host,t.port=r.port,t.path=r.path.slice(),t.query="",l=Ct;else{if("#"!=a){t.username=r.username,t.password=r.password,t.host=r.host,t.port=r.port,t.path=r.path.slice(),t.path.pop(),l=_t;continue}t.username=r.username,t.password=r.password,t.host=r.host,t.port=r.port,t.path=r.path.slice(),t.query=r.query,t.fragment="",l=kt}break;case ft:if(!J(t)||"/"!=a&&"\\"!=a){if("/"!=a){t.username=r.username,t.password=r.password,t.host=r.host,t.port=r.port,l=_t;continue}l=vt}else l=pt;break;case dt:if(l=pt,"/"!=a||"/"!=f.charAt(u+1))continue;u++;break;case pt:if("/"!=a&&"\\"!=a){l=vt;continue}break;case vt:if("@"==a){p&&(f="%40"+f),p=!0,s=d(f);for(var g=0;g<s.length;g++){var b=s[g];if(":"!=b||m){var y=K(b,G);m?t.password+=y:t.username+=y}else m=!0}f=""}else if(a==i||"/"==a||"?"==a||"#"==a||"\\"==a&&J(t)){if(p&&""==f)return k;u-=d(f).length+1,f="",l=mt}else f+=a;break;case mt:case gt:if(n&&"file"==t.scheme){l=xt;continue}if(":"!=a||v){if(a==i||"/"==a||"?"==a||"#"==a||"\\"==a&&J(t)){if(J(t)&&""==f)return A;if(n&&""==f&&(Q(t)||null!==t.port))return;if(c=F(t,f),c)return c;if(f="",l=Ot,n)return;continue}"["==a?v=!0:"]"==a&&(v=!1),f+=a}else{if(""==f)return A;if(c=F(t,f),c)return c;if(f="",l=bt,n==gt)return}break;case bt:if(!I.test(a)){if(a==i||"/"==a||"?"==a||"#"==a||"\\"==a&&J(t)||n){if(""!=f){var w=parseInt(f,10);if(w>65535)return $;t.port=J(t)&&w===Z[t.scheme]?null:w,f=""}if(n)return;l=Ot;continue}return $}f+=a;break;case yt:if(t.scheme="file","/"==a||"\\"==a)l=wt;else{if(!r||"file"!=r.scheme){l=_t;continue}if(a==i)t.host=r.host,t.path=r.path.slice(),t.query=r.query;else if("?"==a)t.host=r.host,t.path=r.path.slice(),t.query="",l=Ct;else{if("#"!=a){nt(o.slice(u).join(""))||(t.host=r.host,t.path=r.path.slice(),it(t)),l=_t;continue}t.host=r.host,t.path=r.path.slice(),t.query=r.query,t.fragment="",l=kt}}break;case wt:if("/"==a||"\\"==a){l=xt;break}r&&"file"==r.scheme&&!nt(o.slice(u).join(""))&&(et(r.path[0],!0)?t.path.push(r.path[0]):t.host=r.host),l=_t;continue;case xt:if(a==i||"/"==a||"\\"==a||"?"==a||"#"==a){if(!n&&et(f))l=_t;else if(""==f){if(t.host="",n)return;l=Ot}else{if(c=F(t,f),c)return c;if("localhost"==t.host&&(t.host=""),n)return;f="",l=Ot}continue}f+=a;break;case Ot:if(J(t)){if(l=_t,"/"!=a&&"\\"!=a)continue}else if(n||"?"!=a)if(n||"#"!=a){if(a!=i&&(l=_t,"/"!=a))continue}else t.fragment="",l=kt;else t.query="",l=Ct;break;case _t:if(a==i||"/"==a||"\\"==a&&J(t)||!n&&("?"==a||"#"==a)){if(ot(f)?(it(t),"/"==a||"\\"==a&&J(t)||t.path.push("")):rt(f)?"/"==a||"\\"==a&&J(t)||t.path.push(""):("file"==t.scheme&&!t.path.length&&et(f)&&(t.host&&(t.host=""),f=f.charAt(0)+":"),t.path.push(f)),f="","file"==t.scheme&&(a==i||"?"==a||"#"==a))while(t.path.length>1&&""===t.path[0])t.path.shift();"?"==a?(t.query="",l=Ct):"#"==a&&(t.fragment="",l=kt)}else f+=K(a,X);break;case St:"?"==a?(t.query="",l=Ct):"#"==a?(t.fragment="",l=kt):a!=i&&(t.path[0]+=K(a,Y));break;case Ct:n||"#"!=a?a!=i&&("'"==a&&J(t)?t.query+="%27":t.query+="#"==a?"%23":K(a,Y)):(t.fragment="",l=kt);break;case kt:a!=i&&(t.fragment+=K(a,q));break}u++}},At=function(t){var e,n,i=u(this,At,"URL"),r=arguments.length>1?arguments[1]:void 0,a=String(t),s=O(i,{type:"URL"});if(void 0!==r)if(r instanceof At)e=_(r);else if(n=jt(e={},String(r)),n)throw TypeError(n);if(n=jt(s,a,null,e),n)throw TypeError(n);var c=s.searchParams=new w,l=x(c);l.updateSearchParams(s.query),l.updateURL=function(){s.query=String(c)||null},o||(i.href=Et.call(i),i.origin=Tt.call(i),i.protocol=It.call(i),i.username=Lt.call(i),i.password=Mt.call(i),i.host=Dt.call(i),i.hostname=Bt.call(i),i.port=Pt.call(i),i.pathname=Nt.call(i),i.search=Vt.call(i),i.searchParams=Rt.call(i),i.hash=Ft.call(i))},$t=At.prototype,Et=function(){var t=_(this),e=t.scheme,n=t.username,i=t.password,r=t.host,o=t.port,a=t.path,s=t.query,c=t.fragment,l=e+":";return null!==r?(l+="//",Q(t)&&(l+=n+(i?":"+i:"")+"@"),l+=U(r),null!==o&&(l+=":"+o)):"file"==e&&(l+="//"),l+=t.cannotBeABaseURL?a[0]:a.length?"/"+a.join("/"):"",null!==s&&(l+="?"+s),null!==c&&(l+="#"+c),l},Tt=function(){var t=_(this),e=t.scheme,n=t.port;if("blob"==e)try{return new URL(e.path[0]).origin}catch(i){return"null"}return"file"!=e&&J(t)?e+"://"+U(t.host)+(null!==n?":"+n:""):"null"},It=function(){return _(this).scheme+":"},Lt=function(){return _(this).username},Mt=function(){return _(this).password},Dt=function(){var t=_(this),e=t.host,n=t.port;return null===e?"":null===n?U(e):U(e)+":"+n},Bt=function(){var t=_(this).host;return null===t?"":U(t)},Pt=function(){var t=_(this).port;return null===t?"":String(t)},Nt=function(){var t=_(this),e=t.path;return t.cannotBeABaseURL?e[0]:e.length?"/"+e.join("/"):""},Vt=function(){var t=_(this).query;return t?"?"+t:""},Rt=function(){return _(this).searchParams},Ft=function(){var t=_(this).fragment;return t?"#"+t:""},zt=function(t,e){return{get:t,set:e,configurable:!0,enumerable:!0}};if(o&&c($t,{href:zt(Et,(function(t){var e=_(this),n=String(t),i=jt(e,n);if(i)throw TypeError(i);x(e.searchParams).updateSearchParams(e.query)})),origin:zt(Tt),protocol:zt(It,(function(t){var e=_(this);jt(e,String(t)+":",at)})),username:zt(Lt,(function(t){var e=_(this),n=d(String(t));if(!tt(e)){e.username="";for(var i=0;i<n.length;i++)e.username+=K(n[i],G)}})),password:zt(Mt,(function(t){var e=_(this),n=d(String(t));if(!tt(e)){e.password="";for(var i=0;i<n.length;i++)e.password+=K(n[i],G)}})),host:zt(Dt,(function(t){var e=_(this);e.cannotBeABaseURL||jt(e,String(t),mt)})),hostname:zt(Bt,(function(t){var e=_(this);e.cannotBeABaseURL||jt(e,String(t),gt)})),port:zt(Pt,(function(t){var e=_(this);tt(e)||(t=String(t),""==t?e.port=null:jt(e,t,bt))})),pathname:zt(Nt,(function(t){var e=_(this);e.cannotBeABaseURL||(e.path=[],jt(e,t+"",Ot))})),search:zt(Vt,(function(t){var e=_(this);t=String(t),""==t?e.query=null:("?"==t.charAt(0)&&(t=t.slice(1)),e.query="",jt(e,t,Ct)),x(e.searchParams).updateSearchParams(e.query)})),searchParams:zt(Rt),hash:zt(Ft,(function(t){var e=_(this);t=String(t),""!=t?("#"==t.charAt(0)&&(t=t.slice(1)),e.fragment="",jt(e,t,kt)):e.fragment=null}))}),l($t,"toJSON",(function(){return Et.call(this)}),{enumerable:!0}),l($t,"toString",(function(){return Et.call(this)}),{enumerable:!0}),y){var Ht=y.createObjectURL,Wt=y.revokeObjectURL;Ht&&l(At,"createObjectURL",(function(t){return Ht.apply(y,arguments)})),Wt&&l(At,"revokeObjectURL",(function(t){return Wt.apply(y,arguments)}))}m(At,"URL"),r({global:!0,forced:!a,sham:!o},{URL:At})},"2ca0":function(t,e,n){"use strict";var i=n("23e7"),r=n("06cf").f,o=n("50c4"),a=n("5a34"),s=n("1d80"),c=n("ab13"),l=n("c430"),u="".startsWith,h=Math.min,f=c("startsWith"),d=!l&&!f&&!!function(){var t=r(String.prototype,"startsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!d&&!f},{startsWith:function(t){var e=String(s(this));a(t);var n=o(h(arguments.length>1?arguments[1]:void 0,e.length)),i=String(t);return u?u.call(e,i,n):e.slice(n,n+i.length)===i}})},"2cf4":function(t,e,n){var i,r,o,a=n("da84"),s=n("d039"),c=n("c6b6"),l=n("0366"),u=n("1be4"),h=n("cc12"),f=n("1cdc"),d=a.location,p=a.setImmediate,v=a.clearImmediate,m=a.process,g=a.MessageChannel,b=a.Dispatch,y=0,w={},x="onreadystatechange",O=function(t){if(w.hasOwnProperty(t)){var e=w[t];delete w[t],e()}},_=function(t){return function(){O(t)}},S=function(t){O(t.data)},C=function(t){a.postMessage(t+"",d.protocol+"//"+d.host)};p&&v||(p=function(t){var e=[],n=1;while(arguments.length>n)e.push(arguments[n++]);return w[++y]=function(){("function"==typeof t?t:Function(t)).apply(void 0,e)},i(y),y},v=function(t){delete w[t]},"process"==c(m)?i=function(t){m.nextTick(_(t))}:b&&b.now?i=function(t){b.now(_(t))}:g&&!f?(r=new g,o=r.port2,r.port1.onmessage=S,i=l(o.postMessage,o,1)):!a.addEventListener||"function"!=typeof postMessage||a.importScripts||s(C)||"file:"===d.protocol?i=x in h("script")?function(t){u.appendChild(h("script"))[x]=function(){u.removeChild(this),O(t)}}:function(t){setTimeout(_(t),0)}:(i=C,a.addEventListener("message",S,!1))),t.exports={set:p,clear:v}},"2d00":function(t,e,n){var i,r,o=n("da84"),a=n("342f"),s=o.process,c=s&&s.versions,l=c&&c.v8;l?(i=l.split("."),r=i[0]+i[1]):a&&(i=a.match(/Edge\/(\d+)/),(!i||i[1]>=74)&&(i=a.match(/Chrome\/(\d+)/),i&&(r=i[1]))),t.exports=r&&+r},"2f62":function(t,e,n){"use strict";(function(t){
+/*!
+ * vuex v3.5.1
+ * (c) 2020 Evan You
+ * @license MIT
+ */
+function n(t){var e=Number(t.version.split(".")[0]);if(e>=2)t.mixin({beforeCreate:i});else{var n=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[i].concat(t.init):i,n.call(this,t)}}function i(){var t=this.$options;t.store?this.$store="function"===typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}var i="undefined"!==typeof window?window:"undefined"!==typeof t?t:{},r=i.__VUE_DEVTOOLS_GLOBAL_HOOK__;function o(t){r&&(t._devtoolHook=r,r.emit("vuex:init",t),r.on("vuex:travel-to-state",(function(e){t.replaceState(e)})),t.subscribe((function(t,e){r.emit("vuex:mutation",t,e)}),{prepend:!0}),t.subscribeAction((function(t,e){r.emit("vuex:action",t,e)}),{prepend:!0}))}function a(t,e){return t.filter(e)[0]}function s(t,e){if(void 0===e&&(e=[]),null===t||"object"!==typeof t)return t;var n=a(e,(function(e){return e.original===t}));if(n)return n.copy;var i=Array.isArray(t)?[]:{};return e.push({original:t,copy:i}),Object.keys(t).forEach((function(n){i[n]=s(t[n],e)})),i}function c(t,e){Object.keys(t).forEach((function(n){return e(t[n],n)}))}function l(t){return null!==t&&"object"===typeof t}function u(t){return t&&"function"===typeof t.then}function h(t,e){return function(){return t(e)}}var f=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"===typeof n?n():n)||{}},d={namespaced:{configurable:!0}};d.namespaced.get=function(){return!!this._rawModule.namespaced},f.prototype.addChild=function(t,e){this._children[t]=e},f.prototype.removeChild=function(t){delete this._children[t]},f.prototype.getChild=function(t){return this._children[t]},f.prototype.hasChild=function(t){return t in this._children},f.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},f.prototype.forEachChild=function(t){c(this._children,t)},f.prototype.forEachGetter=function(t){this._rawModule.getters&&c(this._rawModule.getters,t)},f.prototype.forEachAction=function(t){this._rawModule.actions&&c(this._rawModule.actions,t)},f.prototype.forEachMutation=function(t){this._rawModule.mutations&&c(this._rawModule.mutations,t)},Object.defineProperties(f.prototype,d);var p=function(t){this.register([],t,!1)};function v(t,e,n){if(e.update(n),n.modules)for(var i in n.modules){if(!e.getChild(i))return void 0;v(t.concat(i),e.getChild(i),n.modules[i])}}p.prototype.get=function(t){return t.reduce((function(t,e){return t.getChild(e)}),this.root)},p.prototype.getNamespace=function(t){var e=this.root;return t.reduce((function(t,n){return e=e.getChild(n),t+(e.namespaced?n+"/":"")}),"")},p.prototype.update=function(t){v([],this.root,t)},p.prototype.register=function(t,e,n){var i=this;void 0===n&&(n=!0);var r=new f(e,n);if(0===t.length)this.root=r;else{var o=this.get(t.slice(0,-1));o.addChild(t[t.length-1],r)}e.modules&&c(e.modules,(function(e,r){i.register(t.concat(r),e,n)}))},p.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1],i=e.getChild(n);i&&i.runtime&&e.removeChild(n)},p.prototype.isRegistered=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];return e.hasChild(n)};var m;var g=function(t){var e=this;void 0===t&&(t={}),!m&&"undefined"!==typeof window&&window.Vue&&T(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var i=t.strict;void 0===i&&(i=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new p(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new m,this._makeLocalGettersCache=Object.create(null);var r=this,a=this,s=a.dispatch,c=a.commit;this.dispatch=function(t,e){return s.call(r,t,e)},this.commit=function(t,e,n){return c.call(r,t,e,n)},this.strict=i;var l=this._modules.root.state;O(this,l,[],this._modules.root),x(this,l),n.forEach((function(t){return t(e)}));var u=void 0!==t.devtools?t.devtools:m.config.devtools;u&&o(this)},b={state:{configurable:!0}};function y(t,e,n){return e.indexOf(t)<0&&(n&&n.prepend?e.unshift(t):e.push(t)),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function w(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;O(t,n,[],t._modules.root,!0),x(t,n,e)}function x(t,e,n){var i=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var r=t._wrappedGetters,o={};c(r,(function(e,n){o[n]=h(e,t),Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})}));var a=m.config.silent;m.config.silent=!0,t._vm=new m({data:{$$state:e},computed:o}),m.config.silent=a,t.strict&&A(t),i&&(n&&t._withCommit((function(){i._data.$$state=null})),m.nextTick((function(){return i.$destroy()})))}function O(t,e,n,i,r){var o=!n.length,a=t._modules.getNamespace(n);if(i.namespaced&&(t._modulesNamespaceMap[a],t._modulesNamespaceMap[a]=i),!o&&!r){var s=$(e,n.slice(0,-1)),c=n[n.length-1];t._withCommit((function(){m.set(s,c,i.state)}))}var l=i.context=_(t,a,n);i.forEachMutation((function(e,n){var i=a+n;C(t,i,e,l)})),i.forEachAction((function(e,n){var i=e.root?n:a+n,r=e.handler||e;k(t,i,r,l)})),i.forEachGetter((function(e,n){var i=a+n;j(t,i,e,l)})),i.forEachChild((function(i,o){O(t,e,n.concat(o),i,r)}))}function _(t,e,n){var i=""===e,r={dispatch:i?t.dispatch:function(n,i,r){var o=E(n,i,r),a=o.payload,s=o.options,c=o.type;return s&&s.root||(c=e+c),t.dispatch(c,a)},commit:i?t.commit:function(n,i,r){var o=E(n,i,r),a=o.payload,s=o.options,c=o.type;s&&s.root||(c=e+c),t.commit(c,a,s)}};return Object.defineProperties(r,{getters:{get:i?function(){return t.getters}:function(){return S(t,e)}},state:{get:function(){return $(t.state,n)}}}),r}function S(t,e){if(!t._makeLocalGettersCache[e]){var n={},i=e.length;Object.keys(t.getters).forEach((function(r){if(r.slice(0,i)===e){var o=r.slice(i);Object.defineProperty(n,o,{get:function(){return t.getters[r]},enumerable:!0})}})),t._makeLocalGettersCache[e]=n}return t._makeLocalGettersCache[e]}function C(t,e,n,i){var r=t._mutations[e]||(t._mutations[e]=[]);r.push((function(e){n.call(t,i.state,e)}))}function k(t,e,n,i){var r=t._actions[e]||(t._actions[e]=[]);r.push((function(e){var r=n.call(t,{dispatch:i.dispatch,commit:i.commit,getters:i.getters,state:i.state,rootGetters:t.getters,rootState:t.state},e);return u(r)||(r=Promise.resolve(r)),t._devtoolHook?r.catch((function(e){throw t._devtoolHook.emit("vuex:error",e),e})):r}))}function j(t,e,n,i){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(t){return n(i.state,i.getters,t.state,t.getters)})}function A(t){t._vm.$watch((function(){return this._data.$$state}),(function(){0}),{deep:!0,sync:!0})}function $(t,e){return e.reduce((function(t,e){return t[e]}),t)}function E(t,e,n){return l(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function T(t){m&&t===m||(m=t,n(m))}b.state.get=function(){return this._vm._data.$$state},b.state.set=function(t){0},g.prototype.commit=function(t,e,n){var i=this,r=E(t,e,n),o=r.type,a=r.payload,s=(r.options,{type:o,payload:a}),c=this._mutations[o];c&&(this._withCommit((function(){c.forEach((function(t){t(a)}))})),this._subscribers.slice().forEach((function(t){return t(s,i.state)})))},g.prototype.dispatch=function(t,e){var n=this,i=E(t,e),r=i.type,o=i.payload,a={type:r,payload:o},s=this._actions[r];if(s){try{this._actionSubscribers.slice().filter((function(t){return t.before})).forEach((function(t){return t.before(a,n.state)}))}catch(l){0}var c=s.length>1?Promise.all(s.map((function(t){return t(o)}))):s[0](o);return new Promise((function(t,e){c.then((function(e){try{n._actionSubscribers.filter((function(t){return t.after})).forEach((function(t){return t.after(a,n.state)}))}catch(l){0}t(e)}),(function(t){try{n._actionSubscribers.filter((function(t){return t.error})).forEach((function(e){return e.error(a,n.state,t)}))}catch(l){0}e(t)}))}))}},g.prototype.subscribe=function(t,e){return y(t,this._subscribers,e)},g.prototype.subscribeAction=function(t,e){var n="function"===typeof t?{before:t}:t;return y(n,this._actionSubscribers,e)},g.prototype.watch=function(t,e,n){var i=this;return this._watcherVM.$watch((function(){return t(i.state,i.getters)}),e,n)},g.prototype.replaceState=function(t){var e=this;this._withCommit((function(){e._vm._data.$$state=t}))},g.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"===typeof t&&(t=[t]),this._modules.register(t,e),O(this,this.state,t,this._modules.get(t),n.preserveState),x(this,this.state)},g.prototype.unregisterModule=function(t){var e=this;"string"===typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit((function(){var n=$(e.state,t.slice(0,-1));m.delete(n,t[t.length-1])})),w(this)},g.prototype.hasModule=function(t){return"string"===typeof t&&(t=[t]),this._modules.isRegistered(t)},g.prototype.hotUpdate=function(t){this._modules.update(t),w(this,!0)},g.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(g.prototype,b);var I=V((function(t,e){var n={};return P(e).forEach((function(e){var i=e.key,r=e.val;n[i]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var i=R(this.$store,"mapState",t);if(!i)return;e=i.context.state,n=i.context.getters}return"function"===typeof r?r.call(this,e,n):e[r]},n[i].vuex=!0})),n})),L=V((function(t,e){var n={};return P(e).forEach((function(e){var i=e.key,r=e.val;n[i]=function(){var e=[],n=arguments.length;while(n--)e[n]=arguments[n];var i=this.$store.commit;if(t){var o=R(this.$store,"mapMutations",t);if(!o)return;i=o.context.commit}return"function"===typeof r?r.apply(this,[i].concat(e)):i.apply(this.$store,[r].concat(e))}})),n})),M=V((function(t,e){var n={};return P(e).forEach((function(e){var i=e.key,r=e.val;r=t+r,n[i]=function(){if(!t||R(this.$store,"mapGetters",t))return this.$store.getters[r]},n[i].vuex=!0})),n})),D=V((function(t,e){var n={};return P(e).forEach((function(e){var i=e.key,r=e.val;n[i]=function(){var e=[],n=arguments.length;while(n--)e[n]=arguments[n];var i=this.$store.dispatch;if(t){var o=R(this.$store,"mapActions",t);if(!o)return;i=o.context.dispatch}return"function"===typeof r?r.apply(this,[i].concat(e)):i.apply(this.$store,[r].concat(e))}})),n})),B=function(t){return{mapState:I.bind(null,t),mapGetters:M.bind(null,t),mapMutations:L.bind(null,t),mapActions:D.bind(null,t)}};function P(t){return N(t)?Array.isArray(t)?t.map((function(t){return{key:t,val:t}})):Object.keys(t).map((function(e){return{key:e,val:t[e]}})):[]}function N(t){return Array.isArray(t)||l(t)}function V(t){return function(e,n){return"string"!==typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function R(t,e,n){var i=t._modulesNamespaceMap[n];return i}function F(t){void 0===t&&(t={});var e=t.collapsed;void 0===e&&(e=!0);var n=t.filter;void 0===n&&(n=function(t,e,n){return!0});var i=t.transformer;void 0===i&&(i=function(t){return t});var r=t.mutationTransformer;void 0===r&&(r=function(t){return t});var o=t.actionFilter;void 0===o&&(o=function(t,e){return!0});var a=t.actionTransformer;void 0===a&&(a=function(t){return t});var c=t.logMutations;void 0===c&&(c=!0);var l=t.logActions;void 0===l&&(l=!0);var u=t.logger;return void 0===u&&(u=console),function(t){var h=s(t.state);"undefined"!==typeof u&&(c&&t.subscribe((function(t,o){var a=s(o);if(n(t,h,a)){var c=W(),l=r(t),f="mutation "+t.type+c;z(u,f,e),u.log("%c prev state","color: #9E9E9E; font-weight: bold",i(h)),u.log("%c mutation","color: #03A9F4; font-weight: bold",l),u.log("%c next state","color: #4CAF50; font-weight: bold",i(a)),H(u)}h=a})),l&&t.subscribeAction((function(t,n){if(o(t,n)){var i=W(),r=a(t),s="action "+t.type+i;z(u,s,e),u.log("%c action","color: #03A9F4; font-weight: bold",r),H(u)}})))}}function z(t,e,n){var i=n?t.groupCollapsed:t.group;try{i.call(t,e)}catch(r){t.log(e)}}function H(t){try{t.groupEnd()}catch(e){t.log("—— log end ——")}}function W(){var t=new Date;return" @ "+Y(t.getHours(),2)+":"+Y(t.getMinutes(),2)+":"+Y(t.getSeconds(),2)+"."+Y(t.getMilliseconds(),3)}function U(t,e){return new Array(e+1).join(t)}function Y(t,e){return U("0",e-t.toString().length)+t}var q={Store:g,install:T,version:"3.5.1",mapState:I,mapMutations:L,mapGetters:M,mapActions:D,createNamespacedHelpers:B,createLogger:F};e["a"]=q}).call(this,n("c8ba"))},"2fa4":function(t,e,n){"use strict";n("20f6");var i=n("80d2");e["a"]=Object(i["h"])("spacer","div","v-spacer")},"310e":function(t,e,n){t.exports=function(t){var e={};function n(i){if(e[i])return e[i].exports;var r=e[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(i,r,function(e){return t[e]}.bind(null,r));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="fb15")}({"01f9":function(t,e,n){"use strict";var i=n("2d00"),r=n("5ca1"),o=n("2aba"),a=n("32e9"),s=n("84f2"),c=n("41a0"),l=n("7f20"),u=n("38fd"),h=n("2b4c")("iterator"),f=!([].keys&&"next"in[].keys()),d="@@iterator",p="keys",v="values",m=function(){return this};t.exports=function(t,e,n,g,b,y,w){c(n,e,g);var x,O,_,S=function(t){if(!f&&t in A)return A[t];switch(t){case p:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this,t)}},C=e+" Iterator",k=b==v,j=!1,A=t.prototype,$=A[h]||A[d]||b&&A[b],E=$||S(b),T=b?k?S("entries"):E:void 0,I="Array"==e&&A.entries||$;if(I&&(_=u(I.call(new t)),_!==Object.prototype&&_.next&&(l(_,C,!0),i||"function"==typeof _[h]||a(_,h,m))),k&&$&&$.name!==v&&(j=!0,E=function(){return $.call(this)}),i&&!w||!f&&!j&&A[h]||a(A,h,E),s[e]=E,s[C]=m,b)if(x={values:k?E:S(v),keys:y?E:S(p),entries:T},w)for(O in x)O in A||o(A,O,x[O]);else r(r.P+r.F*(f||j),e,x);return x}},"02f4":function(t,e,n){var i=n("4588"),r=n("be13");t.exports=function(t){return function(e,n){var o,a,s=String(r(e)),c=i(n),l=s.length;return c<0||c>=l?t?"":void 0:(o=s.charCodeAt(c),o<55296||o>56319||c+1===l||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):o:t?s.slice(c,c+2):a-56320+(o-55296<<10)+65536)}}},"0390":function(t,e,n){"use strict";var i=n("02f4")(!0);t.exports=function(t,e,n){return e+(n?i(t,e).length:1)}},"0bfb":function(t,e,n){"use strict";var i=n("cb7c");t.exports=function(){var t=i(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"0d58":function(t,e,n){var i=n("ce10"),r=n("e11e");t.exports=Object.keys||function(t){return i(t,r)}},1495:function(t,e,n){var i=n("86cc"),r=n("cb7c"),o=n("0d58");t.exports=n("9e1e")?Object.defineProperties:function(t,e){r(t);var n,a=o(e),s=a.length,c=0;while(s>c)i.f(t,n=a[c++],e[n]);return t}},"214f":function(t,e,n){"use strict";n("b0c5");var i=n("2aba"),r=n("32e9"),o=n("79e5"),a=n("be13"),s=n("2b4c"),c=n("520a"),l=s("species"),u=!o((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),h=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var f=s(t),d=!o((function(){var e={};return e[f]=function(){return 7},7!=""[t](e)})),p=d?!o((function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[l]=function(){return n}),n[f](""),!e})):void 0;if(!d||!p||"replace"===t&&!u||"split"===t&&!h){var v=/./[f],m=n(a,f,""[t],(function(t,e,n,i,r){return e.exec===c?d&&!r?{done:!0,value:v.call(e,n,i)}:{done:!0,value:t.call(n,e,i)}:{done:!1}})),g=m[0],b=m[1];i(String.prototype,t,g),r(RegExp.prototype,f,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}}},"230e":function(t,e,n){var i=n("d3f4"),r=n("7726").document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},"23c6":function(t,e,n){var i=n("2d95"),r=n("2b4c")("toStringTag"),o="Arguments"==i(function(){return arguments}()),a=function(t,e){try{return t[e]}catch(n){}};t.exports=function(t){var e,n,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=a(e=Object(t),r))?n:o?i(e):"Object"==(s=i(e))&&"function"==typeof e.callee?"Arguments":s}},2621:function(t,e){e.f=Object.getOwnPropertySymbols},"2aba":function(t,e,n){var i=n("7726"),r=n("32e9"),o=n("69a8"),a=n("ca5a")("src"),s=n("fa5b"),c="toString",l=(""+s).split(c);n("8378").inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,n,s){var c="function"==typeof n;c&&(o(n,"name")||r(n,"name",e)),t[e]!==n&&(c&&(o(n,a)||r(n,a,t[e]?""+t[e]:l.join(String(e)))),t===i?t[e]=n:s?t[e]?t[e]=n:r(t,e,n):(delete t[e],r(t,e,n)))})(Function.prototype,c,(function(){return"function"==typeof this&&this[a]||s.call(this)}))},"2aeb":function(t,e,n){var i=n("cb7c"),r=n("1495"),o=n("e11e"),a=n("613b")("IE_PROTO"),s=function(){},c="prototype",l=function(){var t,e=n("230e")("iframe"),i=o.length,r="<",a=">";e.style.display="none",n("fab2").appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(r+"script"+a+"document.F=Object"+r+"/script"+a),t.close(),l=t.F;while(i--)delete l[c][o[i]];return l()};t.exports=Object.create||function(t,e){var n;return null!==t?(s[c]=i(t),n=new s,s[c]=null,n[a]=t):n=l(),void 0===e?n:r(n,e)}},"2b4c":function(t,e,n){var i=n("5537")("wks"),r=n("ca5a"),o=n("7726").Symbol,a="function"==typeof o,s=t.exports=function(t){return i[t]||(i[t]=a&&o[t]||(a?o:r)("Symbol."+t))};s.store=i},"2d00":function(t,e){t.exports=!1},"2d95":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"2fdb":function(t,e,n){"use strict";var i=n("5ca1"),r=n("d2c8"),o="includes";i(i.P+i.F*n("5147")(o),"String",{includes:function(t){return!!~r(this,t,o).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},"32e9":function(t,e,n){var i=n("86cc"),r=n("4630");t.exports=n("9e1e")?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},"38fd":function(t,e,n){var i=n("69a8"),r=n("4bf8"),o=n("613b")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},"41a0":function(t,e,n){"use strict";var i=n("2aeb"),r=n("4630"),o=n("7f20"),a={};n("32e9")(a,n("2b4c")("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=i(a,{next:r(1,n)}),o(t,e+" Iterator")}},"456d":function(t,e,n){var i=n("4bf8"),r=n("0d58");n("5eda")("keys",(function(){return function(t){return r(i(t))}}))},4588:function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},4630:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"4bf8":function(t,e,n){var i=n("be13");t.exports=function(t){return Object(i(t))}},5147:function(t,e,n){var i=n("2b4c")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[i]=!1,!"/./"[t](e)}catch(r){}}return!0}},"520a":function(t,e,n){"use strict";var i=n("0bfb"),r=RegExp.prototype.exec,o=String.prototype.replace,a=r,s="lastIndex",c=function(){var t=/a/,e=/b*/g;return r.call(t,"a"),r.call(e,"a"),0!==t[s]||0!==e[s]}(),l=void 0!==/()??/.exec("")[1],u=c||l;u&&(a=function(t){var e,n,a,u,h=this;return l&&(n=new RegExp("^"+h.source+"$(?!\\s)",i.call(h))),c&&(e=h[s]),a=r.call(h,t),c&&a&&(h[s]=h.global?a.index+a[0].length:e),l&&a&&a.length>1&&o.call(a[0],n,(function(){for(u=1;u<arguments.length-2;u++)void 0===arguments[u]&&(a[u]=void 0)})),a}),t.exports=a},"52a7":function(t,e){e.f={}.propertyIsEnumerable},5537:function(t,e,n){var i=n("8378"),r=n("7726"),o="__core-js_shared__",a=r[o]||(r[o]={});(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:i.version,mode:n("2d00")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},"5ca1":function(t,e,n){var i=n("7726"),r=n("8378"),o=n("32e9"),a=n("2aba"),s=n("9b43"),c="prototype",l=function(t,e,n){var u,h,f,d,p=t&l.F,v=t&l.G,m=t&l.S,g=t&l.P,b=t&l.B,y=v?i:m?i[e]||(i[e]={}):(i[e]||{})[c],w=v?r:r[e]||(r[e]={}),x=w[c]||(w[c]={});for(u in v&&(n=e),n)h=!p&&y&&void 0!==y[u],f=(h?y:n)[u],d=b&&h?s(f,i):g&&"function"==typeof f?s(Function.call,f):f,y&&a(y,u,f,t&l.U),w[u]!=f&&o(w,u,d),g&&x[u]!=f&&(x[u]=f)};i.core=r,l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,t.exports=l},"5eda":function(t,e,n){var i=n("5ca1"),r=n("8378"),o=n("79e5");t.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],a={};a[t]=e(n),i(i.S+i.F*o((function(){n(1)})),"Object",a)}},"5f1b":function(t,e,n){"use strict";var i=n("23c6"),r=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"===typeof n){var o=n.call(t,e);if("object"!==typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==i(t))throw new TypeError("RegExp#exec called on incompatible receiver");return r.call(t,e)}},"613b":function(t,e,n){var i=n("5537")("keys"),r=n("ca5a");t.exports=function(t){return i[t]||(i[t]=r(t))}},"626a":function(t,e,n){var i=n("2d95");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},6762:function(t,e,n){"use strict";var i=n("5ca1"),r=n("c366")(!0);i(i.P,"Array",{includes:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")("includes")},6821:function(t,e,n){var i=n("626a"),r=n("be13");t.exports=function(t){return i(r(t))}},"69a8":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},"6a99":function(t,e,n){var i=n("d3f4");t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},7333:function(t,e,n){"use strict";var i=n("9e1e"),r=n("0d58"),o=n("2621"),a=n("52a7"),s=n("4bf8"),c=n("626a"),l=Object.assign;t.exports=!l||n("79e5")((function(){var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach((function(t){e[t]=t})),7!=l({},t)[n]||Object.keys(l({},e)).join("")!=i}))?function(t,e){var n=s(t),l=arguments.length,u=1,h=o.f,f=a.f;while(l>u){var d,p=c(arguments[u++]),v=h?r(p).concat(h(p)):r(p),m=v.length,g=0;while(m>g)d=v[g++],i&&!f.call(p,d)||(n[d]=p[d])}return n}:l},7726:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"77f1":function(t,e,n){var i=n("4588"),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},"79e5":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},"7f20":function(t,e,n){var i=n("86cc").f,r=n("69a8"),o=n("2b4c")("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},8378:function(t,e){var n=t.exports={version:"2.6.11"};"number"==typeof __e&&(__e=n)},"84f2":function(t,e){t.exports={}},"86cc":function(t,e,n){var i=n("cb7c"),r=n("c69a"),o=n("6a99"),a=Object.defineProperty;e.f=n("9e1e")?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return a(t,e,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},"9b43":function(t,e,n){var i=n("d8e8");t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},"9c6c":function(t,e,n){var i=n("2b4c")("unscopables"),r=Array.prototype;void 0==r[i]&&n("32e9")(r,i,{}),t.exports=function(t){r[i][t]=!0}},"9def":function(t,e,n){var i=n("4588"),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},"9e1e":function(t,e,n){t.exports=!n("79e5")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},a352:function(t,e){t.exports=n("aa47")},a481:function(t,e,n){"use strict";var i=n("cb7c"),r=n("4bf8"),o=n("9def"),a=n("4588"),s=n("0390"),c=n("5f1b"),l=Math.max,u=Math.min,h=Math.floor,f=/\$([$&`']|\d\d?|<[^>]*>)/g,d=/\$([$&`']|\d\d?)/g,p=function(t){return void 0===t?t:String(t)};n("214f")("replace",2,(function(t,e,n,v){return[function(i,r){var o=t(this),a=void 0==i?void 0:i[e];return void 0!==a?a.call(i,o,r):n.call(String(o),i,r)},function(t,e){var r=v(n,t,this,e);if(r.done)return r.value;var h=i(t),f=String(this),d="function"===typeof e;d||(e=String(e));var g=h.global;if(g){var b=h.unicode;h.lastIndex=0}var y=[];while(1){var w=c(h,f);if(null===w)break;if(y.push(w),!g)break;var x=String(w[0]);""===x&&(h.lastIndex=s(f,o(h.lastIndex),b))}for(var O="",_=0,S=0;S<y.length;S++){w=y[S];for(var C=String(w[0]),k=l(u(a(w.index),f.length),0),j=[],A=1;A<w.length;A++)j.push(p(w[A]));var $=w.groups;if(d){var E=[C].concat(j,k,f);void 0!==$&&E.push($);var T=String(e.apply(void 0,E))}else T=m(C,f,k,j,$,e);k>=_&&(O+=f.slice(_,k)+T,_=k+C.length)}return O+f.slice(_)}];function m(t,e,i,o,a,s){var c=i+t.length,l=o.length,u=d;return void 0!==a&&(a=r(a),u=f),n.call(s,u,(function(n,r){var s;switch(r.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,i);case"'":return e.slice(c);case"<":s=a[r.slice(1,-1)];break;default:var u=+r;if(0===u)return n;if(u>l){var f=h(u/10);return 0===f?n:f<=l?void 0===o[f-1]?r.charAt(1):o[f-1]+r.charAt(1):n}s=o[u-1]}return void 0===s?"":s}))}}))},aae3:function(t,e,n){var i=n("d3f4"),r=n("2d95"),o=n("2b4c")("match");t.exports=function(t){var e;return i(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==r(t))}},ac6a:function(t,e,n){for(var i=n("cadf"),r=n("0d58"),o=n("2aba"),a=n("7726"),s=n("32e9"),c=n("84f2"),l=n("2b4c"),u=l("iterator"),h=l("toStringTag"),f=c.Array,d={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},p=r(d),v=0;v<p.length;v++){var m,g=p[v],b=d[g],y=a[g],w=y&&y.prototype;if(w&&(w[u]||s(w,u,f),w[h]||s(w,h,g),c[g]=f,b))for(m in i)w[m]||o(w,m,i[m],!0)}},b0c5:function(t,e,n){"use strict";var i=n("520a");n("5ca1")({target:"RegExp",proto:!0,forced:i!==/./.exec},{exec:i})},be13:function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on  "+t);return t}},c366:function(t,e,n){var i=n("6821"),r=n("9def"),o=n("77f1");t.exports=function(t){return function(e,n,a){var s,c=i(e),l=r(c.length),u=o(a,l);if(t&&n!=n){while(l>u)if(s=c[u++],s!=s)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}}},c649:function(t,e,n){"use strict";(function(t){n.d(e,"c",(function(){return l})),n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return r})),n.d(e,"d",(function(){return c}));n("a481");function i(){return"undefined"!==typeof window?window.console:t.console}var r=i();function o(t){var e=Object.create(null);return function(n){var i=e[n];return i||(e[n]=t(n))}}var a=/-(\w)/g,s=o((function(t){return t.replace(a,(function(t,e){return e?e.toUpperCase():""}))}));function c(t){null!==t.parentElement&&t.parentElement.removeChild(t)}function l(t,e,n){var i=0===n?t.children[0]:t.children[n-1].nextSibling;t.insertBefore(e,i)}}).call(this,n("c8ba"))},c69a:function(t,e,n){t.exports=!n("9e1e")&&!n("79e5")((function(){return 7!=Object.defineProperty(n("230e")("div"),"a",{get:function(){return 7}}).a}))},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(i){"object"===typeof window&&(n=window)}t.exports=n},ca5a:function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},cadf:function(t,e,n){"use strict";var i=n("9c6c"),r=n("d53b"),o=n("84f2"),a=n("6821");t.exports=n("01f9")(Array,"Array",(function(t,e){this._t=a(t),this._i=0,this._k=e}),(function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,r(1)):r(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])}),"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},cb7c:function(t,e,n){var i=n("d3f4");t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},ce10:function(t,e,n){var i=n("69a8"),r=n("6821"),o=n("c366")(!1),a=n("613b")("IE_PROTO");t.exports=function(t,e){var n,s=r(t),c=0,l=[];for(n in s)n!=a&&i(s,n)&&l.push(n);while(e.length>c)i(s,n=e[c++])&&(~o(l,n)||l.push(n));return l}},d2c8:function(t,e,n){var i=n("aae3"),r=n("be13");t.exports=function(t,e,n){if(i(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(r(t))}},d3f4:function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},d53b:function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},d8e8:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},e11e:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},f559:function(t,e,n){"use strict";var i=n("5ca1"),r=n("9def"),o=n("d2c8"),a="startsWith",s=""[a];i(i.P+i.F*n("5147")(a),"String",{startsWith:function(t){var e=o(this,t,a),n=r(Math.min(arguments.length>1?arguments[1]:void 0,e.length)),i=String(t);return s?s.call(e,i,n):e.slice(n,n+i.length)===i}})},f6fd:function(t,e){(function(t){var e="currentScript",n=t.getElementsByTagName("script");e in t||Object.defineProperty(t,e,{get:function(){try{throw new Error}catch(i){var t,e=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(i.stack)||[!1])[1];for(t in n)if(n[t].src==e||"interactive"==n[t].readyState)return n[t];return null}}})})(document)},f751:function(t,e,n){var i=n("5ca1");i(i.S+i.F,"Object",{assign:n("7333")})},fa5b:function(t,e,n){t.exports=n("5537")("native-function-to-string",Function.toString)},fab2:function(t,e,n){var i=n("7726").document;t.exports=i&&i.documentElement},fb15:function(t,e,n){"use strict";var i;(n.r(e),"undefined"!==typeof window)&&(n("f6fd"),(i=window.document.currentScript)&&(i=i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(n.p=i[1]));n("f751"),n("f559"),n("ac6a"),n("cadf"),n("456d");function r(t){if(Array.isArray(t))return t}function o(t,e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t)){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(i=(a=s.next()).done);i=!0)if(n.push(a.value),e&&n.length===e)break}catch(c){r=!0,o=c}finally{try{i||null==s["return"]||s["return"]()}finally{if(r)throw o}}return n}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}function s(t,e){if(t){if("string"===typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(t,e):void 0}}function c(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function l(t,e){return r(t)||o(t,e)||s(t,e)||c()}n("6762"),n("2fdb");function u(t){if(Array.isArray(t))return a(t)}function h(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}function f(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function d(t){return u(t)||h(t)||s(t)||f()}var p=n("a352"),v=n.n(p),m=n("c649");function g(t,e,n){return void 0===n||(t=t||{},t[e]=n),t}function b(t,e){return t.map((function(t){return t.elm})).indexOf(e)}function y(t,e,n,i){if(!t)return[];var r=t.map((function(t){return t.elm})),o=e.length-i,a=d(e).map((function(t,e){return e>=o?r.length:r.indexOf(t)}));return n?a.filter((function(t){return-1!==t})):a}function w(t,e){var n=this;this.$nextTick((function(){return n.$emit(t.toLowerCase(),e)}))}function x(t){var e=this;return function(n){null!==e.realList&&e["onDrag"+t](n),w.call(e,t,n)}}function O(t){return["transition-group","TransitionGroup"].includes(t)}function _(t){if(!t||1!==t.length)return!1;var e=l(t,1),n=e[0].componentOptions;return!!n&&O(n.tag)}function S(t,e,n){return t[n]||(e[n]?e[n]():void 0)}function C(t,e,n){var i=0,r=0,o=S(e,n,"header");o&&(i=o.length,t=t?[].concat(d(o),d(t)):d(o));var a=S(e,n,"footer");return a&&(r=a.length,t=t?[].concat(d(t),d(a)):d(a)),{children:t,headerOffset:i,footerOffset:r}}function k(t,e){var n=null,i=function(t,e){n=g(n,t,e)},r=Object.keys(t).filter((function(t){return"id"===t||t.startsWith("data-")})).reduce((function(e,n){return e[n]=t[n],e}),{});if(i("attrs",r),!e)return n;var o=e.on,a=e.props,s=e.attrs;return i("on",o),i("props",a),Object.assign(n.attrs,s),n}var j=["Start","Add","Remove","Update","End"],A=["Choose","Unchoose","Sort","Filter","Clone"],$=["Move"].concat(j,A).map((function(t){return"on"+t})),E=null,T={options:Object,list:{type:Array,required:!1,default:null},value:{type:Array,required:!1,default:null},noTransitionOnDrag:{type:Boolean,default:!1},clone:{type:Function,default:function(t){return t}},element:{type:String,default:"div"},tag:{type:String,default:null},move:{type:Function,default:null},componentData:{type:Object,required:!1,default:null}},I={name:"draggable",inheritAttrs:!1,props:T,data:function(){return{transitionMode:!1,noneFunctionalComponentMode:!1}},render:function(t){var e=this.$slots.default;this.transitionMode=_(e);var n=C(e,this.$slots,this.$scopedSlots),i=n.children,r=n.headerOffset,o=n.footerOffset;this.headerOffset=r,this.footerOffset=o;var a=k(this.$attrs,this.componentData);return t(this.getTag(),a,i)},created:function(){null!==this.list&&null!==this.value&&m["b"].error("Value and list props are mutually exclusive! Please set one or another."),"div"!==this.element&&m["b"].warn("Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props"),void 0!==this.options&&m["b"].warn("Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props")},mounted:function(){var t=this;if(this.noneFunctionalComponentMode=this.getTag().toLowerCase()!==this.$el.nodeName.toLowerCase()&&!this.getIsFunctional(),this.noneFunctionalComponentMode&&this.transitionMode)throw new Error("Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: ".concat(this.getTag()));var e={};j.forEach((function(n){e["on"+n]=x.call(t,n)})),A.forEach((function(n){e["on"+n]=w.bind(t,n)}));var n=Object.keys(this.$attrs).reduce((function(e,n){return e[Object(m["a"])(n)]=t.$attrs[n],e}),{}),i=Object.assign({},this.options,n,e,{onMove:function(e,n){return t.onDragMove(e,n)}});!("draggable"in i)&&(i.draggable=">*"),this._sortable=new v.a(this.rootContainer,i),this.computeIndexes()},beforeDestroy:function(){void 0!==this._sortable&&this._sortable.destroy()},computed:{rootContainer:function(){return this.transitionMode?this.$el.children[0]:this.$el},realList:function(){return this.list?this.list:this.value}},watch:{options:{handler:function(t){this.updateOptions(t)},deep:!0},$attrs:{handler:function(t){this.updateOptions(t)},deep:!0},realList:function(){this.computeIndexes()}},methods:{getIsFunctional:function(){var t=this._vnode.fnOptions;return t&&t.functional},getTag:function(){return this.tag||this.element},updateOptions:function(t){for(var e in t){var n=Object(m["a"])(e);-1===$.indexOf(n)&&this._sortable.option(n,t[e])}},getChildrenNodes:function(){if(this.noneFunctionalComponentMode)return this.$children[0].$slots.default;var t=this.$slots.default;return this.transitionMode?t[0].child.$slots.default:t},computeIndexes:function(){var t=this;this.$nextTick((function(){t.visibleIndexes=y(t.getChildrenNodes(),t.rootContainer.children,t.transitionMode,t.footerOffset)}))},getUnderlyingVm:function(t){var e=b(this.getChildrenNodes()||[],t);if(-1===e)return null;var n=this.realList[e];return{index:e,element:n}},getUnderlyingPotencialDraggableComponent:function(t){var e=t.__vue__;return e&&e.$options&&O(e.$options._componentTag)?e.$parent:!("realList"in e)&&1===e.$children.length&&"realList"in e.$children[0]?e.$children[0]:e},emitChanges:function(t){var e=this;this.$nextTick((function(){e.$emit("change",t)}))},alterList:function(t){if(this.list)t(this.list);else{var e=d(this.value);t(e),this.$emit("input",e)}},spliceList:function(){var t=arguments,e=function(e){return e.splice.apply(e,d(t))};this.alterList(e)},updatePosition:function(t,e){var n=function(n){return n.splice(e,0,n.splice(t,1)[0])};this.alterList(n)},getRelatedContextFromMoveEvent:function(t){var e=t.to,n=t.related,i=this.getUnderlyingPotencialDraggableComponent(e);if(!i)return{component:i};var r=i.realList,o={list:r,component:i};if(e!==n&&r&&i.getUnderlyingVm){var a=i.getUnderlyingVm(n);if(a)return Object.assign(a,o)}return o},getVmIndex:function(t){var e=this.visibleIndexes,n=e.length;return t>n-1?n:e[t]},getComponent:function(){return this.$slots.default[0].componentInstance},resetTransitionData:function(t){if(this.noTransitionOnDrag&&this.transitionMode){var e=this.getChildrenNodes();e[t].data=null;var n=this.getComponent();n.children=[],n.kept=void 0}},onDragStart:function(t){this.context=this.getUnderlyingVm(t.item),t.item._underlying_vm_=this.clone(this.context.element),E=t.item},onDragAdd:function(t){var e=t.item._underlying_vm_;if(void 0!==e){Object(m["d"])(t.item);var n=this.getVmIndex(t.newIndex);this.spliceList(n,0,e),this.computeIndexes();var i={element:e,newIndex:n};this.emitChanges({added:i})}},onDragRemove:function(t){if(Object(m["c"])(this.rootContainer,t.item,t.oldIndex),"clone"!==t.pullMode){var e=this.context.index;this.spliceList(e,1);var n={element:this.context.element,oldIndex:e};this.resetTransitionData(e),this.emitChanges({removed:n})}else Object(m["d"])(t.clone)},onDragUpdate:function(t){Object(m["d"])(t.item),Object(m["c"])(t.from,t.item,t.oldIndex);var e=this.context.index,n=this.getVmIndex(t.newIndex);this.updatePosition(e,n);var i={element:this.context.element,oldIndex:e,newIndex:n};this.emitChanges({moved:i})},updateProperty:function(t,e){t.hasOwnProperty(e)&&(t[e]+=this.headerOffset)},computeFutureIndex:function(t,e){if(!t.element)return 0;var n=d(e.to.children).filter((function(t){return"none"!==t.style["display"]})),i=n.indexOf(e.related),r=t.component.getVmIndex(i),o=-1!==n.indexOf(E);return o||!e.willInsertAfter?r:r+1},onDragMove:function(t,e){var n=this.move;if(!n||!this.realList)return!0;var i=this.getRelatedContextFromMoveEvent(t),r=this.context,o=this.computeFutureIndex(i,t);Object.assign(r,{futureIndex:o});var a=Object.assign({},t,{relatedContext:i,draggedContext:r});return n(a,e)},onDragEnd:function(){this.computeIndexes(),E=null}}};"undefined"!==typeof window&&"Vue"in window&&window.Vue.component("draggable",I);var L=I;e["default"]=L}})["default"]},3206:function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return c}));n("99af");var i=n("ade3"),r=n("2b0e"),o=n("d9bd");function a(t,e){return function(){return Object(o["c"])("The ".concat(t," component must be used inside a ").concat(e))}}function s(t,e,n){var o=e&&n?{register:a(e,n),unregister:a(e,n)}:null;return r["a"].extend({name:"registrable-inject",inject:Object(i["a"])({},t,{default:o})})}function c(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return r["a"].extend({name:"registrable-provide",methods:e?{}:{register:null,unregister:null},provide:function(){return Object(i["a"])({},t,e?this:{register:this.register,unregister:this.unregister})}})}},"326d":function(t,e,n){"use strict";var i=n("e449");e["a"]=i["a"]},3408:function(t,e,n){},3410:function(t,e,n){var i=n("23e7"),r=n("d039"),o=n("7b0b"),a=n("e163"),s=n("e177"),c=r((function(){a(1)}));i({target:"Object",stat:!0,forced:c,sham:!s},{getPrototypeOf:function(t){return a(o(t))}})},"342f":function(t,e,n){var i=n("d066");t.exports=i("navigator","userAgent")||""},"34c3":function(t,e,n){"use strict";n("498a");var i=n("2b0e");e["a"]=i["a"].extend({name:"v-list-item-icon",functional:!0,render:function(t,e){var n=e.data,i=e.children;return n.staticClass="v-list-item__icon ".concat(n.staticClass||"").trim(),t("div",n,i)}})},"35a1":function(t,e,n){var i=n("f5df"),r=n("3f8c"),o=n("b622"),a=o("iterator");t.exports=function(t){if(void 0!=t)return t[a]||t["@@iterator"]||r[i(t)]}},"368e":function(t,e,n){},"36a7":function(t,e,n){},"37e8":function(t,e,n){var i=n("83ab"),r=n("9bf2"),o=n("825a"),a=n("df75");t.exports=i?Object.defineProperties:function(t,e){o(t);var n,i=a(e),s=i.length,c=0;while(s>c)r.f(t,n=i[c++],e[n]);return t}},3835:function(t,e,n){"use strict";function i(t){if(Array.isArray(t))return t}n.d(e,"a",(function(){return s}));n("a4d3"),n("e01a"),n("d28b"),n("d3b7"),n("3ca3"),n("ddb0");function r(t,e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(t)){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(i=(a=s.next()).done);i=!0)if(n.push(a.value),e&&n.length===e)break}catch(c){r=!0,o=c}finally{try{i||null==s["return"]||s["return"]()}finally{if(r)throw o}}return n}}var o=n("06c5");function a(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function s(t,e){return i(t)||r(t,e)||Object(o["a"])(t,e)||a()}},"38cb":function(t,e,n){"use strict";n("fb6a"),n("a9e3");var i=n("53ca"),r=n("a9ad"),o=n("7560"),a=n("3206"),s=n("80d2"),c=n("d9bd"),l=n("58df"),u=Object(l["a"])(r["a"],Object(a["a"])("form"),o["a"]);e["a"]=u.extend({name:"validatable",props:{disabled:Boolean,error:Boolean,errorCount:{type:[Number,String],default:1},errorMessages:{type:[String,Array],default:function(){return[]}},messages:{type:[String,Array],default:function(){return[]}},readonly:Boolean,rules:{type:Array,default:function(){return[]}},success:Boolean,successMessages:{type:[String,Array],default:function(){return[]}},validateOnBlur:Boolean,value:{required:!1}},data:function(){return{errorBucket:[],hasColor:!1,hasFocused:!1,hasInput:!1,isFocused:!1,isResetting:!1,lazyValue:this.value,valid:!1}},computed:{computedColor:function(){if(!this.isDisabled)return this.color?this.color:this.isDark&&!this.appIsDark?"white":"primary"},hasError:function(){return this.internalErrorMessages.length>0||this.errorBucket.length>0||this.error},hasSuccess:function(){return this.internalSuccessMessages.length>0||this.success},externalError:function(){return this.internalErrorMessages.length>0||this.error},hasMessages:function(){return this.validationTarget.length>0},hasState:function(){return!this.isDisabled&&(this.hasSuccess||this.shouldValidate&&this.hasError)},internalErrorMessages:function(){return this.genInternalMessages(this.errorMessages)},internalMessages:function(){return this.genInternalMessages(this.messages)},internalSuccessMessages:function(){return this.genInternalMessages(this.successMessages)},internalValue:{get:function(){return this.lazyValue},set:function(t){this.lazyValue=t,this.$emit("input",t)}},isDisabled:function(){return this.disabled||!!this.form&&this.form.disabled},isInteractive:function(){return!this.isDisabled&&!this.isReadonly},isReadonly:function(){return this.readonly||!!this.form&&this.form.readonly},shouldValidate:function(){return!!this.externalError||!this.isResetting&&(this.validateOnBlur?this.hasFocused&&!this.isFocused:this.hasInput||this.hasFocused)},validations:function(){return this.validationTarget.slice(0,Number(this.errorCount))},validationState:function(){if(!this.isDisabled)return this.hasError&&this.shouldValidate?"error":this.hasSuccess?"success":this.hasColor?this.computedColor:void 0},validationTarget:function(){return this.internalErrorMessages.length>0?this.internalErrorMessages:this.successMessages.length>0?this.internalSuccessMessages:this.messages.length>0?this.internalMessages:this.shouldValidate?this.errorBucket:[]}},watch:{rules:{handler:function(t,e){Object(s["i"])(t,e)||this.validate()},deep:!0},internalValue:function(){this.hasInput=!0,this.validateOnBlur||this.$nextTick(this.validate)},isFocused:function(t){t||this.isDisabled||(this.hasFocused=!0,this.validateOnBlur&&this.$nextTick(this.validate))},isResetting:function(){var t=this;setTimeout((function(){t.hasInput=!1,t.hasFocused=!1,t.isResetting=!1,t.validate()}),0)},hasError:function(t){this.shouldValidate&&this.$emit("update:error",t)},value:function(t){this.lazyValue=t}},beforeMount:function(){this.validate()},created:function(){this.form&&this.form.register(this)},beforeDestroy:function(){this.form&&this.form.unregister(this)},methods:{genInternalMessages:function(t){return t?Array.isArray(t)?t:[t]:[]},reset:function(){this.isResetting=!0,this.internalValue=Array.isArray(this.internalValue)?[]:void 0},resetValidation:function(){this.isResetting=!0},validate:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1?arguments[1]:void 0,n=[];e=e||this.internalValue,t&&(this.hasInput=this.hasFocused=!0);for(var r=0;r<this.rules.length;r++){var o=this.rules[r],a="function"===typeof o?o(e):o;!1===a||"string"===typeof a?n.push(a||""):"boolean"!==typeof a&&Object(c["b"])("Rules should return a string or boolean, received '".concat(Object(i["a"])(a),"' instead"),this)}return this.errorBucket=n,this.valid=0===n.length,this.valid}}})},"38cf":function(t,e,n){var i=n("23e7"),r=n("1148");i({target:"String",proto:!0},{repeat:r})},"3a66":function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var i=n("fe6c"),r=n("58df");function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Object(r["a"])(Object(i["b"])(["absolute","fixed"])).extend({name:"applicationable",props:{app:Boolean},computed:{applicationProperty:function(){return t}},watch:{app:function(t,e){e?this.removeApplication(!0):this.callUpdate()},applicationProperty:function(t,e){this.$vuetify.application.unregister(this._uid,e)}},activated:function(){this.callUpdate()},created:function(){for(var t=0,n=e.length;t<n;t++)this.$watch(e[t],this.callUpdate);this.callUpdate()},mounted:function(){this.callUpdate()},deactivated:function(){this.removeApplication()},destroyed:function(){this.removeApplication()},methods:{callUpdate:function(){this.app&&this.$vuetify.application.register(this._uid,this.applicationProperty,this.updateApplication())},removeApplication:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];(t||this.app)&&this.$vuetify.application.unregister(this._uid,this.applicationProperty)},updateApplication:function(){return 0}}})}},"3ad0":function(t,e,n){},"3bbe":function(t,e,n){var i=n("861d");t.exports=function(t){if(!i(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},"3c93":function(t,e,n){},"3ca3":function(t,e,n){"use strict";var i=n("6547").charAt,r=n("69f3"),o=n("7dd0"),a="String Iterator",s=r.set,c=r.getterFor(a);o(String,"String",(function(t){s(this,{type:a,string:String(t),index:0})}),(function(){var t,e=c(this),n=e.string,r=e.index;return r>=n.length?{value:void 0,done:!0}:(t=i(n,r),e.index+=t.length,{value:t,done:!1})}))},"3ea3":function(t,e,n){var i=n("23e7"),r=n("f748"),o=Math.abs,a=Math.pow;i({target:"Math",stat:!0},{cbrt:function(t){return r(t=+t)*a(o(t),1/3)}})},"3f8c":function(t,e){t.exports={}},4069:function(t,e,n){var i=n("44d2");i("flat")},"408a":function(t,e,n){var i=n("c6b6");t.exports=function(t){if("number"!=typeof t&&"Number"!=i(t))throw TypeError("Incorrect invocation");return+t}},"40dc":function(t,e,n){"use strict";n("a9e3"),n("b680"),n("c7cd");var i=n("5530"),r=(n("8b0d"),n("71d9")),o=n("53ca");function a(t,e){var n=e.modifiers||{},i=n.self,r=void 0!==i&&i,a=e.value,s="object"===Object(o["a"])(a)&&a.options||{passive:!0},c="function"===typeof a||"handleEvent"in a?a:a.handler,l=r?t:e.arg?document.querySelector(e.arg):window;l&&(l.addEventListener("scroll",c,s),t._onScroll={handler:c,options:s,target:r?void 0:l})}function s(t){if(t._onScroll){var e=t._onScroll,n=e.handler,i=e.options,r=e.target,o=void 0===r?t:r;o.removeEventListener("scroll",n,i),delete t._onScroll}}var c={inserted:a,unbind:s},l=c,u=n("3a66"),h=n("d9bd"),f=n("2b0e"),d=f["a"].extend({name:"scrollable",directives:{Scroll:c},props:{scrollTarget:String,scrollThreshold:[String,Number]},data:function(){return{currentScroll:0,currentThreshold:0,isActive:!1,isScrollingUp:!1,previousScroll:0,savedScroll:0,target:null}},computed:{canScroll:function(){return"undefined"!==typeof window},computedScrollThreshold:function(){return this.scrollThreshold?Number(this.scrollThreshold):300}},watch:{isScrollingUp:function(){this.savedScroll=this.savedScroll||this.currentScroll},isActive:function(){this.savedScroll=0}},mounted:function(){this.scrollTarget&&(this.target=document.querySelector(this.scrollTarget),this.target||Object(h["c"])("Unable to locate element with identifier ".concat(this.scrollTarget),this))},methods:{onScroll:function(){var t=this;this.canScroll&&(this.previousScroll=this.currentScroll,this.currentScroll=this.target?this.target.scrollTop:window.pageYOffset,this.isScrollingUp=this.currentScroll<this.previousScroll,this.currentThreshold=Math.abs(this.currentScroll-this.computedScrollThreshold),this.$nextTick((function(){Math.abs(t.currentScroll-t.savedScroll)>t.computedScrollThreshold&&t.thresholdMet()})))},thresholdMet:function(){}}}),p=n("d10f"),v=n("f2e7"),m=n("80d2"),g=n("58df"),b=Object(g["a"])(r["a"],d,p["a"],v["a"],Object(u["a"])("top",["clippedLeft","clippedRight","computedHeight","invertedScroll","isExtended","isProminent","value"]));e["a"]=b.extend({name:"v-app-bar",directives:{Scroll:l},props:{clippedLeft:Boolean,clippedRight:Boolean,collapseOnScroll:Boolean,elevateOnScroll:Boolean,fadeImgOnScroll:Boolean,hideOnScroll:Boolean,invertedScroll:Boolean,scrollOffScreen:Boolean,shrinkOnScroll:Boolean,value:{type:Boolean,default:!0}},data:function(){return{isActive:this.value}},computed:{applicationProperty:function(){return this.bottom?"bottom":"top"},canScroll:function(){return d.options.computed.canScroll.call(this)&&(this.invertedScroll||this.elevateOnScroll||this.hideOnScroll||this.collapseOnScroll||this.isBooted||!this.value)},classes:function(){return Object(i["a"])(Object(i["a"])({},r["a"].options.computed.classes.call(this)),{},{"v-toolbar--collapse":this.collapse||this.collapseOnScroll,"v-app-bar":!0,"v-app-bar--clipped":this.clippedLeft||this.clippedRight,"v-app-bar--fade-img-on-scroll":this.fadeImgOnScroll,"v-app-bar--elevate-on-scroll":this.elevateOnScroll,"v-app-bar--fixed":!this.absolute&&(this.app||this.fixed),"v-app-bar--hide-shadow":this.hideShadow,"v-app-bar--is-scrolled":this.currentScroll>0,"v-app-bar--shrink-on-scroll":this.shrinkOnScroll})},computedContentHeight:function(){if(!this.shrinkOnScroll)return r["a"].options.computed.computedContentHeight.call(this);var t=this.computedOriginalHeight,e=this.dense?48:56,n=t,i=n-e,o=i/this.computedScrollThreshold,a=this.currentScroll*o;return Math.max(e,n-a)},computedFontSize:function(){if(this.isProminent){var t=this.dense?96:128,e=t-this.computedContentHeight,n=.00347;return Number((1.5-e*n).toFixed(2))}},computedLeft:function(){return!this.app||this.clippedLeft?0:this.$vuetify.application.left},computedMarginTop:function(){return this.app?this.$vuetify.application.bar:0},computedOpacity:function(){if(this.fadeImgOnScroll){var t=Math.max((this.computedScrollThreshold-this.currentScroll)/this.computedScrollThreshold,0);return Number(parseFloat(t).toFixed(2))}},computedOriginalHeight:function(){var t=r["a"].options.computed.computedContentHeight.call(this);return this.isExtended&&(t+=parseInt(this.extensionHeight)),t},computedRight:function(){return!this.app||this.clippedRight?0:this.$vuetify.application.right},computedScrollThreshold:function(){return this.scrollThreshold?Number(this.scrollThreshold):this.computedOriginalHeight-(this.dense?48:56)},computedTransform:function(){if(!this.canScroll||this.elevateOnScroll&&0===this.currentScroll&&this.isActive)return 0;if(this.isActive)return 0;var t=this.scrollOffScreen?this.computedHeight:this.computedContentHeight;return this.bottom?t:-t},hideShadow:function(){return this.elevateOnScroll&&this.isExtended?this.currentScroll<this.computedScrollThreshold:this.elevateOnScroll?0===this.currentScroll||this.computedTransform<0:(!this.isExtended||this.scrollOffScreen)&&0!==this.computedTransform},isCollapsed:function(){return this.collapseOnScroll?this.currentScroll>0:r["a"].options.computed.isCollapsed.call(this)},isProminent:function(){return r["a"].options.computed.isProminent.call(this)||this.shrinkOnScroll},styles:function(){return Object(i["a"])(Object(i["a"])({},r["a"].options.computed.styles.call(this)),{},{fontSize:Object(m["f"])(this.computedFontSize,"rem"),marginTop:Object(m["f"])(this.computedMarginTop),transform:"translateY(".concat(Object(m["f"])(this.computedTransform),")"),left:Object(m["f"])(this.computedLeft),right:Object(m["f"])(this.computedRight)})}},watch:{canScroll:"onScroll",computedTransform:function(){this.canScroll&&(this.clippedLeft||this.clippedRight)&&this.callUpdate()},invertedScroll:function(t){this.isActive=!t||0!==this.currentScroll}},created:function(){this.invertedScroll&&(this.isActive=!1)},methods:{genBackground:function(){var t=r["a"].options.methods.genBackground.call(this);return t.data=this._b(t.data||{},t.tag,{style:{opacity:this.computedOpacity}}),t},updateApplication:function(){return this.invertedScroll?0:this.computedHeight+this.computedTransform},thresholdMet:function(){this.invertedScroll?this.isActive=this.currentScroll>this.computedScrollThreshold:(this.hideOnScroll&&(this.isActive=this.isScrollingUp||this.currentScroll<this.computedScrollThreshold),this.currentThreshold<this.computedScrollThreshold||(this.savedScroll=this.currentScroll))}},render:function(t){var e=r["a"].options.render.call(this,t);return e.data=e.data||{},this.canScroll&&(e.data.directives=e.data.directives||[],e.data.directives.push({arg:this.scrollTarget,name:"scroll",value:this.onScroll})),e}})},4160:function(t,e,n){"use strict";var i=n("23e7"),r=n("17c2");i({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},"428f":function(t,e,n){var i=n("da84");t.exports=i},"44ad":function(t,e,n){var i=n("d039"),r=n("c6b6"),o="".split;t.exports=i((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==r(t)?o.call(t,""):Object(t)}:Object},"44d2":function(t,e,n){var i=n("b622"),r=n("7c73"),o=n("9bf2"),a=i("unscopables"),s=Array.prototype;void 0==s[a]&&o.f(s,a,{configurable:!0,value:r(null)}),t.exports=function(t){s[a][t]=!0}},"44de":function(t,e,n){var i=n("da84");t.exports=function(t,e){var n=i.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},"44e7":function(t,e,n){var i=n("861d"),r=n("c6b6"),o=n("b622"),a=o("match");t.exports=function(t){var e;return i(t)&&(void 0!==(e=t[a])?!!e:"RegExp"==r(t))}},"45fc":function(t,e,n){"use strict";var i=n("23e7"),r=n("b727").some,o=n("a640"),a=n("ae40"),s=o("some"),c=a("some");i({target:"Array",proto:!0,forced:!s||!c},{some:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},"466d":function(t,e,n){"use strict";var i=n("d784"),r=n("825a"),o=n("50c4"),a=n("1d80"),s=n("8aa5"),c=n("14c3");i("match",1,(function(t,e,n){return[function(e){var n=a(this),i=void 0==e?void 0:e[t];return void 0!==i?i.call(e,n):new RegExp(e)[t](String(n))},function(t){var i=n(e,t,this);if(i.done)return i.value;var a=r(t),l=String(this);if(!a.global)return c(a,l);var u=a.unicode;a.lastIndex=0;var h,f=[],d=0;while(null!==(h=c(a,l))){var p=String(h[0]);f[d]=p,""===p&&(a.lastIndex=s(l,o(a.lastIndex),u)),d++}return 0===d?null:f}]}))},4804:function(t,e,n){},"480e":function(t,e,n){"use strict";n("7db0");var i=n("7560");e["a"]=i["a"].extend({name:"v-theme-provider",props:{root:Boolean},computed:{isDark:function(){return this.root?this.rootIsDark:i["a"].options.computed.isDark.call(this)}},render:function(){return this.$slots.default&&this.$slots.default.find((function(t){return!t.isComment&&" "!==t.text}))}})},4840:function(t,e,n){var i=n("825a"),r=n("1c0b"),o=n("b622"),a=o("species");t.exports=function(t,e){var n,o=i(t).constructor;return void 0===o||void 0==(n=i(o)[a])?e:r(n)}},4930:function(t,e,n){var i=n("d039");t.exports=!!Object.getOwnPropertySymbols&&!i((function(){return!String(Symbol())}))},"498a":function(t,e,n){"use strict";var i=n("23e7"),r=n("58a8").trim,o=n("c8d2");i({target:"String",proto:!0,forced:o("trim")},{trim:function(){return r(this)}})},"4ad4":function(t,e,n){"use strict";n("caad"),n("45fc"),n("b0c0"),n("b64b");var i=n("53ca"),r=n("16b7"),o=n("f2e7"),a=n("58df"),s=n("80d2"),c=n("d9bd"),l=Object(a["a"])(r["a"],o["a"]);e["a"]=l.extend({name:"activatable",props:{activator:{default:null,validator:function(t){return["string","object"].includes(Object(i["a"])(t))}},disabled:Boolean,internalActivator:Boolean,openOnHover:Boolean,openOnFocus:Boolean},data:function(){return{activatorElement:null,activatorNode:[],events:["click","mouseenter","mouseleave","focus"],listeners:{}}},watch:{activator:"resetActivator",openOnFocus:"resetActivator",openOnHover:"resetActivator"},mounted:function(){var t=Object(s["p"])(this,"activator",!0);t&&["v-slot","normal"].includes(t)&&Object(c["b"])('The activator slot must be bound, try \'<template v-slot:activator="{ on }"><v-btn v-on="on">\'',this),this.addActivatorEvents()},beforeDestroy:function(){this.removeActivatorEvents()},methods:{addActivatorEvents:function(){if(this.activator&&!this.disabled&&this.getActivator()){this.listeners=this.genActivatorListeners();for(var t=Object.keys(this.listeners),e=0,n=t;e<n.length;e++){var i=n[e];this.getActivator().addEventListener(i,this.listeners[i])}}},genActivator:function(){var t=Object(s["o"])(this,"activator",Object.assign(this.getValueProxy(),{on:this.genActivatorListeners(),attrs:this.genActivatorAttributes()}))||[];return this.activatorNode=t,t},genActivatorAttributes:function(){return{role:"button","aria-haspopup":!0,"aria-expanded":String(this.isActive)}},genActivatorListeners:function(){var t=this;if(this.disabled)return{};var e={};return this.openOnHover?(e.mouseenter=function(e){t.getActivator(e),t.runDelay("open")},e.mouseleave=function(e){t.getActivator(e),t.runDelay("close")}):e.click=function(e){var n=t.getActivator(e);n&&n.focus(),e.stopPropagation(),t.isActive=!t.isActive},this.openOnFocus&&(e.focus=function(e){t.getActivator(e),e.stopPropagation(),t.isActive=!t.isActive}),e},getActivator:function(t){if(this.activatorElement)return this.activatorElement;var e=null;if(this.activator){var n=this.internalActivator?this.$el:document;e="string"===typeof this.activator?n.querySelector(this.activator):this.activator.$el?this.activator.$el:this.activator}else if(1===this.activatorNode.length||this.activatorNode.length&&!t){var i=this.activatorNode[0].componentInstance;e=i&&i.$options.mixins&&i.$options.mixins.some((function(t){return t.options&&["activatable","menuable"].includes(t.options.name)}))?i.getActivator():this.activatorNode[0].elm}else t&&(e=t.currentTarget||t.target);return this.activatorElement=e,this.activatorElement},getContentSlot:function(){return Object(s["o"])(this,"default",this.getValueProxy(),!0)},getValueProxy:function(){var t=this;return{get value(){return t.isActive},set value(e){t.isActive=e}}},removeActivatorEvents:function(){if(this.activator&&this.activatorElement){for(var t=Object.keys(this.listeners),e=0,n=t;e<n.length;e++){var i=n[e];this.activatorElement.removeEventListener(i,this.listeners[i])}this.listeners={}}},resetActivator:function(){this.removeActivatorEvents(),this.activatorElement=null,this.getActivator(),this.addActivatorEvents()}}})},"4ae1":function(t,e,n){var i=n("23e7"),r=n("d066"),o=n("1c0b"),a=n("825a"),s=n("861d"),c=n("7c73"),l=n("0538"),u=n("d039"),h=r("Reflect","construct"),f=u((function(){function t(){}return!(h((function(){}),[],t)instanceof t)})),d=!u((function(){h((function(){}))})),p=f||d;i({target:"Reflect",stat:!0,forced:p,sham:p},{construct:function(t,e){o(t),a(e);var n=arguments.length<3?t:o(arguments[2]);if(d&&!f)return h(t,e,n);if(t==n){switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3])}var i=[null];return i.push.apply(i,e),new(l.apply(t,i))}var r=n.prototype,u=c(s(r)?r:Object.prototype),p=Function.apply.call(t,u,e);return s(p)?p:u}})},"4b85":function(t,e,n){},"4bd4":function(t,e,n){"use strict";n("4de4"),n("7db0"),n("4160"),n("caad"),n("07ac"),n("2532"),n("159b");var i=n("5530"),r=n("58df"),o=n("7e2b"),a=n("3206");e["a"]=Object(r["a"])(o["a"],Object(a["b"])("form")).extend({name:"v-form",provide:function(){return{form:this}},inheritAttrs:!1,props:{disabled:Boolean,lazyValidation:Boolean,readonly:Boolean,value:Boolean},data:function(){return{inputs:[],watchers:[],errorBag:{}}},watch:{errorBag:{handler:function(t){var e=Object.values(t).includes(!0);this.$emit("input",!e)},deep:!0,immediate:!0}},methods:{watchInput:function(t){var e=this,n=function(t){return t.$watch("hasError",(function(n){e.$set(e.errorBag,t._uid,n)}),{immediate:!0})},i={_uid:t._uid,valid:function(){},shouldValidate:function(){}};return this.lazyValidation?i.shouldValidate=t.$watch("shouldValidate",(function(r){r&&(e.errorBag.hasOwnProperty(t._uid)||(i.valid=n(t)))})):i.valid=n(t),i},validate:function(){return 0===this.inputs.filter((function(t){return!t.validate(!0)})).length},reset:function(){this.inputs.forEach((function(t){return t.reset()})),this.resetErrorBag()},resetErrorBag:function(){var t=this;this.lazyValidation&&setTimeout((function(){t.errorBag={}}),0)},resetValidation:function(){this.inputs.forEach((function(t){return t.resetValidation()})),this.resetErrorBag()},register:function(t){this.inputs.push(t),this.watchers.push(this.watchInput(t))},unregister:function(t){var e=this.inputs.find((function(e){return e._uid===t._uid}));if(e){var n=this.watchers.find((function(t){return t._uid===e._uid}));n&&(n.valid(),n.shouldValidate()),this.watchers=this.watchers.filter((function(t){return t._uid!==e._uid})),this.inputs=this.inputs.filter((function(t){return t._uid!==e._uid})),this.$delete(this.errorBag,e._uid)}}},render:function(t){var e=this;return t("form",{staticClass:"v-form",attrs:Object(i["a"])({novalidate:!0},this.attrs$),on:{submit:function(t){return e.$emit("submit",t)}}},this.$slots.default)}})},"4ca6":function(t,e,n){"use strict";n("a9e3");var i=n("15fd"),r=n("5530"),o=(n("ff44"),n("132d")),a=n("a9ad"),s=n("7560"),c=n("f2e7"),l=n("2b0e"),u=l["a"].extend({name:"transitionable",props:{mode:String,origin:String,transition:String}}),h=n("fe6c"),f=n("58df"),d=n("80d2");e["a"]=Object(f["a"])(a["a"],Object(h["b"])(["left","bottom"]),s["a"],c["a"],u).extend({name:"v-badge",props:{avatar:Boolean,bordered:Boolean,color:{type:String,default:"primary"},content:{required:!1},dot:Boolean,label:{type:String,default:"$vuetify.badge"},icon:String,inline:Boolean,offsetX:[Number,String],offsetY:[Number,String],overlap:Boolean,tile:Boolean,transition:{type:String,default:"scale-rotate-transition"},value:{default:!0}},computed:{classes:function(){return Object(r["a"])({"v-badge--avatar":this.avatar,"v-badge--bordered":this.bordered,"v-badge--bottom":this.bottom,"v-badge--dot":this.dot,"v-badge--icon":null!=this.icon,"v-badge--inline":this.inline,"v-badge--left":this.left,"v-badge--overlap":this.overlap,"v-badge--tile":this.tile},this.themeClasses)},computedBottom:function(){return this.bottom?"auto":this.computedYOffset},computedLeft:function(){return this.isRtl?this.left?this.computedXOffset:"auto":this.left?"auto":this.computedXOffset},computedRight:function(){return this.isRtl?this.left?"auto":this.computedXOffset:this.left?this.computedXOffset:"auto"},computedTop:function(){return this.bottom?this.computedYOffset:"auto"},computedXOffset:function(){return this.calcPosition(this.offsetX)},computedYOffset:function(){return this.calcPosition(this.offsetY)},isRtl:function(){return this.$vuetify.rtl},offset:function(){return this.overlap?this.dot?8:12:this.dot?2:4},styles:function(){return this.inline?{}:{bottom:this.computedBottom,left:this.computedLeft,right:this.computedRight,top:this.computedTop}}},methods:{calcPosition:function(t){return"calc(100% - ".concat(Object(d["f"])(t||this.offset),")")},genBadge:function(){var t=this.$vuetify.lang,e=this.$attrs["aria-label"]||t.t(this.label),n=this.setBackgroundColor(this.color,{staticClass:"v-badge__badge",style:this.styles,attrs:{"aria-atomic":this.$attrs["aria-atomic"]||"true","aria-label":e,"aria-live":this.$attrs["aria-live"]||"polite",title:this.$attrs.title,role:this.$attrs.role||"status"},directives:[{name:"show",value:this.isActive}]}),i=this.$createElement("span",n,[this.genBadgeContent()]);return this.transition?this.$createElement("transition",{props:{name:this.transition,origin:this.origin,mode:this.mode}},[i]):i},genBadgeContent:function(){if(!this.dot){var t=Object(d["o"])(this,"badge");return t||(this.content?String(this.content):this.icon?this.$createElement(o["a"],this.icon):void 0)}},genBadgeWrapper:function(){return this.$createElement("span",{staticClass:"v-badge__wrapper"},[this.genBadge()])}},render:function(t){var e=[this.genBadgeWrapper()],n=[Object(d["o"])(this)],r=this.$attrs,o=(r["aria-atomic"],r["aria-label"],r["aria-live"],r.role,r.title,Object(i["a"])(r,["aria-atomic","aria-label","aria-live","role","title"]));return this.inline&&this.left?n.unshift(e):n.push(e),t("span",{staticClass:"v-badge",attrs:o,class:this.classes},n)}})},"4d64":function(t,e,n){var i=n("fc6a"),r=n("50c4"),o=n("23cb"),a=function(t){return function(e,n,a){var s,c=i(e),l=r(c.length),u=o(a,l);if(t&&n!=n){while(l>u)if(s=c[u++],s!=s)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},"4de4":function(t,e,n){"use strict";var i=n("23e7"),r=n("b727").filter,o=n("1dde"),a=n("ae40"),s=o("filter"),c=a("filter");i({target:"Array",proto:!0,forced:!s||!c},{filter:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(t,e,n){"use strict";var i=n("0366"),r=n("7b0b"),o=n("9bdd"),a=n("e95a"),s=n("50c4"),c=n("8418"),l=n("35a1");t.exports=function(t){var e,n,u,h,f,d,p=r(t),v="function"==typeof this?this:Array,m=arguments.length,g=m>1?arguments[1]:void 0,b=void 0!==g,y=l(p),w=0;if(b&&(g=i(g,m>2?arguments[2]:void 0,2)),void 0==y||v==Array&&a(y))for(e=s(p.length),n=new v(e);e>w;w++)d=b?g(p[w],w):p[w],c(n,w,d);else for(h=y.call(p),f=h.next,n=new v;!(u=f.call(h)).done;w++)d=b?o(h,g,[u.value,w],!0):u.value,c(n,w,d);return n.length=w,n}},"4e82":function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var i=n("ade3"),r=n("3206");function o(t,e,n){var o=Object(r["a"])(t,e,n).extend({name:"groupable",props:{activeClass:{type:String,default:function(){if(this[t])return this[t].activeClass}},disabled:Boolean},data:function(){return{isActive:!1}},computed:{groupClasses:function(){return this.activeClass?Object(i["a"])({},this.activeClass,this.isActive):{}}},created:function(){this[t]&&this[t].register(this)},beforeDestroy:function(){this[t]&&this[t].unregister(this)},methods:{toggle:function(){this.$emit("change")}}});return o}o("itemGroup")},"4e827":function(t,e,n){"use strict";var i=n("23e7"),r=n("1c0b"),o=n("7b0b"),a=n("d039"),s=n("a640"),c=[],l=c.sort,u=a((function(){c.sort(void 0)})),h=a((function(){c.sort(null)})),f=s("sort"),d=u||!h||!f;i({target:"Array",proto:!0,forced:d},{sort:function(t){return void 0===t?l.call(o(this)):l.call(o(this),r(t))}})},"4ec9":function(t,e,n){"use strict";var i=n("6d61"),r=n("6566");t.exports=i("Map",(function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}}),r)},"4ff9":function(t,e,n){},"50c4":function(t,e,n){var i=n("a691"),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},5135:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},5319:function(t,e,n){"use strict";var i=n("d784"),r=n("825a"),o=n("7b0b"),a=n("50c4"),s=n("a691"),c=n("1d80"),l=n("8aa5"),u=n("14c3"),h=Math.max,f=Math.min,d=Math.floor,p=/\$([$&'`]|\d\d?|<[^>]*>)/g,v=/\$([$&'`]|\d\d?)/g,m=function(t){return void 0===t?t:String(t)};i("replace",2,(function(t,e,n,i){var g=i.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,b=i.REPLACE_KEEPS_$0,y=g?"$":"$0";return[function(n,i){var r=c(this),o=void 0==n?void 0:n[t];return void 0!==o?o.call(n,r,i):e.call(String(r),n,i)},function(t,i){if(!g&&b||"string"===typeof i&&-1===i.indexOf(y)){var o=n(e,t,this,i);if(o.done)return o.value}var c=r(t),d=String(this),p="function"===typeof i;p||(i=String(i));var v=c.global;if(v){var x=c.unicode;c.lastIndex=0}var O=[];while(1){var _=u(c,d);if(null===_)break;if(O.push(_),!v)break;var S=String(_[0]);""===S&&(c.lastIndex=l(d,a(c.lastIndex),x))}for(var C="",k=0,j=0;j<O.length;j++){_=O[j];for(var A=String(_[0]),$=h(f(s(_.index),d.length),0),E=[],T=1;T<_.length;T++)E.push(m(_[T]));var I=_.groups;if(p){var L=[A].concat(E,$,d);void 0!==I&&L.push(I);var M=String(i.apply(void 0,L))}else M=w(A,d,$,E,I,i);$>=k&&(C+=d.slice(k,$)+M,k=$+A.length)}return C+d.slice(k)}];function w(t,n,i,r,a,s){var c=i+t.length,l=r.length,u=v;return void 0!==a&&(a=o(a),u=p),e.call(s,u,(function(e,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,i);case"'":return n.slice(c);case"<":s=a[o.slice(1,-1)];break;default:var u=+o;if(0===u)return e;if(u>l){var h=d(u/10);return 0===h?e:h<=l?void 0===r[h-1]?o.charAt(1):r[h-1]+o.charAt(1):e}s=r[u-1]}return void 0===s?"":s}))}}))},"53ca":function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));n("a4d3"),n("e01a"),n("d28b"),n("d3b7"),n("3ca3"),n("ddb0");function i(t){return i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}},5530:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));n("a4d3"),n("4de4"),n("4160"),n("e439"),n("dbb4"),n("b64b"),n("159b");var i=n("ade3");function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach((function(e){Object(i["a"])(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}},5607:function(t,e,n){"use strict";n("99af"),n("b0c0"),n("a9e3"),n("d3b7"),n("25f0"),n("7435");var i=n("80d2"),r=80;function o(t,e){t.style["transform"]=e,t.style["webkitTransform"]=e}function a(t,e){t.style["opacity"]=e.toString()}function s(t){return"TouchEvent"===t.constructor.name}function c(t){return"KeyboardEvent"===t.constructor.name}var l=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=0,r=0;if(!c(t)){var o=e.getBoundingClientRect(),a=s(t)?t.touches[t.touches.length-1]:t;i=a.clientX-o.left,r=a.clientY-o.top}var l=0,u=.3;e._ripple&&e._ripple.circle?(u=.15,l=e.clientWidth/2,l=n.center?l:l+Math.sqrt(Math.pow(i-l,2)+Math.pow(r-l,2))/4):l=Math.sqrt(Math.pow(e.clientWidth,2)+Math.pow(e.clientHeight,2))/2;var h="".concat((e.clientWidth-2*l)/2,"px"),f="".concat((e.clientHeight-2*l)/2,"px"),d=n.center?h:"".concat(i-l,"px"),p=n.center?f:"".concat(r-l,"px");return{radius:l,scale:u,x:d,y:p,centerX:h,centerY:f}},u={show:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e._ripple&&e._ripple.enabled){var i=document.createElement("span"),r=document.createElement("span");i.appendChild(r),i.className="v-ripple__container",n.class&&(i.className+=" ".concat(n.class));var s=l(t,e,n),c=s.radius,u=s.scale,h=s.x,f=s.y,d=s.centerX,p=s.centerY,v="".concat(2*c,"px");r.className="v-ripple__animation",r.style.width=v,r.style.height=v,e.appendChild(i);var m=window.getComputedStyle(e);m&&"static"===m.position&&(e.style.position="relative",e.dataset.previousPosition="static"),r.classList.add("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--visible"),o(r,"translate(".concat(h,", ").concat(f,") scale3d(").concat(u,",").concat(u,",").concat(u,")")),a(r,0),r.dataset.activated=String(performance.now()),setTimeout((function(){r.classList.remove("v-ripple__animation--enter"),r.classList.add("v-ripple__animation--in"),o(r,"translate(".concat(d,", ").concat(p,") scale3d(1,1,1)")),a(r,.25)}),0)}},hide:function(t){if(t&&t._ripple&&t._ripple.enabled){var e=t.getElementsByClassName("v-ripple__animation");if(0!==e.length){var n=e[e.length-1];if(!n.dataset.isHiding){n.dataset.isHiding="true";var i=performance.now()-Number(n.dataset.activated),r=Math.max(250-i,0);setTimeout((function(){n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),a(n,0),setTimeout((function(){var e=t.getElementsByClassName("v-ripple__animation");1===e.length&&t.dataset.previousPosition&&(t.style.position=t.dataset.previousPosition,delete t.dataset.previousPosition),n.parentNode&&t.removeChild(n.parentNode)}),300)}),r)}}}}};function h(t){return"undefined"===typeof t||!!t}function f(t){var e={},n=t.currentTarget;if(n&&n._ripple&&!n._ripple.touched){if(s(t))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(e.center=n._ripple.centered||c(t),n._ripple.class&&(e.class=n._ripple.class),s(t)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=function(){u.show(t,n,e)},n._ripple.showTimer=window.setTimeout((function(){n&&n._ripple&&n._ripple.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)}),r)}else u.show(t,n,e)}}function d(t){var e=t.currentTarget;if(e&&e._ripple){if(window.clearTimeout(e._ripple.showTimer),"touchend"===t.type&&e._ripple.showTimerCommit)return e._ripple.showTimerCommit(),e._ripple.showTimerCommit=null,void(e._ripple.showTimer=setTimeout((function(){d(t)})));window.setTimeout((function(){e._ripple&&(e._ripple.touched=!1)})),u.hide(e)}}function p(t){var e=t.currentTarget;e&&e._ripple&&(e._ripple.showTimerCommit&&(e._ripple.showTimerCommit=null),window.clearTimeout(e._ripple.showTimer))}var v=!1;function m(t){v||t.keyCode!==i["s"].enter&&t.keyCode!==i["s"].space||(v=!0,f(t))}function g(t){v=!1,d(t)}function b(t,e,n){var i=h(e.value);i||u.hide(t),t._ripple=t._ripple||{},t._ripple.enabled=i;var r=e.value||{};r.center&&(t._ripple.centered=!0),r.class&&(t._ripple.class=e.value.class),r.circle&&(t._ripple.circle=r.circle),i&&!n?(t.addEventListener("touchstart",f,{passive:!0}),t.addEventListener("touchend",d,{passive:!0}),t.addEventListener("touchmove",p,{passive:!0}),t.addEventListener("touchcancel",d),t.addEventListener("mousedown",f),t.addEventListener("mouseup",d),t.addEventListener("mouseleave",d),t.addEventListener("keydown",m),t.addEventListener("keyup",g),t.addEventListener("dragstart",d,{passive:!0})):!i&&n&&y(t)}function y(t){t.removeEventListener("mousedown",f),t.removeEventListener("touchstart",f),t.removeEventListener("touchend",d),t.removeEventListener("touchmove",p),t.removeEventListener("touchcancel",d),t.removeEventListener("mouseup",d),t.removeEventListener("mouseleave",d),t.removeEventListener("keydown",m),t.removeEventListener("keyup",g),t.removeEventListener("dragstart",d)}function w(t,e,n){b(t,e,!1)}function x(t){delete t._ripple,y(t)}function O(t,e){if(e.value!==e.oldValue){var n=h(e.oldValue);b(t,e,n)}}var _={bind:w,unbind:x,update:O};e["a"]=_},5692:function(t,e,n){var i=n("c430"),r=n("c6cd");(t.exports=function(t,e){return r[t]||(r[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.5",mode:i?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56b0":function(t,e,n){"use strict";n("ac1f"),n("466d");var i=n("5530"),r=n("ade3"),o=(n("db42"),n("9d26")),a=n("da13"),s=n("34c3"),c=n("7e2b"),l=n("9d65"),u=n("a9ad"),h=n("f2e7"),f=n("3206"),d=n("5607"),p=n("0789"),v=n("58df"),m=n("80d2"),g=Object(v["a"])(c["a"],l["a"],u["a"],Object(f["a"])("list"),h["a"]);e["a"]=g.extend().extend({name:"v-list-group",directives:{ripple:d["a"]},props:{activeClass:{type:String,default:""},appendIcon:{type:String,default:"$expand"},color:{type:String,default:"primary"},disabled:Boolean,group:String,noAction:Boolean,prependIcon:String,ripple:{type:[Boolean,Object],default:!0},subGroup:Boolean},computed:{classes:function(){return{"v-list-group--active":this.isActive,"v-list-group--disabled":this.disabled,"v-list-group--no-action":this.noAction,"v-list-group--sub-group":this.subGroup}}},watch:{isActive:function(t){!this.subGroup&&t&&this.list&&this.list.listClick(this._uid)},$route:"onRouteChange"},created:function(){this.list&&this.list.register(this),this.group&&this.$route&&null==this.value&&(this.isActive=this.matchRoute(this.$route.path))},beforeDestroy:function(){this.list&&this.list.unregister(this)},methods:{click:function(t){var e=this;this.disabled||(this.isBooted=!0,this.$emit("click",t),this.$nextTick((function(){return e.isActive=!e.isActive})))},genIcon:function(t){return this.$createElement(o["a"],t)},genAppendIcon:function(){var t=!this.subGroup&&this.appendIcon;return t||this.$slots.appendIcon?this.$createElement(s["a"],{staticClass:"v-list-group__header__append-icon"},[this.$slots.appendIcon||this.genIcon(t)]):null},genHeader:function(){return this.$createElement(a["a"],{staticClass:"v-list-group__header",attrs:{"aria-expanded":String(this.isActive),role:"button"},class:Object(r["a"])({},this.activeClass,this.isActive),props:{inputValue:this.isActive},directives:[{name:"ripple",value:this.ripple}],on:Object(i["a"])(Object(i["a"])({},this.listeners$),{},{click:this.click})},[this.genPrependIcon(),this.$slots.activator,this.genAppendIcon()])},genItems:function(){var t=this;return this.showLazyContent((function(){return[t.$createElement("div",{staticClass:"v-list-group__items",directives:[{name:"show",value:t.isActive}]},Object(m["o"])(t))]}))},genPrependIcon:function(){var t=this.subGroup&&null==this.prependIcon?"$subgroup":this.prependIcon;return t||this.$slots.prependIcon?this.$createElement(s["a"],{staticClass:"v-list-group__header__prepend-icon"},[this.$slots.prependIcon||this.genIcon(t)]):null},onRouteChange:function(t){if(this.group){var e=this.matchRoute(t.path);e&&this.isActive!==e&&this.list&&this.list.listClick(this._uid),this.isActive=e}},toggle:function(t){var e=this,n=this._uid===t;n&&(this.isBooted=!0),this.$nextTick((function(){return e.isActive=n}))},matchRoute:function(t){return null!==t.match(this.group)}},render:function(t){return t("div",this.setTextColor(this.isActive&&this.color,{staticClass:"v-list-group",class:this.classes}),[this.genHeader(),t(p["a"],this.genItems())])}})},"56ef":function(t,e,n){var i=n("d066"),r=n("241c"),o=n("7418"),a=n("825a");t.exports=i("Reflect","ownKeys")||function(t){var e=r.f(a(t)),n=o.f;return n?e.concat(n(t)):e}},5899:function(t,e){t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},"58a8":function(t,e,n){var i=n("1d80"),r=n("5899"),o="["+r+"]",a=RegExp("^"+o+o+"*"),s=RegExp(o+o+"*$"),c=function(t){return function(e){var n=String(i(e));return 1&t&&(n=n.replace(a,"")),2&t&&(n=n.replace(s,"")),n}};t.exports={start:c(1),end:c(2),trim:c(3)}},"58df":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var i=n("2b0e");function r(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return i["a"].extend({mixins:e})}},"5a34":function(t,e,n){var i=n("44e7");t.exports=function(t){if(i(t))throw TypeError("The method doesn't accept regular expressions");return t}},"5bc1":function(t,e,n){"use strict";n("498a");var i=n("5530"),r=n("9d26"),o=n("8336"),a=n("2b0e");e["a"]=a["a"].extend({name:"v-app-bar-nav-icon",functional:!0,render:function(t,e){var n=e.slots,a=e.listeners,s=e.props,c=e.data,l=Object.assign(c,{staticClass:"v-app-bar__nav-icon ".concat(c.staticClass||"").trim(),props:Object(i["a"])(Object(i["a"])({},s),{},{icon:!0}),on:a}),u=n().default;return t(o["a"],l,u||[t(r["a"],"$menu")])}})},"5c6c":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"5d23":function(t,e,n){"use strict";n.d(e,"a",(function(){return y})),n.d(e,"c",(function(){return w})),n.d(e,"b",(function(){return x}));var i=n("80d2"),r=n("8860"),o=n("56b0"),a=n("da13"),s=n("1baa"),c=n("1800"),l=(n("a9e3"),n("5530")),u=(n("3408"),n("a9ad")),h=n("24b2"),f=n("a236"),d=n("58df"),p=Object(d["a"])(u["a"],h["a"],f["a"]).extend({name:"v-avatar",props:{left:Boolean,right:Boolean,size:{type:[Number,String],default:48}},computed:{classes:function(){return Object(l["a"])({"v-avatar--left":this.left,"v-avatar--right":this.right},this.roundedClasses)},styles:function(){return Object(l["a"])({height:Object(i["f"])(this.size),minWidth:Object(i["f"])(this.size),width:Object(i["f"])(this.size)},this.measurableStyles)}},render:function(t){var e={staticClass:"v-avatar",class:this.classes,style:this.styles,on:this.$listeners};return t("div",this.setBackgroundColor(this.color,e),this.$slots.default)}}),v=p,m=v.extend({name:"v-list-item-avatar",props:{horizontal:Boolean,size:{type:[Number,String],default:40}},computed:{classes:function(){return Object(l["a"])(Object(l["a"])({"v-list-item__avatar--horizontal":this.horizontal},v.options.computed.classes.call(this)),{},{"v-avatar--tile":this.tile||this.horizontal})}},render:function(t){var e=v.options.render.call(this,t);return e.data=e.data||{},e.data.staticClass+=" v-list-item__avatar",e}}),g=n("34c3"),b=Object(i["h"])("v-list-item__action-text","span"),y=Object(i["h"])("v-list-item__content","div"),w=Object(i["h"])("v-list-item__title","div"),x=Object(i["h"])("v-list-item__subtitle","div");r["a"],o["a"],a["a"],c["a"],s["a"],g["a"]},"5e23":function(t,e,n){},"5fb2":function(t,e,n){"use strict";var i=2147483647,r=36,o=1,a=26,s=38,c=700,l=72,u=128,h="-",f=/[^\0-\u007E]/,d=/[.\u3002\uFF0E\uFF61]/g,p="Overflow: input needs wider integers to process",v=r-o,m=Math.floor,g=String.fromCharCode,b=function(t){var e=[],n=0,i=t.length;while(n<i){var r=t.charCodeAt(n++);if(r>=55296&&r<=56319&&n<i){var o=t.charCodeAt(n++);56320==(64512&o)?e.push(((1023&r)<<10)+(1023&o)+65536):(e.push(r),n--)}else e.push(r)}return e},y=function(t){return t+22+75*(t<26)},w=function(t,e,n){var i=0;for(t=n?m(t/c):t>>1,t+=m(t/e);t>v*a>>1;i+=r)t=m(t/v);return m(i+(v+1)*t/(t+s))},x=function(t){var e=[];t=b(t);var n,s,c=t.length,f=u,d=0,v=l;for(n=0;n<t.length;n++)s=t[n],s<128&&e.push(g(s));var x=e.length,O=x;x&&e.push(h);while(O<c){var _=i;for(n=0;n<t.length;n++)s=t[n],s>=f&&s<_&&(_=s);var S=O+1;if(_-f>m((i-d)/S))throw RangeError(p);for(d+=(_-f)*S,f=_,n=0;n<t.length;n++){if(s=t[n],s<f&&++d>i)throw RangeError(p);if(s==f){for(var C=d,k=r;;k+=r){var j=k<=v?o:k>=v+a?a:k-v;if(C<j)break;var A=C-j,$=r-j;e.push(g(y(j+A%$))),C=m(A/$)}e.push(g(y(C))),v=w(d,S,O==x),d=0,++O}}++d,++f}return e.join("")};t.exports=function(t){var e,n,i=[],r=t.toLowerCase().replace(d,".").split(".");for(e=0;e<r.length;e++)n=r[e],i.push(f.test(n)?"xn--"+x(n):n);return i.join(".")}},"604c":function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));n("4de4"),n("7db0"),n("c740"),n("4160"),n("caad"),n("c975"),n("fb6a"),n("a434"),n("a9e3"),n("2532"),n("159b");var i=n("5530"),r=(n("166a"),n("a452")),o=n("7560"),a=n("58df"),s=n("d9bd"),c=Object(a["a"])(r["a"],o["a"]).extend({name:"base-item-group",props:{activeClass:{type:String,default:"v-item--active"},mandatory:Boolean,max:{type:[Number,String],default:null},multiple:Boolean},data:function(){return{internalLazyValue:void 0!==this.value?this.value:this.multiple?[]:void 0,items:[]}},computed:{classes:function(){return Object(i["a"])({"v-item-group":!0},this.themeClasses)},selectedIndex:function(){return this.selectedItem&&this.items.indexOf(this.selectedItem)||-1},selectedItem:function(){if(!this.multiple)return this.selectedItems[0]},selectedItems:function(){var t=this;return this.items.filter((function(e,n){return t.toggleMethod(t.getValue(e,n))}))},selectedValues:function(){return null==this.internalValue?[]:Array.isArray(this.internalValue)?this.internalValue:[this.internalValue]},toggleMethod:function(){var t=this;if(!this.multiple)return function(e){return t.internalValue===e};var e=this.internalValue;return Array.isArray(e)?function(t){return e.includes(t)}:function(){return!1}}},watch:{internalValue:"updateItemsState",items:"updateItemsState"},created:function(){this.multiple&&!Array.isArray(this.internalValue)&&Object(s["c"])("Model must be bound to an array if the multiple property is true.",this)},methods:{genData:function(){return{class:this.classes}},getValue:function(t,e){return null==t.value||""===t.value?e:t.value},onClick:function(t){this.updateInternalValue(this.getValue(t,this.items.indexOf(t)))},register:function(t){var e=this,n=this.items.push(t)-1;t.$on("change",(function(){return e.onClick(t)})),this.mandatory&&!this.selectedValues.length&&this.updateMandatory(),this.updateItem(t,n)},unregister:function(t){if(!this._isDestroyed){var e=this.items.indexOf(t),n=this.getValue(t,e);this.items.splice(e,1);var i=this.selectedValues.indexOf(n);if(!(i<0)){if(!this.mandatory)return this.updateInternalValue(n);this.multiple&&Array.isArray(this.internalValue)?this.internalValue=this.internalValue.filter((function(t){return t!==n})):this.internalValue=void 0,this.selectedItems.length||this.updateMandatory(!0)}}},updateItem:function(t,e){var n=this.getValue(t,e);t.isActive=this.toggleMethod(n)},updateItemsState:function(){var t=this;this.$nextTick((function(){if(t.mandatory&&!t.selectedItems.length)return t.updateMandatory();t.items.forEach(t.updateItem)}))},updateInternalValue:function(t){this.multiple?this.updateMultiple(t):this.updateSingle(t)},updateMandatory:function(t){if(this.items.length){var e=this.items.slice();t&&e.reverse();var n=e.find((function(t){return!t.disabled}));if(n){var i=this.items.indexOf(n);this.updateInternalValue(this.getValue(n,i))}}},updateMultiple:function(t){var e=Array.isArray(this.internalValue)?this.internalValue:[],n=e.slice(),i=n.findIndex((function(e){return e===t}));this.mandatory&&i>-1&&n.length-1<1||null!=this.max&&i<0&&n.length+1>this.max||(i>-1?n.splice(i,1):n.push(t),this.internalValue=n)},updateSingle:function(t){var e=t===this.internalValue;this.mandatory&&e||(this.internalValue=e?void 0:t)}},render:function(t){return t("div",this.genData(),this.$slots.default)}});e["b"]=c.extend({name:"v-item-group",provide:function(){return{itemGroup:this}}})},"60da":function(t,e,n){"use strict";var i=n("83ab"),r=n("d039"),o=n("df75"),a=n("7418"),s=n("d1e7"),c=n("7b0b"),l=n("44ad"),u=Object.assign,h=Object.defineProperty;t.exports=!u||r((function(){if(i&&1!==u({b:1},u(h({},"a",{enumerable:!0,get:function(){h(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=u({},t)[n]||o(u({},e)).join("")!=r}))?function(t,e){var n=c(t),r=arguments.length,u=1,h=a.f,f=s.f;while(r>u){var d,p=l(arguments[u++]),v=h?o(p).concat(h(p)):o(p),m=v.length,g=0;while(m>g)d=v[g++],i&&!f.call(p,d)||(n[d]=p[d])}return n}:u},"615b":function(t,e,n){},"61d2":function(t,e,n){},"62ad":function(t,e,n){"use strict";n("4160"),n("caad"),n("13d5"),n("45fc"),n("4ec9"),n("a9e3"),n("b64b"),n("d3b7"),n("ac1f"),n("3ca3"),n("5319"),n("2ca0"),n("159b"),n("ddb0");var i=n("ade3"),r=n("5530"),o=(n("4b85"),n("2b0e")),a=n("d9f7"),s=n("80d2"),c=["sm","md","lg","xl"],l=function(){return c.reduce((function(t,e){return t[e]={type:[Boolean,String,Number],default:!1},t}),{})}(),u=function(){return c.reduce((function(t,e){return t["offset"+Object(s["y"])(e)]={type:[String,Number],default:null},t}),{})}(),h=function(){return c.reduce((function(t,e){return t["order"+Object(s["y"])(e)]={type:[String,Number],default:null},t}),{})}(),f={col:Object.keys(l),offset:Object.keys(u),order:Object.keys(h)};function d(t,e,n){var i=t;if(null!=n&&!1!==n){if(e){var r=e.replace(t,"");i+="-".concat(r)}return"col"!==t||""!==n&&!0!==n?(i+="-".concat(n),i.toLowerCase()):i.toLowerCase()}}var p=new Map;e["a"]=o["a"].extend({name:"v-col",functional:!0,props:Object(r["a"])(Object(r["a"])(Object(r["a"])(Object(r["a"])({cols:{type:[Boolean,String,Number],default:!1}},l),{},{offset:{type:[String,Number],default:null}},u),{},{order:{type:[String,Number],default:null}},h),{},{alignSelf:{type:String,default:null,validator:function(t){return["auto","start","end","center","baseline","stretch"].includes(t)}},tag:{type:String,default:"div"}}),render:function(t,e){var n=e.props,r=e.data,o=e.children,s=(e.parent,"");for(var c in n)s+=String(n[c]);var l=p.get(s);return l||function(){var t,e;for(e in l=[],f)f[e].forEach((function(t){var i=n[t],r=d(e,t,i);r&&l.push(r)}));var r=l.some((function(t){return t.startsWith("col-")}));l.push((t={col:!r||!n.cols},Object(i["a"])(t,"col-".concat(n.cols),n.cols),Object(i["a"])(t,"offset-".concat(n.offset),n.offset),Object(i["a"])(t,"order-".concat(n.order),n.order),Object(i["a"])(t,"align-self-".concat(n.alignSelf),n.alignSelf),t)),p.set(s,l)}(),t(n.tag,Object(a["a"])(r,{class:l}),o)}})},6544:function(t,e){t.exports=function(t,e){var n="function"===typeof t.exports?t.exports.extendOptions:t.options;for(var i in"function"===typeof t.exports&&(n.components=t.exports.options.components),n.components=n.components||{},e)n.components[i]=n.components[i]||e[i]}},6547:function(t,e,n){var i=n("a691"),r=n("1d80"),o=function(t){return function(e,n){var o,a,s=String(r(e)),c=i(n),l=s.length;return c<0||c>=l?t?"":void 0:(o=s.charCodeAt(c),o<55296||o>56319||c+1===l||(a=s.charCodeAt(c+1))<56320||a>57343?t?s.charAt(c):o:t?s.slice(c,c+2):a-56320+(o-55296<<10)+65536)}};t.exports={codeAt:o(!1),charAt:o(!0)}},6566:function(t,e,n){"use strict";var i=n("9bf2").f,r=n("7c73"),o=n("e2cc"),a=n("0366"),s=n("19aa"),c=n("2266"),l=n("7dd0"),u=n("2626"),h=n("83ab"),f=n("f183").fastKey,d=n("69f3"),p=d.set,v=d.getterFor;t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,i){s(t,u,e),p(t,{type:e,index:r(null),first:void 0,last:void 0,size:0}),h||(t.size=0),void 0!=i&&c(i,t[l],t,n)})),d=v(e),m=function(t,e,n){var i,r,o=d(t),a=g(t,e);return a?a.value=n:(o.last=a={index:r=f(e,!0),key:e,value:n,previous:i=o.last,next:void 0,removed:!1},o.first||(o.first=a),i&&(i.next=a),h?o.size++:t.size++,"F"!==r&&(o.index[r]=a)),t},g=function(t,e){var n,i=d(t),r=f(e);if("F"!==r)return i.index[r];for(n=i.first;n;n=n.next)if(n.key==e)return n};return o(u.prototype,{clear:function(){var t=this,e=d(t),n=e.index,i=e.first;while(i)i.removed=!0,i.previous&&(i.previous=i.previous.next=void 0),delete n[i.index],i=i.next;e.first=e.last=void 0,h?e.size=0:t.size=0},delete:function(t){var e=this,n=d(e),i=g(e,t);if(i){var r=i.next,o=i.previous;delete n.index[i.index],i.removed=!0,o&&(o.next=r),r&&(r.previous=o),n.first==i&&(n.first=r),n.last==i&&(n.last=o),h?n.size--:e.size--}return!!i},forEach:function(t){var e,n=d(this),i=a(t,arguments.length>1?arguments[1]:void 0,3);while(e=e?e.next:n.first){i(e.value,e.key,this);while(e&&e.removed)e=e.previous}},has:function(t){return!!g(this,t)}}),o(u.prototype,n?{get:function(t){var e=g(this,t);return e&&e.value},set:function(t,e){return m(this,0===t?0:t,e)}}:{add:function(t){return m(this,t=0===t?0:t,t)}}),h&&i(u.prototype,"size",{get:function(){return d(this).size}}),u},setStrong:function(t,e,n){var i=e+" Iterator",r=v(e),o=v(i);l(t,e,(function(t,e){p(this,{type:i,target:t,state:r(t),kind:e,last:void 0})}),(function(){var t=o(this),e=t.kind,n=t.last;while(n&&n.removed)n=n.previous;return t.target&&(t.last=n=n?n.next:t.state.first)?"keys"==e?{value:n.key,done:!1}:"values"==e?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(t.target=void 0,{value:void 0,done:!0})}),n?"entries":"values",!n,!0),u(e)}}},"65f0":function(t,e,n){var i=n("861d"),r=n("e8b5"),o=n("b622"),a=o("species");t.exports=function(t,e){var n;return r(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!r(n.prototype)?i(n)&&(n=n[a],null===n&&(n=void 0)):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},"68dd":function(t,e,n){},"69f3":function(t,e,n){var i,r,o,a=n("7f9a"),s=n("da84"),c=n("861d"),l=n("9112"),u=n("5135"),h=n("f772"),f=n("d012"),d=s.WeakMap,p=function(t){return o(t)?r(t):i(t,{})},v=function(t){return function(e){var n;if(!c(e)||(n=r(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}};if(a){var m=new d,g=m.get,b=m.has,y=m.set;i=function(t,e){return y.call(m,t,e),e},r=function(t){return g.call(m,t)||{}},o=function(t){return b.call(m,t)}}else{var w=h("state");f[w]=!0,i=function(t,e){return l(t,w,e),e},r=function(t){return u(t,w)?t[w]:{}},o=function(t){return u(t,w)}}t.exports={set:i,get:r,has:o,enforce:p,getterFor:v}},"6b75":function(t,e,n){"use strict";function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}n.d(e,"a",(function(){return i}))},"6d61":function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),o=n("94ca"),a=n("6eeb"),s=n("f183"),c=n("2266"),l=n("19aa"),u=n("861d"),h=n("d039"),f=n("1c7e"),d=n("d44e"),p=n("7156");t.exports=function(t,e,n){var v=-1!==t.indexOf("Map"),m=-1!==t.indexOf("Weak"),g=v?"set":"add",b=r[t],y=b&&b.prototype,w=b,x={},O=function(t){var e=y[t];a(y,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(m&&!u(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!u(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(m&&!u(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(o(t,"function"!=typeof b||!(m||y.forEach&&!h((function(){(new b).entries().next()})))))w=n.getConstructor(e,t,v,g),s.REQUIRED=!0;else if(o(t,!0)){var _=new w,S=_[g](m?{}:-0,1)!=_,C=h((function(){_.has(1)})),k=f((function(t){new b(t)})),j=!m&&h((function(){var t=new b,e=5;while(e--)t[g](e,e);return!t.has(-0)}));k||(w=e((function(e,n){l(e,w,t);var i=p(new b,e,w);return void 0!=n&&c(n,i[g],i,v),i})),w.prototype=y,y.constructor=w),(C||j)&&(O("delete"),O("has"),v&&O("get")),(j||S)&&O(g),m&&y.clear&&delete y.clear}return x[t]=w,i({global:!0,forced:w!=b},x),d(w,t),m||n.setStrong(w,t,v),w}},"6ece":function(t,e,n){},"6eeb":function(t,e,n){var i=n("da84"),r=n("9112"),o=n("5135"),a=n("ce4e"),s=n("8925"),c=n("69f3"),l=c.get,u=c.enforce,h=String(String).split("String");(t.exports=function(t,e,n,s){var c=!!s&&!!s.unsafe,l=!!s&&!!s.enumerable,f=!!s&&!!s.noTargetGet;"function"==typeof n&&("string"!=typeof e||o(n,"name")||r(n,"name",e),u(n).source=h.join("string"==typeof e?e:"")),t!==i?(c?!f&&t[e]&&(l=!0):delete t[e],l?t[e]=n:r(t,e,n)):l?t[e]=n:a(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&l(this).source||s(this)}))},"6f53":function(t,e,n){var i=n("83ab"),r=n("df75"),o=n("fc6a"),a=n("d1e7").f,s=function(t){return function(e){var n,s=o(e),c=r(s),l=c.length,u=0,h=[];while(l>u)n=c[u++],i&&!a.call(s,n)||h.push(t?[n,s[n]]:s[n]);return h}};t.exports={entries:s(!0),values:s(!1)}},7156:function(t,e,n){var i=n("861d"),r=n("d2bb");t.exports=function(t,e,n){var o,a;return r&&"function"==typeof(o=e.constructor)&&o!==n&&i(a=o.prototype)&&a!==n.prototype&&r(t,a),t}},"71d9":function(t,e,n){"use strict";n("0481"),n("4160"),n("4069"),n("a9e3");var i=n("3835"),r=n("5530"),o=(n("5e23"),n("8dd9")),a=n("adda"),s=n("80d2"),c=n("d9bd");e["a"]=o["a"].extend({name:"v-toolbar",props:{absolute:Boolean,bottom:Boolean,collapse:Boolean,dense:Boolean,extended:Boolean,extensionHeight:{default:48,type:[Number,String]},flat:Boolean,floating:Boolean,prominent:Boolean,short:Boolean,src:{type:[String,Object],default:""},tag:{type:String,default:"header"}},data:function(){return{isExtended:!1}},computed:{computedHeight:function(){var t=this.computedContentHeight;if(!this.isExtended)return t;var e=parseInt(this.extensionHeight);return this.isCollapsed?t:t+(isNaN(e)?0:e)},computedContentHeight:function(){return this.height?parseInt(this.height):this.isProminent&&this.dense?96:this.isProminent&&this.short?112:this.isProminent?128:this.dense?48:this.short||this.$vuetify.breakpoint.smAndDown?56:64},classes:function(){return Object(r["a"])(Object(r["a"])({},o["a"].options.computed.classes.call(this)),{},{"v-toolbar":!0,"v-toolbar--absolute":this.absolute,"v-toolbar--bottom":this.bottom,"v-toolbar--collapse":this.collapse,"v-toolbar--collapsed":this.isCollapsed,"v-toolbar--dense":this.dense,"v-toolbar--extended":this.isExtended,"v-toolbar--flat":this.flat,"v-toolbar--floating":this.floating,"v-toolbar--prominent":this.isProminent})},isCollapsed:function(){return this.collapse},isProminent:function(){return this.prominent},styles:function(){return Object(r["a"])(Object(r["a"])({},this.measurableStyles),{},{height:Object(s["f"])(this.computedHeight)})}},created:function(){var t=this,e=[["app","<v-app-bar app>"],["manual-scroll",'<v-app-bar :value="false">'],["clipped-left","<v-app-bar clipped-left>"],["clipped-right","<v-app-bar clipped-right>"],["inverted-scroll","<v-app-bar inverted-scroll>"],["scroll-off-screen","<v-app-bar scroll-off-screen>"],["scroll-target","<v-app-bar scroll-target>"],["scroll-threshold","<v-app-bar scroll-threshold>"],["card","<v-app-bar flat>"]];e.forEach((function(e){var n=Object(i["a"])(e,2),r=n[0],o=n[1];t.$attrs.hasOwnProperty(r)&&Object(c["a"])(r,o,t)}))},methods:{genBackground:function(){var t={height:Object(s["f"])(this.computedHeight),src:this.src},e=this.$scopedSlots.img?this.$scopedSlots.img({props:t}):this.$createElement(a["a"],{props:t});return this.$createElement("div",{staticClass:"v-toolbar__image"},[e])},genContent:function(){return this.$createElement("div",{staticClass:"v-toolbar__content",style:{height:Object(s["f"])(this.computedContentHeight)}},Object(s["o"])(this))},genExtension:function(){return this.$createElement("div",{staticClass:"v-toolbar__extension",style:{height:Object(s["f"])(this.extensionHeight)}},Object(s["o"])(this,"extension"))}},render:function(t){this.isExtended=this.extended||!!this.$scopedSlots.extension;var e=[this.genContent()],n=this.setBackgroundColor(this.color,{class:this.classes,style:this.styles,on:this.$listeners});return this.isExtended&&e.push(this.genExtension()),(this.src||this.$scopedSlots.img)&&e.unshift(this.genBackground()),t(this.tag,n,e)}})},7418:function(t,e){e.f=Object.getOwnPropertySymbols},7435:function(t,e,n){},"746f":function(t,e,n){var i=n("428f"),r=n("5135"),o=n("e538"),a=n("9bf2").f;t.exports=function(t){var e=i.Symbol||(i.Symbol={});r(e,t)||a(e,t,{value:o.f(t)})}},7496:function(t,e,n){"use strict";var i=n("5530"),r=(n("df86"),n("7560")),o=n("58df");e["a"]=Object(o["a"])(r["a"]).extend({name:"v-app",props:{dark:{type:Boolean,default:void 0},id:{type:String,default:"app"},light:{type:Boolean,default:void 0}},computed:{isDark:function(){return this.$vuetify.theme.dark}},beforeCreate:function(){if(!this.$vuetify||this.$vuetify===this.$root)throw new Error("Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object")},render:function(t){var e=t("div",{staticClass:"v-application--wrap"},this.$slots.default);return t("div",{staticClass:"v-application",class:Object(i["a"])({"v-application--is-rtl":this.$vuetify.rtl,"v-application--is-ltr":!this.$vuetify.rtl},this.themeClasses),attrs:{"data-app":!0},domProps:{id:this.id}},[e])}})},7560:function(t,e,n){"use strict";n.d(e,"b",(function(){return o}));var i=n("5530"),r=n("2b0e");function o(t){var e=Object(i["a"])(Object(i["a"])({},t.props),t.injections),n=a.options.computed.isDark.call(e);return a.options.computed.themeClasses.call({isDark:n})}var a=r["a"].extend().extend({name:"themeable",provide:function(){return{theme:this.themeableProvide}},inject:{theme:{default:{isDark:!1}}},props:{dark:{type:Boolean,default:null},light:{type:Boolean,default:null}},data:function(){return{themeableProvide:{isDark:!1}}},computed:{appIsDark:function(){return this.$vuetify.theme.dark||!1},isDark:function(){return!0===this.dark||!0!==this.light&&this.theme.isDark},themeClasses:function(){return{"theme--dark":this.isDark,"theme--light":!this.isDark}},rootIsDark:function(){return!0===this.dark||!0!==this.light&&this.appIsDark},rootThemeClasses:function(){return{"theme--dark":this.rootIsDark,"theme--light":!this.rootIsDark}}},watch:{isDark:{handler:function(t,e){t!==e&&(this.themeableProvide.isDark=this.isDark)},immediate:!0}}});e["a"]=a},"75eb":function(t,e,n){"use strict";n("4160"),n("159b");var i=n("ade3"),r=n("53ca"),o=n("9d65"),a=n("80d2"),s=n("58df"),c=n("d9bd");function l(t){var e=Object(r["a"])(t);return"boolean"===e||"string"===e||t.nodeType===Node.ELEMENT_NODE}e["a"]=Object(s["a"])(o["a"]).extend({name:"detachable",props:{attach:{default:!1,validator:l},contentClass:{type:String,default:""}},data:function(){return{activatorNode:null,hasDetached:!1}},watch:{attach:function(){this.hasDetached=!1,this.initDetach()},hasContent:function(){this.$nextTick(this.initDetach)}},beforeMount:function(){var t=this;this.$nextTick((function(){if(t.activatorNode){var e=Array.isArray(t.activatorNode)?t.activatorNode:[t.activatorNode];e.forEach((function(e){if(e.elm&&t.$el.parentNode){var n=t.$el===t.$el.parentNode.firstChild?t.$el:t.$el.nextSibling;t.$el.parentNode.insertBefore(e.elm,n)}}))}}))},mounted:function(){this.hasContent&&this.initDetach()},deactivated:function(){this.isActive=!1},beforeDestroy:function(){try{if(this.$refs.content&&this.$refs.content.parentNode&&this.$refs.content.parentNode.removeChild(this.$refs.content),this.activatorNode){var t=Array.isArray(this.activatorNode)?this.activatorNode:[this.activatorNode];t.forEach((function(t){t.elm&&t.elm.parentNode&&t.elm.parentNode.removeChild(t.elm)}))}}catch(e){console.log(e)}},methods:{getScopeIdAttrs:function(){var t=Object(a["m"])(this.$vnode,"context.$options._scopeId");return t&&Object(i["a"])({},t,"")},initDetach:function(){var t;this._isDestroyed||!this.$refs.content||this.hasDetached||""===this.attach||!0===this.attach||"attach"===this.attach||(t=!1===this.attach?document.querySelector("[data-app]"):"string"===typeof this.attach?document.querySelector(this.attach):this.attach,t?(t.appendChild(this.$refs.content),this.hasDetached=!0):Object(c["c"])("Unable to locate target ".concat(this.attach||"[data-app]"),this))}}})},7839:function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},7958:function(t,e,n){},"7b0b":function(t,e,n){var i=n("1d80");t.exports=function(t){return Object(i(t))}},"7bc6":function(t,e,n){"use strict";n.d(e,"d",(function(){return r})),n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return a})),n.d(e,"a",(function(){return s}));n("99af"),n("a15b"),n("d81d"),n("fb6a"),n("b0c0"),n("d3b7"),n("07ac"),n("ac1f"),n("25f0"),n("466d"),n("38cf"),n("5319"),n("1276"),n("2ca0"),n("498a"),n("5530"),n("3835");var i=n("d9bd");n("80d2"),n("8da5");function r(t){return!!t&&!!t.match(/^(#|var\(--|(rgb|hsl)a?\()/)}function o(t){var e;if("number"===typeof t)e=t;else{if("string"!==typeof t)throw new TypeError("Colors can only be numbers or strings, recieved ".concat(null==t?t:t.constructor.name," instead"));var n="#"===t[0]?t.substring(1):t;3===n.length&&(n=n.split("").map((function(t){return t+t})).join("")),6!==n.length&&Object(i["c"])("'".concat(t,"' is not a valid rgb color")),e=parseInt(n,16)}return e<0?(Object(i["c"])("Colors cannot be negative: '".concat(t,"'")),e=0):(e>16777215||isNaN(e))&&(Object(i["c"])("'".concat(t,"' is not a valid rgb color")),e=16777215),e}function a(t){var e=t.toString(16);return e.length<6&&(e="0".repeat(6-e.length)+e),"#"+e}function s(t){return a(o(t))}},"7c73":function(t,e,n){var i,r=n("825a"),o=n("37e8"),a=n("7839"),s=n("d012"),c=n("1be4"),l=n("cc12"),u=n("f772"),h=">",f="<",d="prototype",p="script",v=u("IE_PROTO"),m=function(){},g=function(t){return f+p+h+t+f+"/"+p+h},b=function(t){t.write(g("")),t.close();var e=t.parentWindow.Object;return t=null,e},y=function(){var t,e=l("iframe"),n="java"+p+":";return e.style.display="none",c.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(g("document.F=Object")),t.close(),t.F},w=function(){try{i=document.domain&&new ActiveXObject("htmlfile")}catch(e){}w=i?b(i):y();var t=a.length;while(t--)delete w[d][a[t]];return w()};s[v]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(m[d]=r(t),n=new m,m[d]=null,n[v]=t):n=w(),void 0===e?n:o(n,e)}},"7db0":function(t,e,n){"use strict";var i=n("23e7"),r=n("b727").find,o=n("44d2"),a=n("ae40"),s="find",c=!0,l=a(s);s in[]&&Array(1)[s]((function(){c=!1})),i({target:"Array",proto:!0,forced:c||!l},{find:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),o(s)},"7dd0":function(t,e,n){"use strict";var i=n("23e7"),r=n("9ed3"),o=n("e163"),a=n("d2bb"),s=n("d44e"),c=n("9112"),l=n("6eeb"),u=n("b622"),h=n("c430"),f=n("3f8c"),d=n("ae93"),p=d.IteratorPrototype,v=d.BUGGY_SAFARI_ITERATORS,m=u("iterator"),g="keys",b="values",y="entries",w=function(){return this};t.exports=function(t,e,n,u,d,x,O){r(n,e,u);var _,S,C,k=function(t){if(t===d&&T)return T;if(!v&&t in $)return $[t];switch(t){case g:return function(){return new n(this,t)};case b:return function(){return new n(this,t)};case y:return function(){return new n(this,t)}}return function(){return new n(this)}},j=e+" Iterator",A=!1,$=t.prototype,E=$[m]||$["@@iterator"]||d&&$[d],T=!v&&E||k(d),I="Array"==e&&$.entries||E;if(I&&(_=o(I.call(new t)),p!==Object.prototype&&_.next&&(h||o(_)===p||(a?a(_,p):"function"!=typeof _[m]&&c(_,m,w)),s(_,j,!0,!0),h&&(f[j]=w))),d==b&&E&&E.name!==b&&(A=!0,T=function(){return E.call(this)}),h&&!O||$[m]===T||c($,m,T),f[e]=T,d)if(S={values:k(b),keys:x?T:k(g),entries:k(y)},O)for(C in S)(v||A||!(C in $))&&l($,C,S[C]);else i({target:e,proto:!0,forced:v||A},S);return S}},"7e2b":function(t,e,n){"use strict";var i=n("2b0e");function r(t){return function(e,n){for(var i in n)Object.prototype.hasOwnProperty.call(e,i)||this.$delete(this.$data[t],i);for(var r in e)this.$set(this.$data[t],r,e[r])}}e["a"]=i["a"].extend({data:function(){return{attrs$:{},listeners$:{}}},created:function(){this.$watch("$attrs",r("attrs$"),{immediate:!0}),this.$watch("$listeners",r("listeners$"),{immediate:!0})}})},"7f9a":function(t,e,n){var i=n("da84"),r=n("8925"),o=i.WeakMap;t.exports="function"===typeof o&&/native code/.test(r(o))},"80d2":function(t,e,n){"use strict";n.d(e,"h",(function(){return o})),n.d(e,"a",(function(){return a})),n.d(e,"w",(function(){return s})),n.d(e,"b",(function(){return l})),n.d(e,"l",(function(){return u})),n.d(e,"i",(function(){return h})),n.d(e,"m",(function(){return f})),n.d(e,"n",(function(){return d})),n.d(e,"g",(function(){return p})),n.d(e,"q",(function(){return v})),n.d(e,"j",(function(){return g})),n.d(e,"k",(function(){return b})),n.d(e,"f",(function(){return y})),n.d(e,"r",(function(){return w})),n.d(e,"s",(function(){return O})),n.d(e,"x",(function(){return _})),n.d(e,"t",(function(){return S})),n.d(e,"c",(function(){return k})),n.d(e,"y",(function(){return j})),n.d(e,"z",(function(){return A})),n.d(e,"p",(function(){return $})),n.d(e,"o",(function(){return E})),n.d(e,"e",(function(){return T})),n.d(e,"v",(function(){return I})),n.d(e,"d",(function(){return L})),n.d(e,"u",(function(){return M}));n("99af"),n("a623"),n("cb29"),n("4de4"),n("a630"),n("c975"),n("d81d"),n("13d5"),n("fb6a"),n("45fc"),n("4e827"),n("b0c0"),n("a9e3"),n("b680"),n("dca8"),n("b64b"),n("d3b7"),n("ac1f"),n("25f0"),n("3ca3"),n("38cf"),n("5319"),n("1276"),n("2ca0"),n("498a"),n("3835");var i=n("53ca"),r=(n("5530"),n("2b0e"));function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"div",n=arguments.length>2?arguments[2]:void 0;return r["a"].extend({name:n||t.replace(/__/g,"-"),functional:!0,render:function(n,i){var r=i.data,o=i.children;return r.staticClass="".concat(t," ").concat(r.staticClass||"").trim(),n(e,r,o)}})}function a(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],r=function r(o){n(o),t.removeEventListener(e,r,i)};t.addEventListener(e,r,i)}var s=!1;try{if("undefined"!==typeof window){var c=Object.defineProperty({},"passive",{get:function(){s=!0}});window.addEventListener("testListener",c,c),window.removeEventListener("testListener",c,c)}}catch(D){console.warn(D)}function l(t,e,n,i){t.addEventListener(e,n,!!s&&i)}function u(t,e,n){var i=e.length-1;if(i<0)return void 0===t?n:t;for(var r=0;r<i;r++){if(null==t)return n;t=t[e[r]]}return null==t||void 0===t[e[i]]?n:t[e[i]]}function h(t,e){if(t===e)return!0;if(t instanceof Date&&e instanceof Date&&t.getTime()!==e.getTime())return!1;if(t!==Object(t)||e!==Object(e))return!1;var n=Object.keys(t);return n.length===Object.keys(e).length&&n.every((function(n){return h(t[n],e[n])}))}function f(t,e,n){return null!=t&&e&&"string"===typeof e?void 0!==t[e]?t[e]:(e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,""),u(t,e.split("."),n)):n}function d(t,e,n){if(null==e)return void 0===t?n:t;if(t!==Object(t))return void 0===n?t:n;if("string"===typeof e)return f(t,e,n);if(Array.isArray(e))return u(t,e,n);if("function"!==typeof e)return n;var i=e(t,n);return"undefined"===typeof i?n:i}function p(t){return Array.from({length:t},(function(t,e){return e}))}function v(t){if(!t||t.nodeType!==Node.ELEMENT_NODE)return 0;var e=+window.getComputedStyle(t).getPropertyValue("z-index");return e||v(t.parentNode)}var m={"&":"&amp;","<":"&lt;",">":"&gt;"};function g(t){return t.replace(/[&<>]/g,(function(t){return m[t]||t}))}function b(t,e){for(var n={},i=0;i<e.length;i++){var r=e[i];"undefined"!==typeof t[r]&&(n[r]=t[r])}return n}function y(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"px";return null==t||""===t?void 0:isNaN(+t)?String(t):"".concat(Number(t)).concat(e)}function w(t){return(t||"").replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function x(t){return null!==t&&"object"===Object(i["a"])(t)}var O=Object.freeze({enter:13,tab:9,delete:46,esc:27,space:32,up:38,down:40,left:37,right:39,end:35,home:36,del:46,backspace:8,insert:45,pageup:33,pagedown:34});function _(t,e){if(!e.startsWith("$"))return e;var n="$vuetify.icons.values.".concat(e.split("$").pop().split(".").pop());return f(t,n,e)}function S(t){return Object.keys(t)}var C=/-(\w)/g,k=function(t){return t.replace(C,(function(t,e){return e?e.toUpperCase():""}))};function j(t){return t.charAt(0).toUpperCase()+t.slice(1)}function A(t){return null!=t?Array.isArray(t)?t:[t]:[]}function $(t,e,n){return t.$slots[e]&&t.$scopedSlots[e]&&t.$scopedSlots[e].name?n?"v-slot":"scoped":t.$slots[e]?"normal":t.$scopedSlots[e]?"scoped":void 0}function E(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"default",n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return t.$scopedSlots[e]?t.$scopedSlots[e](n instanceof Function?n():n):!t.$slots[e]||n&&!i?void 0:t.$slots[e]}function T(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.max(e,Math.min(n,t))}function I(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"0";return t+n.repeat(Math.max(0,e-t.length))}function L(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],i=0;while(i<t.length)n.push(t.substr(i,e)),i+=e;return n}function M(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(var n in e){var i=t[n],r=e[n];x(i)&&x(r)?t[n]=M(i,r):t[n]=r}return t}},"81d5":function(t,e,n){"use strict";var i=n("7b0b"),r=n("23cb"),o=n("50c4");t.exports=function(t){var e=i(this),n=o(e.length),a=arguments.length,s=r(a>1?arguments[1]:void 0,n),c=a>2?arguments[2]:void 0,l=void 0===c?n:r(c,n);while(l>s)e[s++]=t;return e}},"825a":function(t,e,n){var i=n("861d");t.exports=function(t){if(!i(t))throw TypeError(String(t)+" is not an object");return t}},8336:function(t,e,n){"use strict";n("4160"),n("caad"),n("c7cd");var i=n("53ca"),r=n("3835"),o=n("5530"),a=(n("86cc"),n("10d2")),s=(n("99af"),n("a9e3"),n("8d4f"),n("a9ad")),c=n("80d2"),l=s["a"].extend({name:"v-progress-circular",props:{button:Boolean,indeterminate:Boolean,rotate:{type:[Number,String],default:0},size:{type:[Number,String],default:32},width:{type:[Number,String],default:4},value:{type:[Number,String],default:0}},data:function(){return{radius:20}},computed:{calculatedSize:function(){return Number(this.size)+(this.button?8:0)},circumference:function(){return 2*Math.PI*this.radius},classes:function(){return{"v-progress-circular--indeterminate":this.indeterminate,"v-progress-circular--button":this.button}},normalizedValue:function(){return this.value<0?0:this.value>100?100:parseFloat(this.value)},strokeDashArray:function(){return Math.round(1e3*this.circumference)/1e3},strokeDashOffset:function(){return(100-this.normalizedValue)/100*this.circumference+"px"},strokeWidth:function(){return Number(this.width)/+this.size*this.viewBoxSize*2},styles:function(){return{height:Object(c["f"])(this.calculatedSize),width:Object(c["f"])(this.calculatedSize)}},svgStyles:function(){return{transform:"rotate(".concat(Number(this.rotate),"deg)")}},viewBoxSize:function(){return this.radius/(1-Number(this.width)/+this.size)}},methods:{genCircle:function(t,e){return this.$createElement("circle",{class:"v-progress-circular__".concat(t),attrs:{fill:"transparent",cx:2*this.viewBoxSize,cy:2*this.viewBoxSize,r:this.radius,"stroke-width":this.strokeWidth,"stroke-dasharray":this.strokeDashArray,"stroke-dashoffset":e}})},genSvg:function(){var t=[this.indeterminate||this.genCircle("underlay",0),this.genCircle("overlay",this.strokeDashOffset)];return this.$createElement("svg",{style:this.svgStyles,attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"".concat(this.viewBoxSize," ").concat(this.viewBoxSize," ").concat(2*this.viewBoxSize," ").concat(2*this.viewBoxSize)}},t)},genInfo:function(){return this.$createElement("div",{staticClass:"v-progress-circular__info"},this.$slots.default)}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-progress-circular",attrs:{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":this.indeterminate?void 0:this.normalizedValue},class:this.classes,style:this.styles,on:this.$listeners}),[this.genSvg(),this.genInfo()])}}),u=l,h=n("4e82"),f=n("f2e7"),d=n("fe6c"),p=n("1c87"),v=n("af2b"),m=n("58df"),g=n("d9bd"),b=Object(m["a"])(a["a"],p["a"],d["a"],v["a"],Object(h["a"])("btnToggle"),Object(f["b"])("inputValue"));e["a"]=b.extend().extend({name:"v-btn",props:{activeClass:{type:String,default:function(){return this.btnToggle?this.btnToggle.activeClass:""}},block:Boolean,depressed:Boolean,fab:Boolean,icon:Boolean,loading:Boolean,outlined:Boolean,retainFocusOnClick:Boolean,rounded:Boolean,tag:{type:String,default:"button"},text:Boolean,tile:Boolean,type:{type:String,default:"button"},value:null},data:function(){return{proxyClass:"v-btn--active"}},computed:{classes:function(){return Object(o["a"])(Object(o["a"])(Object(o["a"])(Object(o["a"])(Object(o["a"])({"v-btn":!0},p["a"].options.computed.classes.call(this)),{},{"v-btn--absolute":this.absolute,"v-btn--block":this.block,"v-btn--bottom":this.bottom,"v-btn--contained":this.contained,"v-btn--depressed":this.depressed||this.outlined,"v-btn--disabled":this.disabled,"v-btn--fab":this.fab,"v-btn--fixed":this.fixed,"v-btn--flat":this.isFlat,"v-btn--icon":this.icon,"v-btn--left":this.left,"v-btn--loading":this.loading,"v-btn--outlined":this.outlined,"v-btn--right":this.right,"v-btn--round":this.isRound,"v-btn--rounded":this.rounded,"v-btn--router":this.to,"v-btn--text":this.text,"v-btn--tile":this.tile,"v-btn--top":this.top},this.themeClasses),this.groupClasses),this.elevationClasses),this.sizeableClasses)},contained:function(){return Boolean(!this.isFlat&&!this.depressed&&!this.elevation)},computedRipple:function(){var t=!this.icon&&!this.fab||{circle:!0};return!this.disabled&&(null!=this.ripple?this.ripple:t)},isFlat:function(){return Boolean(this.icon||this.text||this.outlined)},isRound:function(){return Boolean(this.icon||this.fab)},styles:function(){return Object(o["a"])({},this.measurableStyles)}},created:function(){var t=this,e=[["flat","text"],["outline","outlined"],["round","rounded"]];e.forEach((function(e){var n=Object(r["a"])(e,2),i=n[0],o=n[1];t.$attrs.hasOwnProperty(i)&&Object(g["a"])(i,o,t)}))},methods:{click:function(t){!this.retainFocusOnClick&&!this.fab&&t.detail&&this.$el.blur(),this.$emit("click",t),this.btnToggle&&this.toggle()},genContent:function(){return this.$createElement("span",{staticClass:"v-btn__content"},this.$slots.default)},genLoader:function(){return this.$createElement("span",{class:"v-btn__loader"},this.$slots.loader||[this.$createElement(u,{props:{indeterminate:!0,size:23,width:2}})])}},render:function(t){var e=[this.genContent(),this.loading&&this.genLoader()],n=this.isFlat?this.setTextColor:this.setBackgroundColor,r=this.generateRouteLink(),o=r.tag,a=r.data;return"button"===o&&(a.attrs.type=this.type,a.attrs.disabled=this.disabled),a.attrs.value=["string","number"].includes(Object(i["a"])(this.value))?this.value:JSON.stringify(this.value),t(o,this.disabled?a:n(this.color,a),e)}})},"83ab":function(t,e,n){var i=n("d039");t.exports=!i((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8418:function(t,e,n){"use strict";var i=n("c04e"),r=n("9bf2"),o=n("5c6c");t.exports=function(t,e,n){var a=i(e);a in t?r.f(t,a,o(0,n)):t[a]=n}},"857a":function(t,e,n){var i=n("1d80"),r=/"/g;t.exports=function(t,e,n,o){var a=String(i(t)),s="<"+e;return""!==n&&(s+=" "+n+'="'+String(o).replace(r,"&quot;")+'"'),s+">"+a+"</"+e+">"}},"861d":function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},8654:function(t,e,n){"use strict";n("0481"),n("caad"),n("4069"),n("a9e3"),n("2b19"),n("d3b7"),n("25f0");var i=n("5530"),r=(n("4ff9"),n("c37a")),o=(n("99af"),n("e9b1"),n("7560")),a=n("58df"),s=Object(a["a"])(o["a"]).extend({name:"v-counter",functional:!0,props:{value:{type:[Number,String],default:""},max:[Number,String]},render:function(t,e){var n=e.props,r=parseInt(n.max,10),a=parseInt(n.value,10),s=r?"".concat(a," / ").concat(r):String(n.value),c=r&&a>r;return t("div",{staticClass:"v-counter",class:Object(i["a"])({"error--text":c},Object(o["b"])(e))},s)}}),c=s,l=n("ba87"),u=n("90a2"),h=n("d9bd"),f=n("2b0e");function d(t){return"undefined"!==typeof window&&"IntersectionObserver"in window?f["a"].extend({name:"intersectable",mounted:function(){u["a"].inserted(this.$el,{name:"intersect",value:this.onObserve})},destroyed:function(){u["a"].unbind(this.$el)},methods:{onObserve:function(e,n,i){if(i)for(var r=0,o=t.onVisible.length;r<o;r++){var a=this[t.onVisible[r]];"function"!==typeof a?Object(h["c"])(t.onVisible[r]+" method is not available on the instance but referenced in intersectable mixin options"):a()}}}}):f["a"].extend({name:"intersectable"})}var p=n("297c"),v=n("38cb"),m=n("5607"),g=n("80d2"),b=Object(a["a"])(r["a"],d({onVisible:["setLabelWidth","setPrefixWidth","setPrependWidth","tryAutofocus"]}),p["a"]),y=["color","file","time","date","datetime-local","week","month"];e["a"]=b.extend().extend({name:"v-text-field",directives:{ripple:m["a"]},inheritAttrs:!1,props:{appendOuterIcon:String,autofocus:Boolean,clearable:Boolean,clearIcon:{type:String,default:"$clear"},counter:[Boolean,Number,String],counterValue:Function,filled:Boolean,flat:Boolean,fullWidth:Boolean,label:String,outlined:Boolean,placeholder:String,prefix:String,prependInnerIcon:String,reverse:Boolean,rounded:Boolean,shaped:Boolean,singleLine:Boolean,solo:Boolean,soloInverted:Boolean,suffix:String,type:{type:String,default:"text"}},data:function(){return{badInput:!1,labelWidth:0,prefixWidth:0,prependWidth:0,initialValue:null,isBooted:!1,isClearing:!1}},computed:{classes:function(){return Object(i["a"])(Object(i["a"])({},r["a"].options.computed.classes.call(this)),{},{"v-text-field":!0,"v-text-field--full-width":this.fullWidth,"v-text-field--prefix":this.prefix,"v-text-field--single-line":this.isSingle,"v-text-field--solo":this.isSolo,"v-text-field--solo-inverted":this.soloInverted,"v-text-field--solo-flat":this.flat,"v-text-field--filled":this.filled,"v-text-field--is-booted":this.isBooted,"v-text-field--enclosed":this.isEnclosed,"v-text-field--reverse":this.reverse,"v-text-field--outlined":this.outlined,"v-text-field--placeholder":this.placeholder,"v-text-field--rounded":this.rounded,"v-text-field--shaped":this.shaped})},computedColor:function(){var t=v["a"].options.computed.computedColor.call(this);return this.soloInverted&&this.isFocused?this.color||"primary":t},computedCounterValue:function(){return"function"===typeof this.counterValue?this.counterValue(this.internalValue):(this.internalValue||"").toString().length},hasCounter:function(){return!1!==this.counter&&null!=this.counter},hasDetails:function(){return r["a"].options.computed.hasDetails.call(this)||this.hasCounter},internalValue:{get:function(){return this.lazyValue},set:function(t){this.lazyValue=t,this.$emit("input",this.lazyValue)}},isDirty:function(){return null!=this.lazyValue&&this.lazyValue.toString().length>0||this.badInput},isEnclosed:function(){return this.filled||this.isSolo||this.outlined},isLabelActive:function(){return this.isDirty||y.includes(this.type)},isSingle:function(){return this.isSolo||this.singleLine||this.fullWidth||this.filled&&!this.hasLabel},isSolo:function(){return this.solo||this.soloInverted},labelPosition:function(){var t=this.prefix&&!this.labelValue?this.prefixWidth:0;return this.labelValue&&this.prependWidth&&(t-=this.prependWidth),this.$vuetify.rtl===this.reverse?{left:t,right:"auto"}:{left:"auto",right:t}},showLabel:function(){return this.hasLabel&&(!this.isSingle||!this.isLabelActive&&!this.placeholder)},labelValue:function(){return!this.isSingle&&Boolean(this.isFocused||this.isLabelActive||this.placeholder)}},watch:{labelValue:"setLabelWidth",outlined:"setLabelWidth",label:function(){this.$nextTick(this.setLabelWidth)},prefix:function(){this.$nextTick(this.setPrefixWidth)},isFocused:"updateValue",value:function(t){this.lazyValue=t}},created:function(){this.$attrs.hasOwnProperty("box")&&Object(h["a"])("box","filled",this),this.$attrs.hasOwnProperty("browser-autocomplete")&&Object(h["a"])("browser-autocomplete","autocomplete",this),this.shaped&&!(this.filled||this.outlined||this.isSolo)&&Object(h["c"])("shaped should be used with either filled or outlined",this)},mounted:function(){var t=this;this.autofocus&&this.tryAutofocus(),this.setLabelWidth(),this.setPrefixWidth(),this.setPrependWidth(),requestAnimationFrame((function(){return t.isBooted=!0}))},methods:{focus:function(){this.onFocus()},blur:function(t){var e=this;window.requestAnimationFrame((function(){e.$refs.input&&e.$refs.input.blur()}))},clearableCallback:function(){var t=this;this.$refs.input&&this.$refs.input.focus(),this.$nextTick((function(){return t.internalValue=null}))},genAppendSlot:function(){var t=[];return this.$slots["append-outer"]?t.push(this.$slots["append-outer"]):this.appendOuterIcon&&t.push(this.genIcon("appendOuter")),this.genSlot("append","outer",t)},genPrependInnerSlot:function(){var t=[];return this.$slots["prepend-inner"]?t.push(this.$slots["prepend-inner"]):this.prependInnerIcon&&t.push(this.genIcon("prependInner")),this.genSlot("prepend","inner",t)},genIconSlot:function(){var t=[];return this.$slots["append"]?t.push(this.$slots["append"]):this.appendIcon&&t.push(this.genIcon("append")),this.genSlot("append","inner",t)},genInputSlot:function(){var t=r["a"].options.methods.genInputSlot.call(this),e=this.genPrependInnerSlot();return e&&(t.children=t.children||[],t.children.unshift(e)),t},genClearIcon:function(){if(!this.clearable)return null;var t=this.isDirty?void 0:{attrs:{disabled:!0}};return this.genSlot("append","inner",[this.genIcon("clear",this.clearableCallback,t)])},genCounter:function(){if(!this.hasCounter)return null;var t=!0===this.counter?this.attrs$.maxlength:this.counter;return this.$createElement(c,{props:{dark:this.dark,light:this.light,max:t,value:this.computedCounterValue}})},genControl:function(){return r["a"].options.methods.genControl.call(this)},genDefaultSlot:function(){return[this.genFieldset(),this.genTextFieldSlot(),this.genClearIcon(),this.genIconSlot(),this.genProgress()]},genFieldset:function(){return this.outlined?this.$createElement("fieldset",{attrs:{"aria-hidden":!0}},[this.genLegend()]):null},genLabel:function(){if(!this.showLabel)return null;var t={props:{absolute:!0,color:this.validationState,dark:this.dark,disabled:this.isDisabled,focused:!this.isSingle&&(this.isFocused||!!this.validationState),for:this.computedId,left:this.labelPosition.left,light:this.light,right:this.labelPosition.right,value:this.labelValue}};return this.$createElement(l["a"],t,this.$slots.label||this.label)},genLegend:function(){var t=this.singleLine||!this.labelValue&&!this.isDirty?0:this.labelWidth,e=this.$createElement("span",{domProps:{innerHTML:"&#8203;"}});return this.$createElement("legend",{style:{width:this.isSingle?void 0:Object(g["f"])(t)}},[e])},genInput:function(){var t=Object.assign({},this.listeners$);return delete t["change"],this.$createElement("input",{style:{},domProps:{value:"number"===this.type&&Object.is(this.lazyValue,-0)?"-0":this.lazyValue},attrs:Object(i["a"])(Object(i["a"])({},this.attrs$),{},{autofocus:this.autofocus,disabled:this.isDisabled,id:this.computedId,placeholder:this.placeholder,readonly:this.isReadonly,type:this.type}),on:Object.assign(t,{blur:this.onBlur,input:this.onInput,focus:this.onFocus,keydown:this.onKeyDown}),ref:"input"})},genMessages:function(){if(!this.showDetails)return null;var t=r["a"].options.methods.genMessages.call(this),e=this.genCounter();return this.$createElement("div",{staticClass:"v-text-field__details"},[t,e])},genTextFieldSlot:function(){return this.$createElement("div",{staticClass:"v-text-field__slot"},[this.genLabel(),this.prefix?this.genAffix("prefix"):null,this.genInput(),this.suffix?this.genAffix("suffix"):null])},genAffix:function(t){return this.$createElement("div",{class:"v-text-field__".concat(t),ref:t},this[t])},onBlur:function(t){var e=this;this.isFocused=!1,t&&this.$nextTick((function(){return e.$emit("blur",t)}))},onClick:function(){this.isFocused||this.isDisabled||!this.$refs.input||this.$refs.input.focus()},onFocus:function(t){if(this.$refs.input)return document.activeElement!==this.$refs.input?this.$refs.input.focus():void(this.isFocused||(this.isFocused=!0,t&&this.$emit("focus",t)))},onInput:function(t){var e=t.target;this.internalValue=e.value,this.badInput=e.validity&&e.validity.badInput},onKeyDown:function(t){t.keyCode===g["s"].enter&&this.$emit("change",this.internalValue),this.$emit("keydown",t)},onMouseDown:function(t){t.target!==this.$refs.input&&(t.preventDefault(),t.stopPropagation()),r["a"].options.methods.onMouseDown.call(this,t)},onMouseUp:function(t){this.hasMouseDown&&this.focus(),r["a"].options.methods.onMouseUp.call(this,t)},setLabelWidth:function(){this.outlined&&(this.labelWidth=this.$refs.label?Math.min(.75*this.$refs.label.scrollWidth+6,this.$el.offsetWidth-24):0)},setPrefixWidth:function(){this.$refs.prefix&&(this.prefixWidth=this.$refs.prefix.offsetWidth)},setPrependWidth:function(){this.outlined&&this.$refs["prepend-inner"]&&(this.prependWidth=this.$refs["prepend-inner"].offsetWidth)},tryAutofocus:function(){return!(!this.autofocus||"undefined"===typeof document||!this.$refs.input||document.activeElement===this.$refs.input)&&(this.$refs.input.focus(),!0)},updateValue:function(t){this.hasColor=t,t?this.initialValue=this.lazyValue:this.initialValue!==this.lazyValue&&this.$emit("change",this.lazyValue)}}})},"86cc":function(t,e,n){},8860:function(t,e,n){"use strict";n("c740"),n("0481"),n("a434"),n("4069");var i=n("b85c"),r=n("5530"),o=(n("3ad0"),n("8dd9"));e["a"]=o["a"].extend().extend({name:"v-list",provide:function(){return{isInList:!0,list:this}},inject:{isInMenu:{default:!1},isInNav:{default:!1}},props:{dense:Boolean,disabled:Boolean,expand:Boolean,flat:Boolean,nav:Boolean,rounded:Boolean,subheader:Boolean,threeLine:Boolean,twoLine:Boolean},data:function(){return{groups:[]}},computed:{classes:function(){return Object(r["a"])(Object(r["a"])({},o["a"].options.computed.classes.call(this)),{},{"v-list--dense":this.dense,"v-list--disabled":this.disabled,"v-list--flat":this.flat,"v-list--nav":this.nav,"v-list--rounded":this.rounded,"v-list--subheader":this.subheader,"v-list--two-line":this.twoLine,"v-list--three-line":this.threeLine})}},methods:{register:function(t){this.groups.push(t)},unregister:function(t){var e=this.groups.findIndex((function(e){return e._uid===t._uid}));e>-1&&this.groups.splice(e,1)},listClick:function(t){if(!this.expand){var e,n=Object(i["a"])(this.groups);try{for(n.s();!(e=n.n()).done;){var r=e.value;r.toggle(t)}}catch(o){n.e(o)}finally{n.f()}}}},render:function(t){var e={staticClass:"v-list",class:this.classes,style:this.styles,attrs:Object(r["a"])({role:this.isInNav||this.isInMenu?void 0:"list"},this.attrs$)};return t(this.tag,this.setBackgroundColor(this.color,e),[this.$slots.default])}})},8925:function(t,e,n){var i=n("c6cd"),r=Function.toString;"function"!=typeof i.inspectSource&&(i.inspectSource=function(t){return r.call(t)}),t.exports=i.inspectSource},"899c":function(t,e,n){},"8aa5":function(t,e,n){"use strict";var i=n("6547").charAt;t.exports=function(t,e,n){return e+(n?i(t,e).length:1)}},"8adc":function(t,e,n){},"8b0d":function(t,e,n){},"8ce9":function(t,e,n){},"8d4f":function(t,e,n){},"8da5":function(t,e,n){"use strict";n.d(e,"a",(function(){return c})),n.d(e,"b",(function(){return l}));var i=n("80d2"),r=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],o=function(t){return t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055},a=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],s=function(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)};function c(t){for(var e=Array(3),n=o,a=r,s=0;s<3;++s)e[s]=Math.round(255*Object(i["e"])(n(a[s][0]*t[0]+a[s][1]*t[1]+a[s][2]*t[2])));return(e[0]<<16)+(e[1]<<8)+(e[2]<<0)}function l(t){for(var e=[0,0,0],n=s,i=a,r=n((t>>16&255)/255),o=n((t>>8&255)/255),c=n((t>>0&255)/255),l=0;l<3;++l)e[l]=i[l][0]*r+i[l][1]*o+i[l][2]*c;return e}},"8dd9":function(t,e,n){"use strict";var i=n("5530"),r=(n("25a8"),n("7e2b")),o=n("a9ad"),a=(n("a9e3"),n("ade3")),s=n("2b0e"),c=s["a"].extend({name:"elevatable",props:{elevation:[Number,String]},computed:{computedElevation:function(){return this.elevation},elevationClasses:function(){var t=this.computedElevation;return null==t||isNaN(parseInt(t))?{}:Object(a["a"])({},"elevation-".concat(this.elevation),!0)}}}),l=n("24b2"),u=n("a236"),h=n("7560"),f=n("58df");e["a"]=Object(f["a"])(r["a"],o["a"],c,l["a"],u["a"],h["a"]).extend({name:"v-sheet",props:{outlined:Boolean,shaped:Boolean,tag:{type:String,default:"div"}},computed:{classes:function(){return Object(i["a"])(Object(i["a"])(Object(i["a"])({"v-sheet":!0,"v-sheet--outlined":this.outlined,"v-sheet--shaped":this.shaped},this.themeClasses),this.elevationClasses),this.roundedClasses)},styles:function(){return this.measurableStyles}},render:function(t){var e={class:this.classes,style:this.styles,on:this.listeners$};return t(this.tag,this.setBackgroundColor(this.color,e),this.$slots.default)}})},"8efc":function(t,e,n){},"8ff2":function(t,e,n){},"90a2":function(t,e,n){"use strict";n("7db0");var i=n("53ca");function r(t,e){var n=e.modifiers||{},r=e.value,a="object"===Object(i["a"])(r)?r:{handler:r,options:{}},s=a.handler,c=a.options,l=new IntersectionObserver((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=arguments.length>1?arguments[1]:void 0;if(t._observe){if(s&&(!n.quiet||t._observe.init)){var r=Boolean(e.find((function(t){return t.isIntersecting})));s(e,i,r)}t._observe.init&&n.once?o(t):t._observe.init=!0}}),c);t._observe={init:!1,observer:l},l.observe(t)}function o(t){t._observe&&(t._observe.observer.unobserve(t),delete t._observe)}var a={inserted:r,unbind:o};e["a"]=a},"90e3":function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+i).toString(36)}},9112:function(t,e,n){var i=n("83ab"),r=n("9bf2"),o=n("5c6c");t.exports=i?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},9263:function(t,e,n){"use strict";var i=n("ad6d"),r=n("9f7f"),o=RegExp.prototype.exec,a=String.prototype.replace,s=o,c=function(){var t=/a/,e=/b*/g;return o.call(t,"a"),o.call(e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),l=r.UNSUPPORTED_Y||r.BROKEN_CARET,u=void 0!==/()??/.exec("")[1],h=c||u||l;h&&(s=function(t){var e,n,r,s,h=this,f=l&&h.sticky,d=i.call(h),p=h.source,v=0,m=t;return f&&(d=d.replace("y",""),-1===d.indexOf("g")&&(d+="g"),m=String(t).slice(h.lastIndex),h.lastIndex>0&&(!h.multiline||h.multiline&&"\n"!==t[h.lastIndex-1])&&(p="(?: "+p+")",m=" "+m,v++),n=new RegExp("^(?:"+p+")",d)),u&&(n=new RegExp("^"+p+"$(?!\\s)",d)),c&&(e=h.lastIndex),r=o.call(f?n:h,m),f?r?(r.input=r.input.slice(v),r[0]=r[0].slice(v),r.index=h.lastIndex,h.lastIndex+=r[0].length):h.lastIndex=0:c&&r&&(h.lastIndex=h.global?r.index+r[0].length:e),u&&r&&r.length>1&&a.call(r[0],n,(function(){for(s=1;s<arguments.length-2;s++)void 0===arguments[s]&&(r[s]=void 0)})),r}),t.exports=s},"94ca":function(t,e,n){var i=n("d039"),r=/#|\.prototype\./,o=function(t,e){var n=s[a(t)];return n==l||n!=c&&("function"==typeof e?i(e):!!e)},a=o.normalize=function(t){return String(t).replace(r,".").toLowerCase()},s=o.data={},c=o.NATIVE="N",l=o.POLYFILL="P";t.exports=o},"95ed":function(t,e,n){},9861:function(t,e,n){"use strict";n("e260");var i=n("23e7"),r=n("d066"),o=n("0d3b"),a=n("6eeb"),s=n("e2cc"),c=n("d44e"),l=n("9ed3"),u=n("69f3"),h=n("19aa"),f=n("5135"),d=n("0366"),p=n("f5df"),v=n("825a"),m=n("861d"),g=n("7c73"),b=n("5c6c"),y=n("9a1f"),w=n("35a1"),x=n("b622"),O=r("fetch"),_=r("Headers"),S=x("iterator"),C="URLSearchParams",k=C+"Iterator",j=u.set,A=u.getterFor(C),$=u.getterFor(k),E=/\+/g,T=Array(4),I=function(t){return T[t-1]||(T[t-1]=RegExp("((?:%[\\da-f]{2}){"+t+"})","gi"))},L=function(t){try{return decodeURIComponent(t)}catch(e){return t}},M=function(t){var e=t.replace(E," "),n=4;try{return decodeURIComponent(e)}catch(i){while(n)e=e.replace(I(n--),L);return e}},D=/[!'()~]|%20/g,B={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},P=function(t){return B[t]},N=function(t){return encodeURIComponent(t).replace(D,P)},V=function(t,e){if(e){var n,i,r=e.split("&"),o=0;while(o<r.length)n=r[o++],n.length&&(i=n.split("="),t.push({key:M(i.shift()),value:M(i.join("="))}))}},R=function(t){this.entries.length=0,V(this.entries,t)},F=function(t,e){if(t<e)throw TypeError("Not enough arguments")},z=l((function(t,e){j(this,{type:k,iterator:y(A(t).entries),kind:e})}),"Iterator",(function(){var t=$(this),e=t.kind,n=t.iterator.next(),i=n.value;return n.done||(n.value="keys"===e?i.key:"values"===e?i.value:[i.key,i.value]),n})),H=function(){h(this,H,C);var t,e,n,i,r,o,a,s,c,l=arguments.length>0?arguments[0]:void 0,u=this,d=[];if(j(u,{type:C,entries:d,updateURL:function(){},updateSearchParams:R}),void 0!==l)if(m(l))if(t=w(l),"function"===typeof t){e=t.call(l),n=e.next;while(!(i=n.call(e)).done){if(r=y(v(i.value)),o=r.next,(a=o.call(r)).done||(s=o.call(r)).done||!o.call(r).done)throw TypeError("Expected sequence with length 2");d.push({key:a.value+"",value:s.value+""})}}else for(c in l)f(l,c)&&d.push({key:c,value:l[c]+""});else V(d,"string"===typeof l?"?"===l.charAt(0)?l.slice(1):l:l+"")},W=H.prototype;s(W,{append:function(t,e){F(arguments.length,2);var n=A(this);n.entries.push({key:t+"",value:e+""}),n.updateURL()},delete:function(t){F(arguments.length,1);var e=A(this),n=e.entries,i=t+"",r=0;while(r<n.length)n[r].key===i?n.splice(r,1):r++;e.updateURL()},get:function(t){F(arguments.length,1);for(var e=A(this).entries,n=t+"",i=0;i<e.length;i++)if(e[i].key===n)return e[i].value;return null},getAll:function(t){F(arguments.length,1);for(var e=A(this).entries,n=t+"",i=[],r=0;r<e.length;r++)e[r].key===n&&i.push(e[r].value);return i},has:function(t){F(arguments.length,1);var e=A(this).entries,n=t+"",i=0;while(i<e.length)if(e[i++].key===n)return!0;return!1},set:function(t,e){F(arguments.length,1);for(var n,i=A(this),r=i.entries,o=!1,a=t+"",s=e+"",c=0;c<r.length;c++)n=r[c],n.key===a&&(o?r.splice(c--,1):(o=!0,n.value=s));o||r.push({key:a,value:s}),i.updateURL()},sort:function(){var t,e,n,i=A(this),r=i.entries,o=r.slice();for(r.length=0,n=0;n<o.length;n++){for(t=o[n],e=0;e<n;e++)if(r[e].key>t.key){r.splice(e,0,t);break}e===n&&r.push(t)}i.updateURL()},forEach:function(t){var e,n=A(this).entries,i=d(t,arguments.length>1?arguments[1]:void 0,3),r=0;while(r<n.length)e=n[r++],i(e.value,e.key,this)},keys:function(){return new z(this,"keys")},values:function(){return new z(this,"values")},entries:function(){return new z(this,"entries")}},{enumerable:!0}),a(W,S,W.entries),a(W,"toString",(function(){var t,e=A(this).entries,n=[],i=0;while(i<e.length)t=e[i++],n.push(N(t.key)+"="+N(t.value));return n.join("&")}),{enumerable:!0}),c(H,C),i({global:!0,forced:!o},{URLSearchParams:H}),o||"function"!=typeof O||"function"!=typeof _||i({global:!0,enumerable:!0,forced:!0},{fetch:function(t){var e,n,i,r=[t];return arguments.length>1&&(e=arguments[1],m(e)&&(n=e.body,p(n)===C&&(i=e.headers?new _(e.headers):new _,i.has("content-type")||i.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),e=g(e,{body:b(0,String(n)),headers:b(0,i)}))),r.push(e)),O.apply(this,r)}}),t.exports={URLSearchParams:H,getState:A}},9911:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),o=n("af03");i({target:"String",proto:!0,forced:o("link")},{link:function(t){return r(this,"a","href",t)}})},"99af":function(t,e,n){"use strict";var i=n("23e7"),r=n("d039"),o=n("e8b5"),a=n("861d"),s=n("7b0b"),c=n("50c4"),l=n("8418"),u=n("65f0"),h=n("1dde"),f=n("b622"),d=n("2d00"),p=f("isConcatSpreadable"),v=9007199254740991,m="Maximum allowed index exceeded",g=d>=51||!r((function(){var t=[];return t[p]=!1,t.concat()[0]!==t})),b=h("concat"),y=function(t){if(!a(t))return!1;var e=t[p];return void 0!==e?!!e:o(t)},w=!g||!b;i({target:"Array",proto:!0,forced:w},{concat:function(t){var e,n,i,r,o,a=s(this),h=u(a,0),f=0;for(e=-1,i=arguments.length;e<i;e++)if(o=-1===e?a:arguments[e],y(o)){if(r=c(o.length),f+r>v)throw TypeError(m);for(n=0;n<r;n++,f++)n in o&&l(h,f,o[n])}else{if(f>=v)throw TypeError(m);l(h,f++,o)}return h.length=f,h}})},"99d9":function(t,e,n){"use strict";n.d(e,"a",(function(){return o})),n.d(e,"b",(function(){return s})),n.d(e,"c",(function(){return c}));var i=n("b0af"),r=n("80d2"),o=Object(r["h"])("v-card__actions"),a=Object(r["h"])("v-card__subtitle"),s=Object(r["h"])("v-card__text"),c=Object(r["h"])("v-card__title");i["a"]},"9a1f":function(t,e,n){var i=n("825a"),r=n("35a1");t.exports=function(t){var e=r(t);if("function"!=typeof e)throw TypeError(String(t)+" is not iterable");return i(e.call(t))}},"9bdd":function(t,e,n){var i=n("825a");t.exports=function(t,e,n,r){try{return r?e(i(n)[0],n[1]):e(n)}catch(a){var o=t["return"];throw void 0!==o&&i(o.call(t)),a}}},"9bf2":function(t,e,n){var i=n("83ab"),r=n("0cfb"),o=n("825a"),a=n("c04e"),s=Object.defineProperty;e.f=i?s:function(t,e,n){if(o(t),e=a(e,!0),o(n),r)try{return s(t,e,n)}catch(i){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},"9d26":function(t,e,n){"use strict";var i=n("132d");e["a"]=i["a"]},"9d65":function(t,e,n){"use strict";var i=n("d9bd"),r=n("2b0e");e["a"]=r["a"].extend().extend({name:"bootable",props:{eager:Boolean},data:function(){return{isBooted:!1}},computed:{hasContent:function(){return this.isBooted||this.eager||this.isActive}},watch:{isActive:function(){this.isBooted=!0}},created:function(){"lazy"in this.$attrs&&Object(i["e"])("lazy",this)},methods:{showLazyContent:function(t){return this.hasContent&&t?t():[this.$createElement()]}}})},"9e29":function(t,e,n){},"9ed3":function(t,e,n){"use strict";var i=n("ae93").IteratorPrototype,r=n("7c73"),o=n("5c6c"),a=n("d44e"),s=n("3f8c"),c=function(){return this};t.exports=function(t,e,n){var l=e+" Iterator";return t.prototype=r(i,{next:o(1,n)}),a(t,l,!1,!0),s[l]=c,t}},"9f7f":function(t,e,n){"use strict";var i=n("d039");function r(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=i((function(){var t=r("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=i((function(){var t=r("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},a15b:function(t,e,n){"use strict";var i=n("23e7"),r=n("44ad"),o=n("fc6a"),a=n("a640"),s=[].join,c=r!=Object,l=a("join",",");i({target:"Array",proto:!0,forced:c||!l},{join:function(t){return s.call(o(this),void 0===t?",":t)}})},a236:function(t,e,n){"use strict";n("a15b"),n("ac1f"),n("1276");var i=n("ade3"),r=n("b85c"),o=n("2b0e");e["a"]=o["a"].extend({name:"roundable",props:{rounded:[Boolean,String],tile:Boolean},computed:{roundedClasses:function(){var t=[],e="string"===typeof this.rounded?String(this.rounded):!0===this.rounded;if(this.tile)t.push("rounded-0");else if("string"===typeof e){var n,o=e.split(" "),a=Object(r["a"])(o);try{for(a.s();!(n=a.n()).done;){var s=n.value;t.push("rounded-".concat(s))}}catch(c){a.e(c)}finally{a.f()}}else e&&t.push("rounded");return t.length>0?Object(i["a"])({},t.join(" "),!0):{}}}})},a293:function(t,e,n){"use strict";n("45fc");var i=n("53ca");function r(){return!0}function o(t,e,n){var o="function"===typeof n.value?n.value:n.value.handler,a="object"===Object(i["a"])(n.value)&&n.value.closeConditional||r;if(t&&!1!==a(t)&&!("isTrusted"in t&&!t.isTrusted||"pointerType"in t&&!t.pointerType)){var s=("object"===Object(i["a"])(n.value)&&n.value.include||function(){return[]})();s.push(e),!s.some((function(e){return e.contains(t.target)}))&&setTimeout((function(){a(t)&&o&&o(t)}),0)}}var a={inserted:function(t,e){var n=function(n){return o(n,t,e)},i=document.querySelector("[data-app]")||document.body;i.addEventListener("click",n,!0),t._clickOutside=n},unbind:function(t){if(t._clickOutside){var e=document.querySelector("[data-app]")||document.body;e&&e.removeEventListener("click",t._clickOutside,!0),delete t._clickOutside}}};e["a"]=a},a2bf:function(t,e,n){"use strict";var i=n("e8b5"),r=n("50c4"),o=n("0366"),a=function(t,e,n,s,c,l,u,h){var f,d=c,p=0,v=!!u&&o(u,h,3);while(p<s){if(p in n){if(f=v?v(n[p],p,e):n[p],l>0&&i(f))d=a(t,e,f,r(f.length),d,l-1)-1;else{if(d>=9007199254740991)throw TypeError("Exceed the acceptable array length");t[d]=f}d++}p++}return d};t.exports=a},a434:function(t,e,n){"use strict";var i=n("23e7"),r=n("23cb"),o=n("a691"),a=n("50c4"),s=n("7b0b"),c=n("65f0"),l=n("8418"),u=n("1dde"),h=n("ae40"),f=u("splice"),d=h("splice",{ACCESSORS:!0,0:0,1:2}),p=Math.max,v=Math.min,m=9007199254740991,g="Maximum allowed length exceeded";i({target:"Array",proto:!0,forced:!f||!d},{splice:function(t,e){var n,i,u,h,f,d,b=s(this),y=a(b.length),w=r(t,y),x=arguments.length;if(0===x?n=i=0:1===x?(n=0,i=y-w):(n=x-2,i=v(p(o(e),0),y-w)),y+n-i>m)throw TypeError(g);for(u=c(b,i),h=0;h<i;h++)f=w+h,f in b&&l(u,h,b[f]);if(u.length=i,n<i){for(h=w;h<y-i;h++)f=h+i,d=h+n,f in b?b[d]=b[f]:delete b[d];for(h=y;h>y-i+n;h--)delete b[h-1]}else if(n>i)for(h=y-i;h>w;h--)f=h+i-1,d=h+n-1,f in b?b[d]=b[f]:delete b[d];for(h=0;h<n;h++)b[h+w]=arguments[h+2];return b.length=y-i+n,u}})},a452:function(t,e,n){"use strict";var i=n("ade3"),r=n("2b0e");function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"change";return r["a"].extend({name:"proxyable",model:{prop:t,event:e},props:Object(i["a"])({},t,{required:!1}),data:function(){return{internalLazyValue:this[t]}},computed:{internalValue:{get:function(){return this.internalLazyValue},set:function(t){t!==this.internalLazyValue&&(this.internalLazyValue=t,this.$emit(e,t))}}},watch:Object(i["a"])({},t,(function(t){this.internalLazyValue=t}))})}var a=o();e["a"]=a},a4d3:function(t,e,n){"use strict";var i=n("23e7"),r=n("da84"),o=n("d066"),a=n("c430"),s=n("83ab"),c=n("4930"),l=n("fdbf"),u=n("d039"),h=n("5135"),f=n("e8b5"),d=n("861d"),p=n("825a"),v=n("7b0b"),m=n("fc6a"),g=n("c04e"),b=n("5c6c"),y=n("7c73"),w=n("df75"),x=n("241c"),O=n("057f"),_=n("7418"),S=n("06cf"),C=n("9bf2"),k=n("d1e7"),j=n("9112"),A=n("6eeb"),$=n("5692"),E=n("f772"),T=n("d012"),I=n("90e3"),L=n("b622"),M=n("e538"),D=n("746f"),B=n("d44e"),P=n("69f3"),N=n("b727").forEach,V=E("hidden"),R="Symbol",F="prototype",z=L("toPrimitive"),H=P.set,W=P.getterFor(R),U=Object[F],Y=r.Symbol,q=o("JSON","stringify"),X=S.f,G=C.f,K=O.f,Z=k.f,J=$("symbols"),Q=$("op-symbols"),tt=$("string-to-symbol-registry"),et=$("symbol-to-string-registry"),nt=$("wks"),it=r.QObject,rt=!it||!it[F]||!it[F].findChild,ot=s&&u((function(){return 7!=y(G({},"a",{get:function(){return G(this,"a",{value:7}).a}})).a}))?function(t,e,n){var i=X(U,e);i&&delete U[e],G(t,e,n),i&&t!==U&&G(U,e,i)}:G,at=function(t,e){var n=J[t]=y(Y[F]);return H(n,{type:R,tag:t,description:e}),s||(n.description=e),n},st=l?function(t){return"symbol"==typeof t}:function(t){return Object(t)instanceof Y},ct=function(t,e,n){t===U&&ct(Q,e,n),p(t);var i=g(e,!0);return p(n),h(J,i)?(n.enumerable?(h(t,V)&&t[V][i]&&(t[V][i]=!1),n=y(n,{enumerable:b(0,!1)})):(h(t,V)||G(t,V,b(1,{})),t[V][i]=!0),ot(t,i,n)):G(t,i,n)},lt=function(t,e){p(t);var n=m(e),i=w(n).concat(pt(n));return N(i,(function(e){s&&!ht.call(n,e)||ct(t,e,n[e])})),t},ut=function(t,e){return void 0===e?y(t):lt(y(t),e)},ht=function(t){var e=g(t,!0),n=Z.call(this,e);return!(this===U&&h(J,e)&&!h(Q,e))&&(!(n||!h(this,e)||!h(J,e)||h(this,V)&&this[V][e])||n)},ft=function(t,e){var n=m(t),i=g(e,!0);if(n!==U||!h(J,i)||h(Q,i)){var r=X(n,i);return!r||!h(J,i)||h(n,V)&&n[V][i]||(r.enumerable=!0),r}},dt=function(t){var e=K(m(t)),n=[];return N(e,(function(t){h(J,t)||h(T,t)||n.push(t)})),n},pt=function(t){var e=t===U,n=K(e?Q:m(t)),i=[];return N(n,(function(t){!h(J,t)||e&&!h(U,t)||i.push(J[t])})),i};if(c||(Y=function(){if(this instanceof Y)throw TypeError("Symbol is not a constructor");var t=arguments.length&&void 0!==arguments[0]?String(arguments[0]):void 0,e=I(t),n=function(t){this===U&&n.call(Q,t),h(this,V)&&h(this[V],e)&&(this[V][e]=!1),ot(this,e,b(1,t))};return s&&rt&&ot(U,e,{configurable:!0,set:n}),at(e,t)},A(Y[F],"toString",(function(){return W(this).tag})),A(Y,"withoutSetter",(function(t){return at(I(t),t)})),k.f=ht,C.f=ct,S.f=ft,x.f=O.f=dt,_.f=pt,M.f=function(t){return at(L(t),t)},s&&(G(Y[F],"description",{configurable:!0,get:function(){return W(this).description}}),a||A(U,"propertyIsEnumerable",ht,{unsafe:!0}))),i({global:!0,wrap:!0,forced:!c,sham:!c},{Symbol:Y}),N(w(nt),(function(t){D(t)})),i({target:R,stat:!0,forced:!c},{for:function(t){var e=String(t);if(h(tt,e))return tt[e];var n=Y(e);return tt[e]=n,et[n]=e,n},keyFor:function(t){if(!st(t))throw TypeError(t+" is not a symbol");if(h(et,t))return et[t]},useSetter:function(){rt=!0},useSimple:function(){rt=!1}}),i({target:"Object",stat:!0,forced:!c,sham:!s},{create:ut,defineProperty:ct,defineProperties:lt,getOwnPropertyDescriptor:ft}),i({target:"Object",stat:!0,forced:!c},{getOwnPropertyNames:dt,getOwnPropertySymbols:pt}),i({target:"Object",stat:!0,forced:u((function(){_.f(1)}))},{getOwnPropertySymbols:function(t){return _.f(v(t))}}),q){var vt=!c||u((function(){var t=Y();return"[null]"!=q([t])||"{}"!=q({a:t})||"{}"!=q(Object(t))}));i({target:"JSON",stat:!0,forced:vt},{stringify:function(t,e,n){var i,r=[t],o=1;while(arguments.length>o)r.push(arguments[o++]);if(i=e,(d(e)||void 0!==t)&&!st(t))return f(e)||(e=function(t,e){if("function"==typeof i&&(e=i.call(this,t,e)),!st(e))return e}),r[1]=e,q.apply(null,r)}})}Y[F][z]||j(Y[F],z,Y[F].valueOf),B(Y,R),T[V]=!0},a523:function(t,e,n){"use strict";n("99af"),n("4de4"),n("b64b"),n("2ca0"),n("20f6"),n("4b85"),n("a15b"),n("498a");var i=n("2b0e");function r(t){return i["a"].extend({name:"v-".concat(t),functional:!0,props:{id:String,tag:{type:String,default:"div"}},render:function(e,n){var i=n.props,r=n.data,o=n.children;r.staticClass="".concat(t," ").concat(r.staticClass||"").trim();var a=r.attrs;if(a){r.attrs={};var s=Object.keys(a).filter((function(t){if("slot"===t)return!1;var e=a[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}));s.length&&(r.staticClass+=" ".concat(s.join(" ")))}return i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),e(i.tag,r,o)}})}var o=n("d9f7");e["a"]=r("container").extend({name:"v-container",functional:!0,props:{id:String,tag:{type:String,default:"div"},fluid:{type:Boolean,default:!1}},render:function(t,e){var n,i=e.props,r=e.data,a=e.children,s=r.attrs;return s&&(r.attrs={},n=Object.keys(s).filter((function(t){if("slot"===t)return!1;var e=s[t];return t.startsWith("data-")?(r.attrs[t]=e,!1):e||"string"===typeof e}))),i.id&&(r.domProps=r.domProps||{},r.domProps.id=i.id),t(i.tag,Object(o["a"])(r,{staticClass:"container",class:Array({"container--fluid":i.fluid}).concat(n||[])}),a)}})},a623:function(t,e,n){"use strict";var i=n("23e7"),r=n("b727").every,o=n("a640"),a=n("ae40"),s=o("every"),c=a("every");i({target:"Array",proto:!0,forced:!s||!c},{every:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},a630:function(t,e,n){var i=n("23e7"),r=n("4df4"),o=n("1c7e"),a=!o((function(t){Array.from(t)}));i({target:"Array",stat:!0,forced:a},{from:r})},a640:function(t,e,n){"use strict";var i=n("d039");t.exports=function(t,e){var n=[][t];return!!n&&i((function(){n.call(null,e||function(){throw 1},1)}))}},a691:function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},a75b:function(t,e,n){"use strict";n("bd0c");var i=n("d10f"),r=i["a"].extend({name:"v-main",props:{tag:{type:String,default:"main"}},computed:{styles:function(){var t=this.$vuetify.application,e=t.bar,n=t.top,i=t.right,r=t.footer,o=t.insetFooter,a=t.bottom,s=t.left;return{paddingTop:"".concat(n+e,"px"),paddingRight:"".concat(i,"px"),paddingBottom:"".concat(r+o+a,"px"),paddingLeft:"".concat(s,"px")}}},render:function(t){var e={staticClass:"v-main",style:this.styles,ref:"main"};return t(this.tag,e,[t("div",{staticClass:"v-main__wrap"},this.$slots.default)])}}),o=n("d9bd");e["a"]=r.extend({name:"v-main",created:function(){Object(o["d"])("v-content","v-main",this)},render:function(t){var e=r.options.render.call(this,t);return e.data.staticClass+=" v-content",e.children[0].data.staticClass+=" v-content__wrap",t(e.tag,e.data,e.children)}})},a79d:function(t,e,n){"use strict";var i=n("23e7"),r=n("c430"),o=n("fea9"),a=n("d039"),s=n("d066"),c=n("4840"),l=n("cdf9"),u=n("6eeb"),h=!!o&&a((function(){o.prototype["finally"].call({then:function(){}},(function(){}))}));i({target:"Promise",proto:!0,real:!0,forced:h},{finally:function(t){var e=c(this,s("Promise")),n="function"==typeof t;return this.then(n?function(n){return l(e,t()).then((function(){return n}))}:t,n?function(n){return l(e,t()).then((function(){throw n}))}:t)}}),r||"function"!=typeof o||o.prototype["finally"]||u(o.prototype,"finally",s("Promise").prototype["finally"])},a9ad:function(t,e,n){"use strict";n("d3b7"),n("ac1f"),n("25f0"),n("1276"),n("498a");var i=n("3835"),r=n("ade3"),o=n("5530"),a=n("2b0e"),s=n("d9bd"),c=n("7bc6");e["a"]=a["a"].extend({name:"colorable",props:{color:String},methods:{setBackgroundColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"string"===typeof e.style?(Object(s["b"])("style must be an object",this),e):"string"===typeof e.class?(Object(s["b"])("class must be an object",this),e):(Object(c["d"])(t)?e.style=Object(o["a"])(Object(o["a"])({},e.style),{},{"background-color":"".concat(t),"border-color":"".concat(t)}):t&&(e.class=Object(o["a"])(Object(o["a"])({},e.class),{},Object(r["a"])({},t,!0))),e)},setTextColor:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"===typeof e.style)return Object(s["b"])("style must be an object",this),e;if("string"===typeof e.class)return Object(s["b"])("class must be an object",this),e;if(Object(c["d"])(t))e.style=Object(o["a"])(Object(o["a"])({},e.style),{},{color:"".concat(t),"caret-color":"".concat(t)});else if(t){var n=t.toString().trim().split(" ",2),a=Object(i["a"])(n,2),l=a[0],u=a[1];e.class=Object(o["a"])(Object(o["a"])({},e.class),{},Object(r["a"])({},l+"--text",!0)),u&&(e.class["text--"+u]=!0)}return e}}})},a9e3:function(t,e,n){"use strict";var i=n("83ab"),r=n("da84"),o=n("94ca"),a=n("6eeb"),s=n("5135"),c=n("c6b6"),l=n("7156"),u=n("c04e"),h=n("d039"),f=n("7c73"),d=n("241c").f,p=n("06cf").f,v=n("9bf2").f,m=n("58a8").trim,g="Number",b=r[g],y=b.prototype,w=c(f(y))==g,x=function(t){var e,n,i,r,o,a,s,c,l=u(t,!1);if("string"==typeof l&&l.length>2)if(l=m(l),e=l.charCodeAt(0),43===e||45===e){if(n=l.charCodeAt(2),88===n||120===n)return NaN}else if(48===e){switch(l.charCodeAt(1)){case 66:case 98:i=2,r=49;break;case 79:case 111:i=8,r=55;break;default:return+l}for(o=l.slice(2),a=o.length,s=0;s<a;s++)if(c=o.charCodeAt(s),c<48||c>r)return NaN;return parseInt(o,i)}return+l};if(o(g,!b(" 0o1")||!b("0b1")||b("+0x1"))){for(var O,_=function(t){var e=arguments.length<1?0:t,n=this;return n instanceof _&&(w?h((function(){y.valueOf.call(n)})):c(n)!=g)?l(new b(x(e)),n,_):x(e)},S=i?d(b):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),C=0;S.length>C;C++)s(b,O=S[C])&&!s(_,O)&&v(_,O,p(b,O));_.prototype=y,y.constructor=_,a(r,g,_)}},aa47:function(t,e,n){"use strict";
+/**!
+ * Sortable 1.10.2
+ * @author	RubaXa   <trash@rubaxa.org>
+ * @author	owenm    <owen23355@gmail.com>
+ * @license MIT
+ */
+function i(t){return i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(){return o=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},o.apply(this,arguments)}function a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},i=Object.keys(n);"function"===typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable})))),i.forEach((function(e){r(t,e,n[e])}))}return t}function s(t,e){if(null==t)return{};var n,i,r={},o=Object.keys(t);for(i=0;i<o.length;i++)n=o[i],e.indexOf(n)>=0||(r[n]=t[n]);return r}function c(t,e){if(null==t)return{};var n,i,r=s(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i<o.length;i++)n=o[i],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function l(t){return u(t)||h(t)||f()}function u(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}function h(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)}function f(){throw new TypeError("Invalid attempt to spread non-iterable instance")}n.r(e),n.d(e,"MultiDrag",(function(){return Ne})),n.d(e,"Sortable",(function(){return Jt})),n.d(e,"Swap",(function(){return ke}));var d="1.10.2";function p(t){if("undefined"!==typeof window&&window.navigator)return!!navigator.userAgent.match(t)}var v=p(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),m=p(/Edge/i),g=p(/firefox/i),b=p(/safari/i)&&!p(/chrome/i)&&!p(/android/i),y=p(/iP(ad|od|hone)/i),w=p(/chrome/i)&&p(/android/i),x={capture:!1,passive:!1};function O(t,e,n){t.addEventListener(e,n,!v&&x)}function _(t,e,n){t.removeEventListener(e,n,!v&&x)}function S(t,e){if(e){if(">"===e[0]&&(e=e.substring(1)),t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(n){return!1}return!1}}function C(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function k(t,e,n,i){if(t){n=n||document;do{if(null!=e&&(">"===e[0]?t.parentNode===n&&S(t,e):S(t,e))||i&&t===n)return t;if(t===n)break}while(t=C(t))}return null}var j,A=/\s+/g;function $(t,e,n){if(t&&e)if(t.classList)t.classList[n?"add":"remove"](e);else{var i=(" "+t.className+" ").replace(A," ").replace(" "+e+" "," ");t.className=(i+(n?" "+e:"")).replace(A," ")}}function E(t,e,n){var i=t&&t.style;if(i){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];e in i||-1!==e.indexOf("webkit")||(e="-webkit-"+e),i[e]=n+("string"===typeof n?"":"px")}}function T(t,e){var n="";if("string"===typeof t)n=t;else do{var i=E(t,"transform");i&&"none"!==i&&(n=i+" "+n)}while(!e&&(t=t.parentNode));var r=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return r&&new r(n)}function I(t,e,n){if(t){var i=t.getElementsByTagName(e),r=0,o=i.length;if(n)for(;r<o;r++)n(i[r],r);return i}return[]}function L(){var t=document.scrollingElement;return t||document.documentElement}function M(t,e,n,i,r){if(t.getBoundingClientRect||t===window){var o,a,s,c,l,u,h;if(t!==window&&t!==L()?(o=t.getBoundingClientRect(),a=o.top,s=o.left,c=o.bottom,l=o.right,u=o.height,h=o.width):(a=0,s=0,c=window.innerHeight,l=window.innerWidth,u=window.innerHeight,h=window.innerWidth),(e||n)&&t!==window&&(r=r||t.parentNode,!v))do{if(r&&r.getBoundingClientRect&&("none"!==E(r,"transform")||n&&"static"!==E(r,"position"))){var f=r.getBoundingClientRect();a-=f.top+parseInt(E(r,"border-top-width")),s-=f.left+parseInt(E(r,"border-left-width")),c=a+o.height,l=s+o.width;break}}while(r=r.parentNode);if(i&&t!==window){var d=T(r||t),p=d&&d.a,m=d&&d.d;d&&(a/=m,s/=p,h/=p,u/=m,c=a+u,l=s+h)}return{top:a,left:s,bottom:c,right:l,width:h,height:u}}}function D(t,e,n){var i=F(t,!0),r=M(t)[e];while(i){var o=M(i)[n],a=void 0;if(a="top"===n||"left"===n?r>=o:r<=o,!a)return i;if(i===L())break;i=F(i,!1)}return!1}function B(t,e,n){var i=0,r=0,o=t.children;while(r<o.length){if("none"!==o[r].style.display&&o[r]!==Jt.ghost&&o[r]!==Jt.dragged&&k(o[r],n.draggable,t,!1)){if(i===e)return o[r];i++}r++}return null}function P(t,e){var n=t.lastElementChild;while(n&&(n===Jt.ghost||"none"===E(n,"display")||e&&!S(n,e)))n=n.previousElementSibling;return n||null}function N(t,e){var n=0;if(!t||!t.parentNode)return-1;while(t=t.previousElementSibling)"TEMPLATE"===t.nodeName.toUpperCase()||t===Jt.clone||e&&!S(t,e)||n++;return n}function V(t){var e=0,n=0,i=L();if(t)do{var r=T(t),o=r.a,a=r.d;e+=t.scrollLeft*o,n+=t.scrollTop*a}while(t!==i&&(t=t.parentNode));return[e,n]}function R(t,e){for(var n in t)if(t.hasOwnProperty(n))for(var i in e)if(e.hasOwnProperty(i)&&e[i]===t[n][i])return Number(n);return-1}function F(t,e){if(!t||!t.getBoundingClientRect)return L();var n=t,i=!1;do{if(n.clientWidth<n.scrollWidth||n.clientHeight<n.scrollHeight){var r=E(n);if(n.clientWidth<n.scrollWidth&&("auto"==r.overflowX||"scroll"==r.overflowX)||n.clientHeight<n.scrollHeight&&("auto"==r.overflowY||"scroll"==r.overflowY)){if(!n.getBoundingClientRect||n===document.body)return L();if(i||e)return n;i=!0}}}while(n=n.parentNode);return L()}function z(t,e){if(t&&e)for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function H(t,e){return Math.round(t.top)===Math.round(e.top)&&Math.round(t.left)===Math.round(e.left)&&Math.round(t.height)===Math.round(e.height)&&Math.round(t.width)===Math.round(e.width)}function W(t,e){return function(){if(!j){var n=arguments,i=this;1===n.length?t.call(i,n[0]):t.apply(i,n),j=setTimeout((function(){j=void 0}),e)}}}function U(){clearTimeout(j),j=void 0}function Y(t,e,n){t.scrollLeft+=e,t.scrollTop+=n}function q(t){var e=window.Polymer,n=window.jQuery||window.Zepto;return e&&e.dom?e.dom(t).cloneNode(!0):n?n(t).clone(!0)[0]:t.cloneNode(!0)}function X(t,e){E(t,"position","absolute"),E(t,"top",e.top),E(t,"left",e.left),E(t,"width",e.width),E(t,"height",e.height)}function G(t){E(t,"position",""),E(t,"top",""),E(t,"left",""),E(t,"width",""),E(t,"height","")}var K="Sortable"+(new Date).getTime();function Z(){var t,e=[];return{captureAnimationState:function(){if(e=[],this.options.animation){var t=[].slice.call(this.el.children);t.forEach((function(t){if("none"!==E(t,"display")&&t!==Jt.ghost){e.push({target:t,rect:M(t)});var n=a({},e[e.length-1].rect);if(t.thisAnimationDuration){var i=T(t,!0);i&&(n.top-=i.f,n.left-=i.e)}t.fromRect=n}}))}},addAnimationState:function(t){e.push(t)},removeAnimationState:function(t){e.splice(R(e,{target:t}),1)},animateAll:function(n){var i=this;if(!this.options.animation)return clearTimeout(t),void("function"===typeof n&&n());var r=!1,o=0;e.forEach((function(t){var e=0,n=t.target,a=n.fromRect,s=M(n),c=n.prevFromRect,l=n.prevToRect,u=t.rect,h=T(n,!0);h&&(s.top-=h.f,s.left-=h.e),n.toRect=s,n.thisAnimationDuration&&H(c,s)&&!H(a,s)&&(u.top-s.top)/(u.left-s.left)===(a.top-s.top)/(a.left-s.left)&&(e=Q(u,c,l,i.options)),H(s,a)||(n.prevFromRect=a,n.prevToRect=s,e||(e=i.options.animation),i.animate(n,u,s,e)),e&&(r=!0,o=Math.max(o,e),clearTimeout(n.animationResetTimer),n.animationResetTimer=setTimeout((function(){n.animationTime=0,n.prevFromRect=null,n.fromRect=null,n.prevToRect=null,n.thisAnimationDuration=null}),e),n.thisAnimationDuration=e)})),clearTimeout(t),r?t=setTimeout((function(){"function"===typeof n&&n()}),o):"function"===typeof n&&n(),e=[]},animate:function(t,e,n,i){if(i){E(t,"transition",""),E(t,"transform","");var r=T(this.el),o=r&&r.a,a=r&&r.d,s=(e.left-n.left)/(o||1),c=(e.top-n.top)/(a||1);t.animatingX=!!s,t.animatingY=!!c,E(t,"transform","translate3d("+s+"px,"+c+"px,0)"),J(t),E(t,"transition","transform "+i+"ms"+(this.options.easing?" "+this.options.easing:"")),E(t,"transform","translate3d(0,0,0)"),"number"===typeof t.animated&&clearTimeout(t.animated),t.animated=setTimeout((function(){E(t,"transition",""),E(t,"transform",""),t.animated=!1,t.animatingX=!1,t.animatingY=!1}),i)}}}}function J(t){return t.offsetWidth}function Q(t,e,n,i){return Math.sqrt(Math.pow(e.top-t.top,2)+Math.pow(e.left-t.left,2))/Math.sqrt(Math.pow(e.top-n.top,2)+Math.pow(e.left-n.left,2))*i.animation}var tt=[],et={initializeByDefault:!0},nt={mount:function(t){for(var e in et)et.hasOwnProperty(e)&&!(e in t)&&(t[e]=et[e]);tt.push(t)},pluginEvent:function(t,e,n){var i=this;this.eventCanceled=!1,n.cancel=function(){i.eventCanceled=!0};var r=t+"Global";tt.forEach((function(i){e[i.pluginName]&&(e[i.pluginName][r]&&e[i.pluginName][r](a({sortable:e},n)),e.options[i.pluginName]&&e[i.pluginName][t]&&e[i.pluginName][t](a({sortable:e},n)))}))},initializePlugins:function(t,e,n,i){for(var r in tt.forEach((function(i){var r=i.pluginName;if(t.options[r]||i.initializeByDefault){var a=new i(t,e,t.options);a.sortable=t,a.options=t.options,t[r]=a,o(n,a.defaults)}})),t.options)if(t.options.hasOwnProperty(r)){var a=this.modifyOption(t,r,t.options[r]);"undefined"!==typeof a&&(t.options[r]=a)}},getEventProperties:function(t,e){var n={};return tt.forEach((function(i){"function"===typeof i.eventProperties&&o(n,i.eventProperties.call(e[i.pluginName],t))})),n},modifyOption:function(t,e,n){var i;return tt.forEach((function(r){t[r.pluginName]&&r.optionListeners&&"function"===typeof r.optionListeners[e]&&(i=r.optionListeners[e].call(t[r.pluginName],n))})),i}};function it(t){var e=t.sortable,n=t.rootEl,i=t.name,r=t.targetEl,o=t.cloneEl,s=t.toEl,c=t.fromEl,l=t.oldIndex,u=t.newIndex,h=t.oldDraggableIndex,f=t.newDraggableIndex,d=t.originalEvent,p=t.putSortable,g=t.extraEventProperties;if(e=e||n&&n[K],e){var b,y=e.options,w="on"+i.charAt(0).toUpperCase()+i.substr(1);!window.CustomEvent||v||m?(b=document.createEvent("Event"),b.initEvent(i,!0,!0)):b=new CustomEvent(i,{bubbles:!0,cancelable:!0}),b.to=s||n,b.from=c||n,b.item=r||n,b.clone=o,b.oldIndex=l,b.newIndex=u,b.oldDraggableIndex=h,b.newDraggableIndex=f,b.originalEvent=d,b.pullMode=p?p.lastPutMode:void 0;var x=a({},g,nt.getEventProperties(i,e));for(var O in x)b[O]=x[O];n&&n.dispatchEvent(b),y[w]&&y[w].call(e,b)}}var rt=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=n.evt,r=c(n,["evt"]);nt.pluginEvent.bind(Jt)(t,e,a({dragEl:at,parentEl:st,ghostEl:ct,rootEl:lt,nextEl:ut,lastDownEl:ht,cloneEl:ft,cloneHidden:dt,dragStarted:kt,putSortable:yt,activeSortable:Jt.active,originalEvent:i,oldIndex:pt,oldDraggableIndex:mt,newIndex:vt,newDraggableIndex:gt,hideGhostForTarget:Xt,unhideGhostForTarget:Gt,cloneNowHidden:function(){dt=!0},cloneNowShown:function(){dt=!1},dispatchSortableEvent:function(t){ot({sortable:e,name:t,originalEvent:i})}},r))};function ot(t){it(a({putSortable:yt,cloneEl:ft,targetEl:at,rootEl:lt,oldIndex:pt,oldDraggableIndex:mt,newIndex:vt,newDraggableIndex:gt},t))}var at,st,ct,lt,ut,ht,ft,dt,pt,vt,mt,gt,bt,yt,wt,xt,Ot,_t,St,Ct,kt,jt,At,$t,Et,Tt=!1,It=!1,Lt=[],Mt=!1,Dt=!1,Bt=[],Pt=!1,Nt=[],Vt="undefined"!==typeof document,Rt=y,Ft=m||v?"cssFloat":"float",zt=Vt&&!w&&!y&&"draggable"in document.createElement("div"),Ht=function(){if(Vt){if(v)return!1;var t=document.createElement("x");return t.style.cssText="pointer-events:auto","auto"===t.style.pointerEvents}}(),Wt=function(t,e){var n=E(t),i=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),r=B(t,0,e),o=B(t,1,e),a=r&&E(r),s=o&&E(o),c=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+M(r).width,l=s&&parseInt(s.marginLeft)+parseInt(s.marginRight)+M(o).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(r&&a["float"]&&"none"!==a["float"]){var u="left"===a["float"]?"left":"right";return!o||"both"!==s.clear&&s.clear!==u?"horizontal":"vertical"}return r&&("block"===a.display||"flex"===a.display||"table"===a.display||"grid"===a.display||c>=i&&"none"===n[Ft]||o&&"none"===n[Ft]&&c+l>i)?"vertical":"horizontal"},Ut=function(t,e,n){var i=n?t.left:t.top,r=n?t.right:t.bottom,o=n?t.width:t.height,a=n?e.left:e.top,s=n?e.right:e.bottom,c=n?e.width:e.height;return i===a||r===s||i+o/2===a+c/2},Yt=function(t,e){var n;return Lt.some((function(i){if(!P(i)){var r=M(i),o=i[K].options.emptyInsertThreshold,a=t>=r.left-o&&t<=r.right+o,s=e>=r.top-o&&e<=r.bottom+o;return o&&a&&s?n=i:void 0}})),n},qt=function(t){function e(t,n){return function(i,r,o,a){var s=i.options.group.name&&r.options.group.name&&i.options.group.name===r.options.group.name;if(null==t&&(n||s))return!0;if(null==t||!1===t)return!1;if(n&&"clone"===t)return t;if("function"===typeof t)return e(t(i,r,o,a),n)(i,r,o,a);var c=(n?i:r).options.group.name;return!0===t||"string"===typeof t&&t===c||t.join&&t.indexOf(c)>-1}}var n={},r=t.group;r&&"object"==i(r)||(r={name:r}),n.name=r.name,n.checkPull=e(r.pull,!0),n.checkPut=e(r.put),n.revertClone=r.revertClone,t.group=n},Xt=function(){!Ht&&ct&&E(ct,"display","none")},Gt=function(){!Ht&&ct&&E(ct,"display","")};Vt&&document.addEventListener("click",(function(t){if(It)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),It=!1,!1}),!0);var Kt=function(t){if(at){t=t.touches?t.touches[0]:t;var e=Yt(t.clientX,t.clientY);if(e){var n={};for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);n.target=n.rootEl=e,n.preventDefault=void 0,n.stopPropagation=void 0,e[K]._onDragOver(n)}}},Zt=function(t){at&&at.parentNode[K]._isOutsideThisEl(t.target)};function Jt(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=o({},e),t[K]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Wt(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Jt.supportPointer&&"PointerEvent"in window,emptyInsertThreshold:5};for(var i in nt.initializePlugins(this,t,n),n)!(i in e)&&(e[i]=n[i]);for(var r in qt(e),this)"_"===r.charAt(0)&&"function"===typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!e.forceFallback&&zt,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?O(t,"pointerdown",this._onTapStart):(O(t,"mousedown",this._onTapStart),O(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(O(t,"dragover",this),O(t,"dragenter",this)),Lt.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),o(this,Z())}function Qt(t){t.dataTransfer&&(t.dataTransfer.dropEffect="move"),t.cancelable&&t.preventDefault()}function te(t,e,n,i,r,o,a,s){var c,l,u=t[K],h=u.options.onMove;return!window.CustomEvent||v||m?(c=document.createEvent("Event"),c.initEvent("move",!0,!0)):c=new CustomEvent("move",{bubbles:!0,cancelable:!0}),c.to=e,c.from=t,c.dragged=n,c.draggedRect=i,c.related=r||e,c.relatedRect=o||M(e),c.willInsertAfter=s,c.originalEvent=a,t.dispatchEvent(c),h&&(l=h.call(u,c,a)),l}function ee(t){t.draggable=!1}function ne(){Pt=!1}function ie(t,e,n){var i=M(P(n.el,n.options.draggable)),r=10;return e?t.clientX>i.right+r||t.clientX<=i.right&&t.clientY>i.bottom&&t.clientX>=i.left:t.clientX>i.right&&t.clientY>i.top||t.clientX<=i.right&&t.clientY>i.bottom+r}function re(t,e,n,i,r,o,a,s){var c=i?t.clientY:t.clientX,l=i?n.height:n.width,u=i?n.top:n.left,h=i?n.bottom:n.right,f=!1;if(!a)if(s&&$t<l*r){if(!Mt&&(1===At?c>u+l*o/2:c<h-l*o/2)&&(Mt=!0),Mt)f=!0;else if(1===At?c<u+$t:c>h-$t)return-At}else if(c>u+l*(1-r)/2&&c<h-l*(1-r)/2)return oe(e);return f=f||a,f&&(c<u+l*o/2||c>h-l*o/2)?c>u+l/2?1:-1:0}function oe(t){return N(at)<N(t)?1:-1}function ae(t){var e=t.tagName+t.className+t.src+t.href+t.textContent,n=e.length,i=0;while(n--)i+=e.charCodeAt(n);return i.toString(36)}function se(t){Nt.length=0;var e=t.getElementsByTagName("input"),n=e.length;while(n--){var i=e[n];i.checked&&Nt.push(i)}}function ce(t){return setTimeout(t,0)}function le(t){return clearTimeout(t)}Jt.prototype={constructor:Jt,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(jt=null)},_getDirection:function(t,e){return"function"===typeof this.options.direction?this.options.direction.call(this,t,e,at):this.options.direction},_onTapStart:function(t){if(t.cancelable){var e=this,n=this.el,i=this.options,r=i.preventOnFilter,o=t.type,a=t.touches&&t.touches[0]||t.pointerType&&"touch"===t.pointerType&&t,s=(a||t).target,c=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||s,l=i.filter;if(se(n),!at&&!(/mousedown|pointerdown/.test(o)&&0!==t.button||i.disabled)&&!c.isContentEditable&&(s=k(s,i.draggable,n,!1),(!s||!s.animated)&&ht!==s)){if(pt=N(s),mt=N(s,i.draggable),"function"===typeof l){if(l.call(this,t,s,this))return ot({sortable:e,rootEl:c,name:"filter",targetEl:s,toEl:n,fromEl:n}),rt("filter",e,{evt:t}),void(r&&t.cancelable&&t.preventDefault())}else if(l&&(l=l.split(",").some((function(i){if(i=k(c,i.trim(),n,!1),i)return ot({sortable:e,rootEl:i,name:"filter",targetEl:s,fromEl:n,toEl:n}),rt("filter",e,{evt:t}),!0})),l))return void(r&&t.cancelable&&t.preventDefault());i.handle&&!k(c,i.handle,n,!1)||this._prepareDragStart(t,a,s)}}},_prepareDragStart:function(t,e,n){var i,r=this,o=r.el,a=r.options,s=o.ownerDocument;if(n&&!at&&n.parentNode===o){var c=M(n);if(lt=o,at=n,st=at.parentNode,ut=at.nextSibling,ht=n,bt=a.group,Jt.dragged=at,wt={target:at,clientX:(e||t).clientX,clientY:(e||t).clientY},St=wt.clientX-c.left,Ct=wt.clientY-c.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,at.style["will-change"]="all",i=function(){rt("delayEnded",r,{evt:t}),Jt.eventCanceled?r._onDrop():(r._disableDelayedDragEvents(),!g&&r.nativeDraggable&&(at.draggable=!0),r._triggerDragStart(t,e),ot({sortable:r,name:"choose",originalEvent:t}),$(at,a.chosenClass,!0))},a.ignore.split(",").forEach((function(t){I(at,t.trim(),ee)})),O(s,"dragover",Kt),O(s,"mousemove",Kt),O(s,"touchmove",Kt),O(s,"mouseup",r._onDrop),O(s,"touchend",r._onDrop),O(s,"touchcancel",r._onDrop),g&&this.nativeDraggable&&(this.options.touchStartThreshold=4,at.draggable=!0),rt("delayStart",this,{evt:t}),!a.delay||a.delayOnTouchOnly&&!e||this.nativeDraggable&&(m||v))i();else{if(Jt.eventCanceled)return void this._onDrop();O(s,"mouseup",r._disableDelayedDrag),O(s,"touchend",r._disableDelayedDrag),O(s,"touchcancel",r._disableDelayedDrag),O(s,"mousemove",r._delayedDragTouchMoveHandler),O(s,"touchmove",r._delayedDragTouchMoveHandler),a.supportPointer&&O(s,"pointermove",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(i,a.delay)}}},_delayedDragTouchMoveHandler:function(t){var e=t.touches?t.touches[0]:t;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){at&&ee(at),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;_(t,"mouseup",this._disableDelayedDrag),_(t,"touchend",this._disableDelayedDrag),_(t,"touchcancel",this._disableDelayedDrag),_(t,"mousemove",this._delayedDragTouchMoveHandler),_(t,"touchmove",this._delayedDragTouchMoveHandler),_(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?O(document,"pointermove",this._onTouchMove):O(document,e?"touchmove":"mousemove",this._onTouchMove):(O(at,"dragend",this),O(lt,"dragstart",this._onDragStart));try{document.selection?ce((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(n){}},_dragStarted:function(t,e){if(Tt=!1,lt&&at){rt("dragStarted",this,{evt:e}),this.nativeDraggable&&O(document,"dragover",Zt);var n=this.options;!t&&$(at,n.dragClass,!1),$(at,n.ghostClass,!0),Jt.active=this,t&&this._appendGhost(),ot({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(xt){this._lastX=xt.clientX,this._lastY=xt.clientY,Xt();var t=document.elementFromPoint(xt.clientX,xt.clientY),e=t;while(t&&t.shadowRoot){if(t=t.shadowRoot.elementFromPoint(xt.clientX,xt.clientY),t===e)break;e=t}if(at.parentNode[K]._isOutsideThisEl(t),e)do{if(e[K]){var n=void 0;if(n=e[K]._onDragOver({clientX:xt.clientX,clientY:xt.clientY,target:t,rootEl:e}),n&&!this.options.dragoverBubble)break}t=e}while(e=e.parentNode);Gt()}},_onTouchMove:function(t){if(wt){var e=this.options,n=e.fallbackTolerance,i=e.fallbackOffset,r=t.touches?t.touches[0]:t,o=ct&&T(ct,!0),a=ct&&o&&o.a,s=ct&&o&&o.d,c=Rt&&Et&&V(Et),l=(r.clientX-wt.clientX+i.x)/(a||1)+(c?c[0]-Bt[0]:0)/(a||1),u=(r.clientY-wt.clientY+i.y)/(s||1)+(c?c[1]-Bt[1]:0)/(s||1);if(!Jt.active&&!Tt){if(n&&Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))<n)return;this._onDragStart(t,!0)}if(ct){o?(o.e+=l-(Ot||0),o.f+=u-(_t||0)):o={a:1,b:0,c:0,d:1,e:l,f:u};var h="matrix(".concat(o.a,",").concat(o.b,",").concat(o.c,",").concat(o.d,",").concat(o.e,",").concat(o.f,")");E(ct,"webkitTransform",h),E(ct,"mozTransform",h),E(ct,"msTransform",h),E(ct,"transform",h),Ot=l,_t=u,xt=r}t.cancelable&&t.preventDefault()}},_appendGhost:function(){if(!ct){var t=this.options.fallbackOnBody?document.body:lt,e=M(at,!0,Rt,!0,t),n=this.options;if(Rt){Et=t;while("static"===E(Et,"position")&&"none"===E(Et,"transform")&&Et!==document)Et=Et.parentNode;Et!==document.body&&Et!==document.documentElement?(Et===document&&(Et=L()),e.top+=Et.scrollTop,e.left+=Et.scrollLeft):Et=L(),Bt=V(Et)}ct=at.cloneNode(!0),$(ct,n.ghostClass,!1),$(ct,n.fallbackClass,!0),$(ct,n.dragClass,!0),E(ct,"transition",""),E(ct,"transform",""),E(ct,"box-sizing","border-box"),E(ct,"margin",0),E(ct,"top",e.top),E(ct,"left",e.left),E(ct,"width",e.width),E(ct,"height",e.height),E(ct,"opacity","0.8"),E(ct,"position",Rt?"absolute":"fixed"),E(ct,"zIndex","100000"),E(ct,"pointerEvents","none"),Jt.ghost=ct,t.appendChild(ct),E(ct,"transform-origin",St/parseInt(ct.style.width)*100+"% "+Ct/parseInt(ct.style.height)*100+"%")}},_onDragStart:function(t,e){var n=this,i=t.dataTransfer,r=n.options;rt("dragStart",this,{evt:t}),Jt.eventCanceled?this._onDrop():(rt("setupClone",this),Jt.eventCanceled||(ft=q(at),ft.draggable=!1,ft.style["will-change"]="",this._hideClone(),$(ft,this.options.chosenClass,!1),Jt.clone=ft),n.cloneId=ce((function(){rt("clone",n),Jt.eventCanceled||(n.options.removeCloneOnHide||lt.insertBefore(ft,at),n._hideClone(),ot({sortable:n,name:"clone"}))})),!e&&$(at,r.dragClass,!0),e?(It=!0,n._loopId=setInterval(n._emulateDragOver,50)):(_(document,"mouseup",n._onDrop),_(document,"touchend",n._onDrop),_(document,"touchcancel",n._onDrop),i&&(i.effectAllowed="move",r.setData&&r.setData.call(n,i,at)),O(document,"drop",n),E(at,"transform","translateZ(0)")),Tt=!0,n._dragStartId=ce(n._dragStarted.bind(n,e,t)),O(document,"selectstart",n),kt=!0,b&&E(document.body,"user-select","none"))},_onDragOver:function(t){var e,n,i,r,o=this.el,s=t.target,c=this.options,l=c.group,u=Jt.active,h=bt===l,f=c.sort,d=yt||u,p=this,v=!1;if(!Pt){if(void 0!==t.preventDefault&&t.cancelable&&t.preventDefault(),s=k(s,c.draggable,o,!0),I("dragOver"),Jt.eventCanceled)return v;if(at.contains(t.target)||s.animated&&s.animatingX&&s.animatingY||p._ignoreWhileAnimating===s)return B(!1);if(It=!1,u&&!c.disabled&&(h?f||(i=!lt.contains(at)):yt===this||(this.lastPutMode=bt.checkPull(this,u,at,t))&&l.checkPut(this,u,at,t))){if(r="vertical"===this._getDirection(t,s),e=M(at),I("dragOverValid"),Jt.eventCanceled)return v;if(i)return st=lt,L(),this._hideClone(),I("revert"),Jt.eventCanceled||(ut?lt.insertBefore(at,ut):lt.appendChild(at)),B(!0);var m=P(o,c.draggable);if(!m||ie(t,r,this)&&!m.animated){if(m===at)return B(!1);if(m&&o===t.target&&(s=m),s&&(n=M(s)),!1!==te(lt,o,at,e,s,n,t,!!s))return L(),o.appendChild(at),st=o,V(),B(!0)}else if(s.parentNode===o){n=M(s);var g,b,y=0,w=at.parentNode!==o,x=!Ut(at.animated&&at.toRect||e,s.animated&&s.toRect||n,r),O=r?"top":"left",_=D(s,"top","top")||D(at,"top","top"),S=_?_.scrollTop:void 0;if(jt!==s&&(g=n[O],Mt=!1,Dt=!x&&c.invertSwap||w),y=re(t,s,n,r,x?1:c.swapThreshold,null==c.invertedSwapThreshold?c.swapThreshold:c.invertedSwapThreshold,Dt,jt===s),0!==y){var C=N(at);do{C-=y,b=st.children[C]}while(b&&("none"===E(b,"display")||b===ct))}if(0===y||b===s)return B(!1);jt=s,At=y;var j=s.nextElementSibling,A=!1;A=1===y;var T=te(lt,o,at,e,s,n,t,A);if(!1!==T)return 1!==T&&-1!==T||(A=1===T),Pt=!0,setTimeout(ne,30),L(),A&&!j?o.appendChild(at):s.parentNode.insertBefore(at,A?j:s),_&&Y(_,0,S-_.scrollTop),st=at.parentNode,void 0===g||Dt||($t=Math.abs(g-M(s)[O])),V(),B(!0)}if(o.contains(at))return B(!1)}return!1}function I(c,l){rt(c,p,a({evt:t,isOwner:h,axis:r?"vertical":"horizontal",revert:i,dragRect:e,targetRect:n,canSort:f,fromSortable:d,target:s,completed:B,onMove:function(n,i){return te(lt,o,at,e,n,M(n),t,i)},changed:V},l))}function L(){I("dragOverAnimationCapture"),p.captureAnimationState(),p!==d&&d.captureAnimationState()}function B(e){return I("dragOverCompleted",{insertion:e}),e&&(h?u._hideClone():u._showClone(p),p!==d&&($(at,yt?yt.options.ghostClass:u.options.ghostClass,!1),$(at,c.ghostClass,!0)),yt!==p&&p!==Jt.active?yt=p:p===Jt.active&&yt&&(yt=null),d===p&&(p._ignoreWhileAnimating=s),p.animateAll((function(){I("dragOverAnimationComplete"),p._ignoreWhileAnimating=null})),p!==d&&(d.animateAll(),d._ignoreWhileAnimating=null)),(s===at&&!at.animated||s===o&&!s.animated)&&(jt=null),c.dragoverBubble||t.rootEl||s===document||(at.parentNode[K]._isOutsideThisEl(t.target),!e&&Kt(t)),!c.dragoverBubble&&t.stopPropagation&&t.stopPropagation(),v=!0}function V(){vt=N(at),gt=N(at,c.draggable),ot({sortable:p,name:"change",toEl:o,newIndex:vt,newDraggableIndex:gt,originalEvent:t})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){_(document,"mousemove",this._onTouchMove),_(document,"touchmove",this._onTouchMove),_(document,"pointermove",this._onTouchMove),_(document,"dragover",Kt),_(document,"mousemove",Kt),_(document,"touchmove",Kt)},_offUpEvents:function(){var t=this.el.ownerDocument;_(t,"mouseup",this._onDrop),_(t,"touchend",this._onDrop),_(t,"pointerup",this._onDrop),_(t,"touchcancel",this._onDrop),_(document,"selectstart",this)},_onDrop:function(t){var e=this.el,n=this.options;vt=N(at),gt=N(at,n.draggable),rt("drop",this,{evt:t}),st=at&&at.parentNode,vt=N(at),gt=N(at,n.draggable),Jt.eventCanceled||(Tt=!1,Dt=!1,Mt=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),le(this.cloneId),le(this._dragStartId),this.nativeDraggable&&(_(document,"drop",this),_(e,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),b&&E(document.body,"user-select",""),E(at,"transform",""),t&&(kt&&(t.cancelable&&t.preventDefault(),!n.dropBubble&&t.stopPropagation()),ct&&ct.parentNode&&ct.parentNode.removeChild(ct),(lt===st||yt&&"clone"!==yt.lastPutMode)&&ft&&ft.parentNode&&ft.parentNode.removeChild(ft),at&&(this.nativeDraggable&&_(at,"dragend",this),ee(at),at.style["will-change"]="",kt&&!Tt&&$(at,yt?yt.options.ghostClass:this.options.ghostClass,!1),$(at,this.options.chosenClass,!1),ot({sortable:this,name:"unchoose",toEl:st,newIndex:null,newDraggableIndex:null,originalEvent:t}),lt!==st?(vt>=0&&(ot({rootEl:st,name:"add",toEl:st,fromEl:lt,originalEvent:t}),ot({sortable:this,name:"remove",toEl:st,originalEvent:t}),ot({rootEl:st,name:"sort",toEl:st,fromEl:lt,originalEvent:t}),ot({sortable:this,name:"sort",toEl:st,originalEvent:t})),yt&&yt.save()):vt!==pt&&vt>=0&&(ot({sortable:this,name:"update",toEl:st,originalEvent:t}),ot({sortable:this,name:"sort",toEl:st,originalEvent:t})),Jt.active&&(null!=vt&&-1!==vt||(vt=pt,gt=mt),ot({sortable:this,name:"end",toEl:st,originalEvent:t}),this.save())))),this._nulling()},_nulling:function(){rt("nulling",this),lt=at=st=ct=ut=ft=ht=dt=wt=xt=kt=vt=gt=pt=mt=jt=At=yt=bt=Jt.dragged=Jt.ghost=Jt.clone=Jt.active=null,Nt.forEach((function(t){t.checked=!0})),Nt.length=Ot=_t=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":at&&(this._onDragOver(t),Qt(t));break;case"selectstart":t.preventDefault();break}},toArray:function(){for(var t,e=[],n=this.el.children,i=0,r=n.length,o=this.options;i<r;i++)t=n[i],k(t,o.draggable,this.el,!1)&&e.push(t.getAttribute(o.dataIdAttr)||ae(t));return e},sort:function(t){var e={},n=this.el;this.toArray().forEach((function(t,i){var r=n.children[i];k(r,this.options.draggable,n,!1)&&(e[t]=r)}),this),t.forEach((function(t){e[t]&&(n.removeChild(e[t]),n.appendChild(e[t]))}))},save:function(){var t=this.options.store;t&&t.set&&t.set(this)},closest:function(t,e){return k(t,e||this.options.draggable,this.el,!1)},option:function(t,e){var n=this.options;if(void 0===e)return n[t];var i=nt.modifyOption(this,t,e);n[t]="undefined"!==typeof i?i:e,"group"===t&&qt(n)},destroy:function(){rt("destroy",this);var t=this.el;t[K]=null,_(t,"mousedown",this._onTapStart),_(t,"touchstart",this._onTapStart),_(t,"pointerdown",this._onTapStart),this.nativeDraggable&&(_(t,"dragover",this),_(t,"dragenter",this)),Array.prototype.forEach.call(t.querySelectorAll("[draggable]"),(function(t){t.removeAttribute("draggable")})),this._onDrop(),this._disableDelayedDragEvents(),Lt.splice(Lt.indexOf(this.el),1),this.el=t=null},_hideClone:function(){if(!dt){if(rt("hideClone",this),Jt.eventCanceled)return;E(ft,"display","none"),this.options.removeCloneOnHide&&ft.parentNode&&ft.parentNode.removeChild(ft),dt=!0}},_showClone:function(t){if("clone"===t.lastPutMode){if(dt){if(rt("showClone",this),Jt.eventCanceled)return;lt.contains(at)&&!this.options.group.revertClone?lt.insertBefore(ft,at):ut?lt.insertBefore(ft,ut):lt.appendChild(ft),this.options.group.revertClone&&this.animate(at,ft),E(ft,"display",""),dt=!1}}else this._hideClone()}},Vt&&O(document,"touchmove",(function(t){(Jt.active||Tt)&&t.cancelable&&t.preventDefault()})),Jt.utils={on:O,off:_,css:E,find:I,is:function(t,e){return!!k(t,e,t,!1)},extend:z,throttle:W,closest:k,toggleClass:$,clone:q,index:N,nextTick:ce,cancelNextTick:le,detectDirection:Wt,getChild:B},Jt.get=function(t){return t[K]},Jt.mount=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];e[0].constructor===Array&&(e=e[0]),e.forEach((function(t){if(!t.prototype||!t.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(t));t.utils&&(Jt.utils=a({},Jt.utils,t.utils)),nt.mount(t)}))},Jt.create=function(t,e){return new Jt(t,e)},Jt.version=d;var ue,he,fe,de,pe,ve,me=[],ge=!1;function be(){function t(){for(var t in this.defaults={scroll:!0,scrollSensitivity:30,scrollSpeed:10,bubbleScroll:!0},this)"_"===t.charAt(0)&&"function"===typeof this[t]&&(this[t]=this[t].bind(this))}return t.prototype={dragStarted:function(t){var e=t.originalEvent;this.sortable.nativeDraggable?O(document,"dragover",this._handleAutoScroll):this.options.supportPointer?O(document,"pointermove",this._handleFallbackAutoScroll):e.touches?O(document,"touchmove",this._handleFallbackAutoScroll):O(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(t){var e=t.originalEvent;this.options.dragOverBubble||e.rootEl||this._handleAutoScroll(e)},drop:function(){this.sortable.nativeDraggable?_(document,"dragover",this._handleAutoScroll):(_(document,"pointermove",this._handleFallbackAutoScroll),_(document,"touchmove",this._handleFallbackAutoScroll),_(document,"mousemove",this._handleFallbackAutoScroll)),we(),ye(),U()},nulling:function(){pe=he=ue=ge=ve=fe=de=null,me.length=0},_handleFallbackAutoScroll:function(t){this._handleAutoScroll(t,!0)},_handleAutoScroll:function(t,e){var n=this,i=(t.touches?t.touches[0]:t).clientX,r=(t.touches?t.touches[0]:t).clientY,o=document.elementFromPoint(i,r);if(pe=t,e||m||v||b){Oe(t,this.options,o,e);var a=F(o,!0);!ge||ve&&i===fe&&r===de||(ve&&we(),ve=setInterval((function(){var o=F(document.elementFromPoint(i,r),!0);o!==a&&(a=o,ye()),Oe(t,n.options,o,e)}),10),fe=i,de=r)}else{if(!this.options.bubbleScroll||F(o,!0)===L())return void ye();Oe(t,this.options,F(o,!1),!1)}}},o(t,{pluginName:"scroll",initializeByDefault:!0})}function ye(){me.forEach((function(t){clearInterval(t.pid)})),me=[]}function we(){clearInterval(ve)}var xe,Oe=W((function(t,e,n,i){if(e.scroll){var r,o=(t.touches?t.touches[0]:t).clientX,a=(t.touches?t.touches[0]:t).clientY,s=e.scrollSensitivity,c=e.scrollSpeed,l=L(),u=!1;he!==n&&(he=n,ye(),ue=e.scroll,r=e.scrollFn,!0===ue&&(ue=F(n,!0)));var h=0,f=ue;do{var d=f,p=M(d),v=p.top,m=p.bottom,g=p.left,b=p.right,y=p.width,w=p.height,x=void 0,O=void 0,_=d.scrollWidth,S=d.scrollHeight,C=E(d),k=d.scrollLeft,j=d.scrollTop;d===l?(x=y<_&&("auto"===C.overflowX||"scroll"===C.overflowX||"visible"===C.overflowX),O=w<S&&("auto"===C.overflowY||"scroll"===C.overflowY||"visible"===C.overflowY)):(x=y<_&&("auto"===C.overflowX||"scroll"===C.overflowX),O=w<S&&("auto"===C.overflowY||"scroll"===C.overflowY));var A=x&&(Math.abs(b-o)<=s&&k+y<_)-(Math.abs(g-o)<=s&&!!k),$=O&&(Math.abs(m-a)<=s&&j+w<S)-(Math.abs(v-a)<=s&&!!j);if(!me[h])for(var T=0;T<=h;T++)me[T]||(me[T]={});me[h].vx==A&&me[h].vy==$&&me[h].el===d||(me[h].el=d,me[h].vx=A,me[h].vy=$,clearInterval(me[h].pid),0==A&&0==$||(u=!0,me[h].pid=setInterval(function(){i&&0===this.layer&&Jt.active._onTouchMove(pe);var e=me[this.layer].vy?me[this.layer].vy*c:0,n=me[this.layer].vx?me[this.layer].vx*c:0;"function"===typeof r&&"continue"!==r.call(Jt.dragged.parentNode[K],n,e,t,pe,me[this.layer].el)||Y(me[this.layer].el,n,e)}.bind({layer:h}),24))),h++}while(e.bubbleScroll&&f!==l&&(f=F(f,!1)));ge=u}}),30),_e=function(t){var e=t.originalEvent,n=t.putSortable,i=t.dragEl,r=t.activeSortable,o=t.dispatchSortableEvent,a=t.hideGhostForTarget,s=t.unhideGhostForTarget;if(e){var c=n||r;a();var l=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:e,u=document.elementFromPoint(l.clientX,l.clientY);s(),c&&!c.el.contains(u)&&(o("spill"),this.onSpill({dragEl:i,putSortable:n}))}};function Se(){}function Ce(){}function ke(){function t(){this.defaults={swapClass:"sortable-swap-highlight"}}return t.prototype={dragStart:function(t){var e=t.dragEl;xe=e},dragOverValid:function(t){var e=t.completed,n=t.target,i=t.onMove,r=t.activeSortable,o=t.changed,a=t.cancel;if(r.options.swap){var s=this.sortable.el,c=this.options;if(n&&n!==s){var l=xe;!1!==i(n)?($(n,c.swapClass,!0),xe=n):xe=null,l&&l!==xe&&$(l,c.swapClass,!1)}o(),e(!0),a()}},drop:function(t){var e=t.activeSortable,n=t.putSortable,i=t.dragEl,r=n||this.sortable,o=this.options;xe&&$(xe,o.swapClass,!1),xe&&(o.swap||n&&n.options.swap)&&i!==xe&&(r.captureAnimationState(),r!==e&&e.captureAnimationState(),je(i,xe),r.animateAll(),r!==e&&e.animateAll())},nulling:function(){xe=null}},o(t,{pluginName:"swap",eventProperties:function(){return{swapItem:xe}}})}function je(t,e){var n,i,r=t.parentNode,o=e.parentNode;r&&o&&!r.isEqualNode(e)&&!o.isEqualNode(t)&&(n=N(t),i=N(e),r.isEqualNode(o)&&n<i&&i++,r.insertBefore(e,r.children[n]),o.insertBefore(t,o.children[i]))}Se.prototype={startIndex:null,dragStart:function(t){var e=t.oldDraggableIndex;this.startIndex=e},onSpill:function(t){var e=t.dragEl,n=t.putSortable;this.sortable.captureAnimationState(),n&&n.captureAnimationState();var i=B(this.sortable.el,this.startIndex,this.options);i?this.sortable.el.insertBefore(e,i):this.sortable.el.appendChild(e),this.sortable.animateAll(),n&&n.animateAll()},drop:_e},o(Se,{pluginName:"revertOnSpill"}),Ce.prototype={onSpill:function(t){var e=t.dragEl,n=t.putSortable,i=n||this.sortable;i.captureAnimationState(),e.parentNode&&e.parentNode.removeChild(e),i.animateAll()},drop:_e},o(Ce,{pluginName:"removeOnSpill"});var Ae,$e,Ee,Te,Ie,Le=[],Me=[],De=!1,Be=!1,Pe=!1;function Ne(){function t(t){for(var e in this)"_"===e.charAt(0)&&"function"===typeof this[e]&&(this[e]=this[e].bind(this));t.options.supportPointer?O(document,"pointerup",this._deselectMultiDrag):(O(document,"mouseup",this._deselectMultiDrag),O(document,"touchend",this._deselectMultiDrag)),O(document,"keydown",this._checkKeyDown),O(document,"keyup",this._checkKeyUp),this.defaults={selectedClass:"sortable-selected",multiDragKey:null,setData:function(e,n){var i="";Le.length&&$e===t?Le.forEach((function(t,e){i+=(e?", ":"")+t.textContent})):i=n.textContent,e.setData("Text",i)}}}return t.prototype={multiDragKeyDown:!1,isMultiDrag:!1,delayStartGlobal:function(t){var e=t.dragEl;Ee=e},delayEnded:function(){this.isMultiDrag=~Le.indexOf(Ee)},setupClone:function(t){var e=t.sortable,n=t.cancel;if(this.isMultiDrag){for(var i=0;i<Le.length;i++)Me.push(q(Le[i])),Me[i].sortableIndex=Le[i].sortableIndex,Me[i].draggable=!1,Me[i].style["will-change"]="",$(Me[i],this.options.selectedClass,!1),Le[i]===Ee&&$(Me[i],this.options.chosenClass,!1);e._hideClone(),n()}},clone:function(t){var e=t.sortable,n=t.rootEl,i=t.dispatchSortableEvent,r=t.cancel;this.isMultiDrag&&(this.options.removeCloneOnHide||Le.length&&$e===e&&(Re(!0,n),i("clone"),r()))},showClone:function(t){var e=t.cloneNowShown,n=t.rootEl,i=t.cancel;this.isMultiDrag&&(Re(!1,n),Me.forEach((function(t){E(t,"display","")})),e(),Ie=!1,i())},hideClone:function(t){var e=this,n=(t.sortable,t.cloneNowHidden),i=t.cancel;this.isMultiDrag&&(Me.forEach((function(t){E(t,"display","none"),e.options.removeCloneOnHide&&t.parentNode&&t.parentNode.removeChild(t)})),n(),Ie=!0,i())},dragStartGlobal:function(t){t.sortable;!this.isMultiDrag&&$e&&$e.multiDrag._deselectMultiDrag(),Le.forEach((function(t){t.sortableIndex=N(t)})),Le=Le.sort((function(t,e){return t.sortableIndex-e.sortableIndex})),Pe=!0},dragStarted:function(t){var e=this,n=t.sortable;if(this.isMultiDrag){if(this.options.sort&&(n.captureAnimationState(),this.options.animation)){Le.forEach((function(t){t!==Ee&&E(t,"position","absolute")}));var i=M(Ee,!1,!0,!0);Le.forEach((function(t){t!==Ee&&X(t,i)})),Be=!0,De=!0}n.animateAll((function(){Be=!1,De=!1,e.options.animation&&Le.forEach((function(t){G(t)})),e.options.sort&&Fe()}))}},dragOver:function(t){var e=t.target,n=t.completed,i=t.cancel;Be&&~Le.indexOf(e)&&(n(!1),i())},revert:function(t){var e=t.fromSortable,n=t.rootEl,i=t.sortable,r=t.dragRect;Le.length>1&&(Le.forEach((function(t){i.addAnimationState({target:t,rect:Be?M(t):r}),G(t),t.fromRect=r,e.removeAnimationState(t)})),Be=!1,Ve(!this.options.removeCloneOnHide,n))},dragOverCompleted:function(t){var e=t.sortable,n=t.isOwner,i=t.insertion,r=t.activeSortable,o=t.parentEl,a=t.putSortable,s=this.options;if(i){if(n&&r._hideClone(),De=!1,s.animation&&Le.length>1&&(Be||!n&&!r.options.sort&&!a)){var c=M(Ee,!1,!0,!0);Le.forEach((function(t){t!==Ee&&(X(t,c),o.appendChild(t))})),Be=!0}if(!n)if(Be||Fe(),Le.length>1){var l=Ie;r._showClone(e),r.options.animation&&!Ie&&l&&Me.forEach((function(t){r.addAnimationState({target:t,rect:Te}),t.fromRect=Te,t.thisAnimationDuration=null}))}else r._showClone(e)}},dragOverAnimationCapture:function(t){var e=t.dragRect,n=t.isOwner,i=t.activeSortable;if(Le.forEach((function(t){t.thisAnimationDuration=null})),i.options.animation&&!n&&i.multiDrag.isMultiDrag){Te=o({},e);var r=T(Ee,!0);Te.top-=r.f,Te.left-=r.e}},dragOverAnimationComplete:function(){Be&&(Be=!1,Fe())},drop:function(t){var e=t.originalEvent,n=t.rootEl,i=t.parentEl,r=t.sortable,o=t.dispatchSortableEvent,a=t.oldIndex,s=t.putSortable,c=s||this.sortable;if(e){var l=this.options,u=i.children;if(!Pe)if(l.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),$(Ee,l.selectedClass,!~Le.indexOf(Ee)),~Le.indexOf(Ee))Le.splice(Le.indexOf(Ee),1),Ae=null,it({sortable:r,rootEl:n,name:"deselect",targetEl:Ee,originalEvt:e});else{if(Le.push(Ee),it({sortable:r,rootEl:n,name:"select",targetEl:Ee,originalEvt:e}),e.shiftKey&&Ae&&r.el.contains(Ae)){var h,f,d=N(Ae),p=N(Ee);if(~d&&~p&&d!==p)for(p>d?(f=d,h=p):(f=p,h=d+1);f<h;f++)~Le.indexOf(u[f])||($(u[f],l.selectedClass,!0),Le.push(u[f]),it({sortable:r,rootEl:n,name:"select",targetEl:u[f],originalEvt:e}))}else Ae=Ee;$e=c}if(Pe&&this.isMultiDrag){if((i[K].options.sort||i!==n)&&Le.length>1){var v=M(Ee),m=N(Ee,":not(."+this.options.selectedClass+")");if(!De&&l.animation&&(Ee.thisAnimationDuration=null),c.captureAnimationState(),!De&&(l.animation&&(Ee.fromRect=v,Le.forEach((function(t){if(t.thisAnimationDuration=null,t!==Ee){var e=Be?M(t):v;t.fromRect=e,c.addAnimationState({target:t,rect:e})}}))),Fe(),Le.forEach((function(t){u[m]?i.insertBefore(t,u[m]):i.appendChild(t),m++})),a===N(Ee))){var g=!1;Le.forEach((function(t){t.sortableIndex===N(t)||(g=!0)})),g&&o("update")}Le.forEach((function(t){G(t)})),c.animateAll()}$e=c}(n===i||s&&"clone"!==s.lastPutMode)&&Me.forEach((function(t){t.parentNode&&t.parentNode.removeChild(t)}))}},nullingGlobal:function(){this.isMultiDrag=Pe=!1,Me.length=0},destroyGlobal:function(){this._deselectMultiDrag(),_(document,"pointerup",this._deselectMultiDrag),_(document,"mouseup",this._deselectMultiDrag),_(document,"touchend",this._deselectMultiDrag),_(document,"keydown",this._checkKeyDown),_(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(t){if(("undefined"===typeof Pe||!Pe)&&$e===this.sortable&&(!t||!k(t.target,this.options.draggable,this.sortable.el,!1))&&(!t||0===t.button))while(Le.length){var e=Le[0];$(e,this.options.selectedClass,!1),Le.shift(),it({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:e,originalEvt:t})}},_checkKeyDown:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(t){t.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},o(t,{pluginName:"multiDrag",utils:{select:function(t){var e=t.parentNode[K];e&&e.options.multiDrag&&!~Le.indexOf(t)&&($e&&$e!==e&&($e.multiDrag._deselectMultiDrag(),$e=e),$(t,e.options.selectedClass,!0),Le.push(t))},deselect:function(t){var e=t.parentNode[K],n=Le.indexOf(t);e&&e.options.multiDrag&&~n&&($(t,e.options.selectedClass,!1),Le.splice(n,1))}},eventProperties:function(){var t=this,e=[],n=[];return Le.forEach((function(i){var r;e.push({multiDragElement:i,index:i.sortableIndex}),r=Be&&i!==Ee?-1:Be?N(i,":not(."+t.options.selectedClass+")"):N(i),n.push({multiDragElement:i,index:r})})),{items:l(Le),clones:[].concat(Me),oldIndicies:e,newIndicies:n}},optionListeners:{multiDragKey:function(t){return t=t.toLowerCase(),"ctrl"===t?t="Control":t.length>1&&(t=t.charAt(0).toUpperCase()+t.substr(1)),t}}})}function Ve(t,e){Le.forEach((function(n,i){var r=e.children[n.sortableIndex+(t?Number(i):0)];r?e.insertBefore(n,r):e.appendChild(n)}))}function Re(t,e){Me.forEach((function(n,i){var r=e.children[n.sortableIndex+(t?Number(i):0)];r?e.insertBefore(n,r):e.appendChild(n)}))}function Fe(){Le.forEach((function(t){t!==Ee&&t.parentNode&&t.parentNode.removeChild(t)}))}Jt.mount(new be),Jt.mount(Ce,Se),e["default"]=Jt},ab13:function(t,e,n){var i=n("b622"),r=i("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(i){}}return!1}},ac1f:function(t,e,n){"use strict";var i=n("23e7"),r=n("9263");i({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},ad6d:function(t,e,n){"use strict";var i=n("825a");t.exports=function(){var t=i(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},adda:function(t,e,n){"use strict";n("a15b"),n("a9e3"),n("8efc");var i=n("90a2"),r=(n("36a7"),n("24b2")),o=n("58df"),a=Object(o["a"])(r["a"]).extend({name:"v-responsive",props:{aspectRatio:[String,Number]},computed:{computedAspectRatio:function(){return Number(this.aspectRatio)},aspectStyle:function(){return this.computedAspectRatio?{paddingBottom:1/this.computedAspectRatio*100+"%"}:void 0},__cachedSizer:function(){return this.aspectStyle?this.$createElement("div",{style:this.aspectStyle,staticClass:"v-responsive__sizer"}):[]}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-responsive__content"},this.$slots.default)}},render:function(t){return t("div",{staticClass:"v-responsive",style:this.measurableStyles,on:this.$listeners},[this.__cachedSizer,this.genContent()])}}),s=a,c=n("7560"),l=n("d9f7"),u=n("d9bd"),h="undefined"!==typeof window&&"IntersectionObserver"in window;e["a"]=Object(o["a"])(s,c["a"]).extend({name:"v-img",directives:{intersect:i["a"]},props:{alt:String,contain:Boolean,eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:function(){return{root:void 0,rootMargin:void 0,threshold:void 0}}},position:{type:String,default:"center center"},sizes:String,src:{type:[String,Object],default:""},srcset:String,transition:{type:[Boolean,String],default:"fade-transition"}},data:function(){return{currentSrc:"",image:null,isLoading:!0,calculatedAspectRatio:void 0,naturalWidth:void 0,hasError:!1}},computed:{computedAspectRatio:function(){return Number(this.normalisedSrc.aspect||this.calculatedAspectRatio)},normalisedSrc:function(){return"string"===typeof this.src?{src:this.src,srcset:this.srcset,lazySrc:this.lazySrc,aspect:Number(this.aspectRatio||0)}:{src:this.src.src,srcset:this.srcset||this.src.srcset,lazySrc:this.lazySrc||this.src.lazySrc,aspect:Number(this.aspectRatio||this.src.aspect)}},__cachedImage:function(){if(!(this.normalisedSrc.src||this.normalisedSrc.lazySrc||this.gradient))return[];var t=[],e=this.isLoading?this.normalisedSrc.lazySrc:this.currentSrc;this.gradient&&t.push("linear-gradient(".concat(this.gradient,")")),e&&t.push('url("'.concat(e,'")'));var n=this.$createElement("div",{staticClass:"v-image__image",class:{"v-image__image--preload":this.isLoading,"v-image__image--contain":this.contain,"v-image__image--cover":!this.contain},style:{backgroundImage:t.join(", "),backgroundPosition:this.position},key:+this.isLoading});return this.transition?this.$createElement("transition",{attrs:{name:this.transition,mode:"in-out"}},[n]):n}},watch:{src:function(){this.isLoading?this.loadImage():this.init(void 0,void 0,!0)},"$vuetify.breakpoint.width":"getSrc"},mounted:function(){this.init()},methods:{init:function(t,e,n){if(!h||n||this.eager){if(this.normalisedSrc.lazySrc){var i=new Image;i.src=this.normalisedSrc.lazySrc,this.pollForSize(i,null)}this.normalisedSrc.src&&this.loadImage()}},onLoad:function(){this.getSrc(),this.isLoading=!1,this.$emit("load",this.src)},onError:function(){this.hasError=!0,this.$emit("error",this.src)},getSrc:function(){this.image&&(this.currentSrc=this.image.currentSrc||this.image.src)},loadImage:function(){var t=this,e=new Image;this.image=e,e.onload=function(){e.decode?e.decode().catch((function(e){Object(u["c"])("Failed to decode image, trying to render anyway\n\n"+"src: ".concat(t.normalisedSrc.src)+(e.message?"\nOriginal error: ".concat(e.message):""),t)})).then(t.onLoad):t.onLoad()},e.onerror=this.onError,this.hasError=!1,e.src=this.normalisedSrc.src,this.sizes&&(e.sizes=this.sizes),this.normalisedSrc.srcset&&(e.srcset=this.normalisedSrc.srcset),this.aspectRatio||this.pollForSize(e),this.getSrc()},pollForSize:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,i=function i(){var r=t.naturalHeight,o=t.naturalWidth;r||o?(e.naturalWidth=o,e.calculatedAspectRatio=o/r):null!=n&&!e.hasError&&setTimeout(i,n)};i()},genContent:function(){var t=s.options.methods.genContent.call(this);return this.naturalWidth&&this._b(t.data,"div",{style:{width:"".concat(this.naturalWidth,"px")}}),t},__genPlaceholder:function(){if(this.$slots.placeholder){var t=this.isLoading?[this.$createElement("div",{staticClass:"v-image__placeholder"},this.$slots.placeholder)]:[];return this.transition?this.$createElement("transition",{props:{appear:!0,name:this.transition}},t):t[0]}}},render:function(t){var e=s.options.render.call(this,t),n=Object(l["a"])(e.data,{staticClass:"v-image",attrs:{"aria-label":this.alt,role:this.alt?"img":void 0},class:this.themeClasses,directives:h?[{name:"intersect",modifiers:{once:!0},value:{handler:this.init,options:this.options}}]:void 0});return e.children=[this.__cachedSizer,this.__cachedImage,this.__genPlaceholder(),this.genContent()],t(e.tag,n,e.children)}})},ade3:function(t,e,n){"use strict";function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,"a",(function(){return i}))},ae40:function(t,e,n){var i=n("83ab"),r=n("d039"),o=n("5135"),a=Object.defineProperty,s={},c=function(t){throw t};t.exports=function(t,e){if(o(s,t))return s[t];e||(e={});var n=[][t],l=!!o(e,"ACCESSORS")&&e.ACCESSORS,u=o(e,0)?e[0]:c,h=o(e,1)?e[1]:void 0;return s[t]=!!n&&!r((function(){if(l&&!i)return!0;var t={length:-1};l?a(t,1,{enumerable:!0,get:c}):t[1]=1,n.call(t,u,h)}))}},ae93:function(t,e,n){"use strict";var i,r,o,a=n("e163"),s=n("9112"),c=n("5135"),l=n("b622"),u=n("c430"),h=l("iterator"),f=!1,d=function(){return this};[].keys&&(o=[].keys(),"next"in o?(r=a(a(o)),r!==Object.prototype&&(i=r)):f=!0),void 0==i&&(i={}),u||c(i,h)||s(i,h,d),t.exports={IteratorPrototype:i,BUGGY_SAFARI_ITERATORS:f}},af03:function(t,e,n){var i=n("d039");t.exports=function(t){return i((function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}))}},af2b:function(t,e,n){"use strict";n("c96a");var i=n("2b0e");e["a"]=i["a"].extend({name:"sizeable",props:{large:Boolean,small:Boolean,xLarge:Boolean,xSmall:Boolean},computed:{medium:function(){return Boolean(!this.xSmall&&!this.small&&!this.large&&!this.xLarge)},sizeableClasses:function(){return{"v-size--x-small":this.xSmall,"v-size--small":this.small,"v-size--default":this.medium,"v-size--large":this.large,"v-size--x-large":this.xLarge}}}})},b041:function(t,e,n){"use strict";var i=n("00ee"),r=n("f5df");t.exports=i?{}.toString:function(){return"[object "+r(this)+"]"}},b0af:function(t,e,n){"use strict";n("0481"),n("4069"),n("a9e3");var i=n("5530"),r=(n("615b"),n("10d2")),o=n("297c"),a=n("1c87"),s=n("58df");e["a"]=Object(s["a"])(o["a"],a["a"],r["a"]).extend({name:"v-card",props:{flat:Boolean,hover:Boolean,img:String,link:Boolean,loaderHeight:{type:[Number,String],default:4},raised:Boolean},computed:{classes:function(){return Object(i["a"])(Object(i["a"])({"v-card":!0},a["a"].options.computed.classes.call(this)),{},{"v-card--flat":this.flat,"v-card--hover":this.hover,"v-card--link":this.isClickable,"v-card--loading":this.loading,"v-card--disabled":this.disabled,"v-card--raised":this.raised},r["a"].options.computed.classes.call(this))},styles:function(){var t=Object(i["a"])({},r["a"].options.computed.styles.call(this));return this.img&&(t.background='url("'.concat(this.img,'") center center / cover no-repeat')),t}},methods:{genProgress:function(){var t=o["a"].options.methods.genProgress.call(this);return t?this.$createElement("div",{staticClass:"v-card__progress",key:"progress"},[t]):null}},render:function(t){var e=this.generateRouteLink(),n=e.tag,i=e.data;return i.style=this.styles,this.isClickable&&(i.attrs=i.attrs||{},i.attrs.tabindex=0),t(n,this.setBackgroundColor(this.color,i),[this.genProgress(),this.$slots.default])}})},b0c0:function(t,e,n){var i=n("83ab"),r=n("9bf2").f,o=Function.prototype,a=o.toString,s=/^\s*function ([^ (]*)/,c="name";i&&!(c in o)&&r(o,c,{configurable:!0,get:function(){try{return a.call(this).match(s)[1]}catch(t){return""}}})},b575:function(t,e,n){var i,r,o,a,s,c,l,u,h=n("da84"),f=n("06cf").f,d=n("c6b6"),p=n("2cf4").set,v=n("1cdc"),m=h.MutationObserver||h.WebKitMutationObserver,g=h.process,b=h.Promise,y="process"==d(g),w=f(h,"queueMicrotask"),x=w&&w.value;x||(i=function(){var t,e;y&&(t=g.domain)&&t.exit();while(r){e=r.fn,r=r.next;try{e()}catch(n){throw r?a():o=void 0,n}}o=void 0,t&&t.enter()},y?a=function(){g.nextTick(i)}:m&&!v?(s=!0,c=document.createTextNode(""),new m(i).observe(c,{characterData:!0}),a=function(){c.data=s=!s}):b&&b.resolve?(l=b.resolve(void 0),u=l.then,a=function(){u.call(l,i)}):a=function(){p.call(h,i)}),t.exports=x||function(t){var e={fn:t,next:void 0};o&&(o.next=e),r||(r=e,a()),o=e}},b622:function(t,e,n){var i=n("da84"),r=n("5692"),o=n("5135"),a=n("90e3"),s=n("4930"),c=n("fdbf"),l=r("wks"),u=i.Symbol,h=c?u:u&&u.withoutSetter||a;t.exports=function(t){return o(l,t)||(s&&o(u,t)?l[t]=u[t]:l[t]=h("Symbol."+t)),l[t]}},b64b:function(t,e,n){var i=n("23e7"),r=n("7b0b"),o=n("df75"),a=n("d039"),s=a((function(){o(1)}));i({target:"Object",stat:!0,forced:s},{keys:function(t){return o(r(t))}})},b680:function(t,e,n){"use strict";var i=n("23e7"),r=n("a691"),o=n("408a"),a=n("1148"),s=n("d039"),c=1..toFixed,l=Math.floor,u=function(t,e,n){return 0===e?n:e%2===1?u(t,e-1,n*t):u(t*t,e/2,n)},h=function(t){var e=0,n=t;while(n>=4096)e+=12,n/=4096;while(n>=2)e+=1,n/=2;return e},f=c&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!s((function(){c.call({})}));i({target:"Number",proto:!0,forced:f},{toFixed:function(t){var e,n,i,s,c=o(this),f=r(t),d=[0,0,0,0,0,0],p="",v="0",m=function(t,e){var n=-1,i=e;while(++n<6)i+=t*d[n],d[n]=i%1e7,i=l(i/1e7)},g=function(t){var e=6,n=0;while(--e>=0)n+=d[e],d[e]=l(n/t),n=n%t*1e7},b=function(){var t=6,e="";while(--t>=0)if(""!==e||0===t||0!==d[t]){var n=String(d[t]);e=""===e?n:e+a.call("0",7-n.length)+n}return e};if(f<0||f>20)throw RangeError("Incorrect fraction digits");if(c!=c)return"NaN";if(c<=-1e21||c>=1e21)return String(c);if(c<0&&(p="-",c=-c),c>1e-21)if(e=h(c*u(2,69,1))-69,n=e<0?c*u(2,-e,1):c/u(2,e,1),n*=4503599627370496,e=52-e,e>0){m(0,n),i=f;while(i>=7)m(1e7,0),i-=7;m(u(10,i,1),0),i=e-1;while(i>=23)g(1<<23),i-=23;g(1<<i),m(1,1),g(2),v=b()}else m(0,n),m(1<<-e,0),v=b()+a.call("0",f);return f>0?(s=v.length,v=p+(s<=f?"0."+a.call("0",f-s)+v:v.slice(0,s-f)+"."+v.slice(s-f))):v=p+v,v}})},b727:function(t,e,n){var i=n("0366"),r=n("44ad"),o=n("7b0b"),a=n("50c4"),s=n("65f0"),c=[].push,l=function(t){var e=1==t,n=2==t,l=3==t,u=4==t,h=6==t,f=5==t||h;return function(d,p,v,m){for(var g,b,y=o(d),w=r(y),x=i(p,v,3),O=a(w.length),_=0,S=m||s,C=e?S(d,O):n?S(d,0):void 0;O>_;_++)if((f||_ in w)&&(g=w[_],b=x(g,_,y),t))if(e)C[_]=b;else if(b)switch(t){case 3:return!0;case 5:return g;case 6:return _;case 2:c.call(C,g)}else if(u)return!1;return h?-1:l||u?u:C}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6)}},b848:function(t,e,n){"use strict";var i=n("2909"),r=n("58df");function o(t){for(var e=[],n=0;n<t.length;n++){var r=t[n];r.isActive&&r.isDependent?e.push(r):e.push.apply(e,Object(i["a"])(o(r.$children)))}return e}e["a"]=Object(r["a"])().extend({name:"dependent",data:function(){return{closeDependents:!0,isActive:!1,isDependent:!0}},watch:{isActive:function(t){if(!t)for(var e=this.getOpenDependents(),n=0;n<e.length;n++)e[n].isActive=!1}},methods:{getOpenDependents:function(){return this.closeDependents?o(this.$children):[]},getOpenDependentElements:function(){for(var t=[],e=this.getOpenDependents(),n=0;n<e.length;n++)t.push.apply(t,Object(i["a"])(e[n].getClickableDependentElements()));return t},getClickableDependentElements:function(){var t=[this.$el];return this.$refs.content&&t.push(this.$refs.content),this.overlay&&t.push(this.overlay.$el),t.push.apply(t,Object(i["a"])(this.getOpenDependentElements())),t}}})},b85c:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));n("a4d3"),n("e01a"),n("d28b"),n("d3b7"),n("3ca3"),n("ddb0");var i=n("06c5");function r(t,e){var n;if("undefined"===typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=Object(i["a"])(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,c=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){c=!0,a=t},f:function(){try{s||null==n["return"]||n["return"]()}finally{if(c)throw a}}}}},b974:function(t,e,n){"use strict";n("99af"),n("4de4"),n("c740"),n("a630"),n("caad"),n("d81d"),n("13d5"),n("fb6a"),n("a434"),n("b0c0"),n("4ec9"),n("d3b7"),n("ac1f"),n("25f0"),n("2532"),n("3ca3"),n("1276"),n("2ca0"),n("498a"),n("ddb0");var i=n("b85c"),r=n("ade3"),o=n("5530"),a=(n("4ff9"),n("68dd"),n("4160"),n("3835")),s=(n("8adc"),n("58df")),c=n("0789"),l=n("9d26"),u=n("a9ad"),h=n("4e82"),f=n("7560"),d=n("f2e7"),p=n("1c87"),v=n("af2b"),m=n("d9bd"),g=Object(s["a"])(u["a"],v["a"],p["a"],f["a"],Object(h["a"])("chipGroup"),Object(d["b"])("inputValue")).extend({name:"v-chip",props:{active:{type:Boolean,default:!0},activeClass:{type:String,default:function(){return this.chipGroup?this.chipGroup.activeClass:""}},close:Boolean,closeIcon:{type:String,default:"$delete"},disabled:Boolean,draggable:Boolean,filter:Boolean,filterIcon:{type:String,default:"$complete"},label:Boolean,link:Boolean,outlined:Boolean,pill:Boolean,tag:{type:String,default:"span"},textColor:String,value:null},data:function(){return{proxyClass:"v-chip--active"}},computed:{classes:function(){return Object(o["a"])(Object(o["a"])(Object(o["a"])(Object(o["a"])({"v-chip":!0},p["a"].options.computed.classes.call(this)),{},{"v-chip--clickable":this.isClickable,"v-chip--disabled":this.disabled,"v-chip--draggable":this.draggable,"v-chip--label":this.label,"v-chip--link":this.isLink,"v-chip--no-color":!this.color,"v-chip--outlined":this.outlined,"v-chip--pill":this.pill,"v-chip--removable":this.hasClose},this.themeClasses),this.sizeableClasses),this.groupClasses)},hasClose:function(){return Boolean(this.close)},isClickable:function(){return Boolean(p["a"].options.computed.isClickable.call(this)||this.chipGroup)}},created:function(){var t=this,e=[["outline","outlined"],["selected","input-value"],["value","active"],["@input","@active.sync"]];e.forEach((function(e){var n=Object(a["a"])(e,2),i=n[0],r=n[1];t.$attrs.hasOwnProperty(i)&&Object(m["a"])(i,r,t)}))},methods:{click:function(t){this.$emit("click",t),this.chipGroup&&this.toggle()},genFilter:function(){var t=[];return this.isActive&&t.push(this.$createElement(l["a"],{staticClass:"v-chip__filter",props:{left:!0}},this.filterIcon)),this.$createElement(c["b"],t)},genClose:function(){var t=this;return this.$createElement(l["a"],{staticClass:"v-chip__close",props:{right:!0,size:18},on:{click:function(e){e.stopPropagation(),e.preventDefault(),t.$emit("click:close"),t.$emit("update:active",!1)}}},this.closeIcon)},genContent:function(){return this.$createElement("span",{staticClass:"v-chip__content"},[this.filter&&this.genFilter(),this.$slots.default,this.hasClose&&this.genClose()])}},render:function(t){var e=[this.genContent()],n=this.generateRouteLink(),i=n.tag,r=n.data;r.attrs=Object(o["a"])(Object(o["a"])({},r.attrs),{},{draggable:this.draggable?"true":void 0,tabindex:this.chipGroup&&!this.disabled?0:r.attrs.tabindex}),r.directives.push({name:"show",value:this.active}),r=this.setBackgroundColor(this.color,r);var a=this.textColor||this.outlined&&this.color;return t(i,this.setTextColor(a,r),e)}}),b=g,y=n("326d"),w=(n("c975"),n("a15b"),n("b64b"),n("159b"),n("cf36"),n("5607")),x=n("2b0e"),O=n("132d"),_=n("d9f7"),S=n("80d2"),C=x["a"].extend({name:"v-simple-checkbox",functional:!0,directives:{ripple:w["a"]},props:Object(o["a"])(Object(o["a"])(Object(o["a"])({},u["a"].options.props),f["a"].options.props),{},{disabled:Boolean,ripple:{type:Boolean,default:!0},value:Boolean,indeterminate:Boolean,indeterminateIcon:{type:String,default:"$checkboxIndeterminate"},onIcon:{type:String,default:"$checkboxOn"},offIcon:{type:String,default:"$checkboxOff"}}),render:function(t,e){var n=e.props,i=e.data,r=e.listeners,a=[];if(n.ripple&&!n.disabled){var s=t("div",u["a"].options.methods.setTextColor(n.color,{staticClass:"v-input--selection-controls__ripple",directives:[{name:"ripple",value:{center:!0}}]}));a.push(s)}var c=n.offIcon;n.indeterminate?c=n.indeterminateIcon:n.value&&(c=n.onIcon),a.push(t(O["a"],u["a"].options.methods.setTextColor(n.value&&n.color,{props:{disabled:n.disabled,dark:n.dark,light:n.light}}),c));var l={"v-simple-checkbox":!0,"v-simple-checkbox--disabled":n.disabled};return t("div",Object(o["a"])(Object(o["a"])({},i),{},{class:l,on:Object(_["b"])({click:function(t){t.stopPropagation(),i.on&&i.on.input&&!n.disabled&&Object(S["z"])(i.on.input).forEach((function(t){return t(!n.value)}))}},r)}),a)}}),k=(n("8ce9"),f["a"].extend({name:"v-divider",props:{inset:Boolean,vertical:Boolean},render:function(t){var e;return this.$attrs.role&&"separator"!==this.$attrs.role||(e=this.vertical?"vertical":"horizontal"),t("hr",{class:Object(o["a"])({"v-divider":!0,"v-divider--inset":this.inset,"v-divider--vertical":this.vertical},this.themeClasses),attrs:Object(o["a"])({role:"separator","aria-orientation":e},this.$attrs),on:this.$listeners})}})),j=k,A=(n("0bc6"),Object(s["a"])(f["a"]).extend({name:"v-subheader",props:{inset:Boolean},render:function(t){return t("div",{staticClass:"v-subheader",class:Object(o["a"])({"v-subheader--inset":this.inset},this.themeClasses),attrs:this.$attrs,on:this.$listeners},this.$slots.default)}})),$=A,E=n("da13"),T=n("1800"),I=n("5d23"),L=n("8860"),M=Object(s["a"])(u["a"],f["a"]).extend({name:"v-select-list",directives:{ripple:w["a"]},props:{action:Boolean,dense:Boolean,hideSelected:Boolean,items:{type:Array,default:function(){return[]}},itemDisabled:{type:[String,Array,Function],default:"disabled"},itemText:{type:[String,Array,Function],default:"text"},itemValue:{type:[String,Array,Function],default:"value"},noDataText:String,noFilter:Boolean,searchInput:null,selectedItems:{type:Array,default:function(){return[]}}},computed:{parsedItems:function(){var t=this;return this.selectedItems.map((function(e){return t.getValue(e)}))},tileActiveClass:function(){return Object.keys(this.setTextColor(this.color).class||{}).join(" ")},staticNoDataTile:function(){var t={attrs:{role:void 0},on:{mousedown:function(t){return t.preventDefault()}}};return this.$createElement(E["a"],t,[this.genTileContent(this.noDataText)])}},methods:{genAction:function(t,e){var n=this;return this.$createElement(T["a"],[this.$createElement(C,{props:{color:this.color,value:e},on:{input:function(){return n.$emit("select",t)}}})])},genDivider:function(t){return this.$createElement(j,{props:t})},genFilteredText:function(t){if(t=t||"",!this.searchInput||this.noFilter)return Object(S["j"])(t);var e=this.getMaskedCharacters(t),n=e.start,i=e.middle,r=e.end;return"".concat(Object(S["j"])(n)).concat(this.genHighlight(i)).concat(Object(S["j"])(r))},genHeader:function(t){return this.$createElement($,{props:t},t.header)},genHighlight:function(t){return'<span class="v-list-item__mask">'.concat(Object(S["j"])(t),"</span>")},getMaskedCharacters:function(t){var e=(this.searchInput||"").toString().toLocaleLowerCase(),n=t.toLocaleLowerCase().indexOf(e);if(n<0)return{start:"",middle:t,end:""};var i=t.slice(0,n),r=t.slice(n,n+e.length),o=t.slice(n+e.length);return{start:i,middle:r,end:o}},genTile:function(t){var e=this,n=t.item,i=t.index,r=t.disabled,a=void 0===r?null:r,s=t.value,c=void 0!==s&&s;c||(c=this.hasItem(n)),n===Object(n)&&(a=null!==a?a:this.getDisabled(n));var l={attrs:{"aria-selected":String(c),id:"list-item-".concat(this._uid,"-").concat(i),role:"option"},on:{mousedown:function(t){t.preventDefault()},click:function(){return a||e.$emit("select",n)}},props:{activeClass:this.tileActiveClass,disabled:a,ripple:!0,inputValue:c}};if(!this.$scopedSlots.item)return this.$createElement(E["a"],l,[this.action&&!this.hideSelected&&this.items.length>0?this.genAction(n,c):null,this.genTileContent(n,i)]);var u=this,h=this.$scopedSlots.item({parent:u,item:n,attrs:Object(o["a"])(Object(o["a"])({},l.attrs),l.props),on:l.on});return this.needsTile(h)?this.$createElement(E["a"],l,h):h},genTileContent:function(t){var e=this.genFilteredText(this.getText(t));return this.$createElement(I["a"],[this.$createElement(I["c"],{domProps:{innerHTML:e}})])},hasItem:function(t){return this.parsedItems.indexOf(this.getValue(t))>-1},needsTile:function(t){return 1!==t.length||null==t[0].componentOptions||"v-list-item"!==t[0].componentOptions.Ctor.options.name},getDisabled:function(t){return Boolean(Object(S["n"])(t,this.itemDisabled,!1))},getText:function(t){return String(Object(S["n"])(t,this.itemText,t))},getValue:function(t){return Object(S["n"])(t,this.itemValue,this.getText(t))}},render:function(){for(var t=[],e=this.items.length,n=0;n<e;n++){var i=this.items[n];this.hideSelected&&this.hasItem(i)||(null==i?t.push(this.genTile({item:i,index:n})):i.header?t.push(this.genHeader(i)):i.divider?t.push(this.genDivider(i)):t.push(this.genTile({item:i,index:n})))}return t.length||t.push(this.$slots["no-data"]||this.staticNoDataTile),this.$slots["prepend-item"]&&t.unshift(this.$slots["prepend-item"]),this.$slots["append-item"]&&t.push(this.$slots["append-item"]),this.$createElement(L["a"],{staticClass:"v-select-list",class:this.themeClasses,attrs:{role:"listbox",tabindex:-1},props:{dense:this.dense}},t)}}),D=n("c37a"),B=n("8654"),P=x["a"].extend({name:"comparable",props:{valueComparator:{type:Function,default:S["i"]}}}),N=x["a"].extend({name:"filterable",props:{noDataText:{type:String,default:"$vuetify.noDataText"}}}),V=n("a293"),R={closeOnClick:!1,closeOnContentClick:!1,disableKeys:!0,openOnClick:!1,maxHeight:304},F=Object(s["a"])(B["a"],P,N);e["a"]=F.extend().extend({name:"v-select",directives:{ClickOutside:V["a"]},props:{appendIcon:{type:String,default:"$dropdown"},attach:{type:null,default:!1},cacheItems:Boolean,chips:Boolean,clearable:Boolean,deletableChips:Boolean,disableLookup:Boolean,eager:Boolean,hideSelected:Boolean,items:{type:Array,default:function(){return[]}},itemColor:{type:String,default:"primary"},itemDisabled:{type:[String,Array,Function],default:"disabled"},itemText:{type:[String,Array,Function],default:"text"},itemValue:{type:[String,Array,Function],default:"value"},menuProps:{type:[String,Array,Object],default:function(){return R}},multiple:Boolean,openOnClear:Boolean,returnObject:Boolean,smallChips:Boolean},data:function(){return{cachedItems:this.cacheItems?this.items:[],menuIsBooted:!1,isMenuActive:!1,lastItem:20,lazyValue:void 0!==this.value?this.value:this.multiple?[]:void 0,selectedIndex:-1,selectedItems:[],keyboardLookupPrefix:"",keyboardLookupLastTime:0}},computed:{allItems:function(){return this.filterDuplicates(this.cachedItems.concat(this.items))},classes:function(){return Object(o["a"])(Object(o["a"])({},B["a"].options.computed.classes.call(this)),{},{"v-select":!0,"v-select--chips":this.hasChips,"v-select--chips--small":this.smallChips,"v-select--is-menu-active":this.isMenuActive,"v-select--is-multi":this.multiple})},computedItems:function(){return this.allItems},computedOwns:function(){return"list-".concat(this._uid)},computedCounterValue:function(){return this.multiple?this.selectedItems.length:(this.getText(this.selectedItems[0])||"").toString().length},directives:function(){return this.isFocused?[{name:"click-outside",value:{handler:this.blur,closeConditional:this.closeConditional}}]:void 0},dynamicHeight:function(){return"auto"},hasChips:function(){return this.chips||this.smallChips},hasSlot:function(){return Boolean(this.hasChips||this.$scopedSlots.selection)},isDirty:function(){return this.selectedItems.length>0},listData:function(){var t=this.$vnode&&this.$vnode.context.$options._scopeId,e=t?Object(r["a"])({},t,!0):{};return{attrs:Object(o["a"])(Object(o["a"])({},e),{},{id:this.computedOwns}),props:{action:this.multiple,color:this.itemColor,dense:this.dense,hideSelected:this.hideSelected,items:this.virtualizedItems,itemDisabled:this.itemDisabled,itemText:this.itemText,itemValue:this.itemValue,noDataText:this.$vuetify.lang.t(this.noDataText),selectedItems:this.selectedItems},on:{select:this.selectItem},scopedSlots:{item:this.$scopedSlots.item}}},staticList:function(){return(this.$slots["no-data"]||this.$slots["prepend-item"]||this.$slots["append-item"])&&Object(m["b"])("assert: staticList should not be called if slots are used"),this.$createElement(M,this.listData)},virtualizedItems:function(){return this.$_menuProps.auto?this.computedItems:this.computedItems.slice(0,this.lastItem)},menuCanShow:function(){return!0},$_menuProps:function(){var t="string"===typeof this.menuProps?this.menuProps.split(","):this.menuProps;return Array.isArray(t)&&(t=t.reduce((function(t,e){return t[e.trim()]=!0,t}),{})),Object(o["a"])(Object(o["a"])({},R),{},{eager:this.eager,value:this.menuCanShow&&this.isMenuActive,nudgeBottom:t.offsetY?1:0},t)}},watch:{internalValue:function(t){this.initialValue=t,this.setSelectedItems()},isMenuActive:function(t){var e=this;window.setTimeout((function(){return e.onMenuActiveChange(t)}))},items:{immediate:!0,handler:function(t){var e=this;this.cacheItems&&this.$nextTick((function(){e.cachedItems=e.filterDuplicates(e.cachedItems.concat(t))})),this.setSelectedItems()}}},methods:{blur:function(t){B["a"].options.methods.blur.call(this,t),this.isMenuActive=!1,this.isFocused=!1,this.selectedIndex=-1},activateMenu:function(){this.isInteractive&&!this.isMenuActive&&(this.isMenuActive=!0)},clearableCallback:function(){var t=this;this.setValue(this.multiple?[]:void 0),this.setMenuIndex(-1),this.$nextTick((function(){return t.$refs.input&&t.$refs.input.focus()})),this.openOnClear&&(this.isMenuActive=!0)},closeConditional:function(t){return!this.isMenuActive||!this._isDestroyed&&(!this.getContent()||!this.getContent().contains(t.target))&&this.$el&&!this.$el.contains(t.target)&&t.target!==this.$el},filterDuplicates:function(t){for(var e=new Map,n=0;n<t.length;++n){var i=t[n],r=this.getValue(i);!e.has(r)&&e.set(r,i)}return Array.from(e.values())},findExistingIndex:function(t){var e=this,n=this.getValue(t);return(this.internalValue||[]).findIndex((function(t){return e.valueComparator(e.getValue(t),n)}))},getContent:function(){return this.$refs.menu&&this.$refs.menu.$refs.content},genChipSelection:function(t,e){var n=this,i=!this.isInteractive||this.getDisabled(t);return this.$createElement(b,{staticClass:"v-chip--select",attrs:{tabindex:-1},props:{close:this.deletableChips&&!i,disabled:i,inputValue:e===this.selectedIndex,small:this.smallChips},on:{click:function(t){i||(t.stopPropagation(),n.selectedIndex=e)},"click:close":function(){return n.onChipInput(t)}},key:JSON.stringify(this.getValue(t))},this.getText(t))},genCommaSelection:function(t,e,n){var i=e===this.selectedIndex&&this.computedColor,r=!this.isInteractive||this.getDisabled(t);return this.$createElement("div",this.setTextColor(i,{staticClass:"v-select__selection v-select__selection--comma",class:{"v-select__selection--disabled":r},key:JSON.stringify(this.getValue(t))}),"".concat(this.getText(t)).concat(n?"":", "))},genDefaultSlot:function(){var t=this.genSelections(),e=this.genInput();return Array.isArray(t)?t.push(e):(t.children=t.children||[],t.children.push(e)),[this.genFieldset(),this.$createElement("div",{staticClass:"v-select__slot",directives:this.directives},[this.genLabel(),this.prefix?this.genAffix("prefix"):null,t,this.suffix?this.genAffix("suffix"):null,this.genClearIcon(),this.genIconSlot(),this.genHiddenInput()]),this.genMenu(),this.genProgress()]},genIcon:function(t,e,n){var i=D["a"].options.methods.genIcon.call(this,t,e,n);return"append"===t&&(i.children[0].data=Object(_["a"])(i.children[0].data,{attrs:{tabindex:i.children[0].componentOptions.listeners&&"-1","aria-hidden":"true","aria-label":void 0}})),i},genInput:function(){var t=B["a"].options.methods.genInput.call(this);return delete t.data.attrs.name,t.data=Object(_["a"])(t.data,{domProps:{value:null},attrs:{readonly:!0,type:"text","aria-readonly":String(this.isReadonly),"aria-activedescendant":Object(S["m"])(this.$refs.menu,"activeTile.id"),autocomplete:Object(S["m"])(t.data,"attrs.autocomplete","off")},on:{keypress:this.onKeyPress}}),t},genHiddenInput:function(){return this.$createElement("input",{domProps:{value:this.lazyValue},attrs:{type:"hidden",name:this.attrs$.name}})},genInputSlot:function(){var t=B["a"].options.methods.genInputSlot.call(this);return t.data.attrs=Object(o["a"])(Object(o["a"])({},t.data.attrs),{},{role:"button","aria-haspopup":"listbox","aria-expanded":String(this.isMenuActive),"aria-owns":this.computedOwns}),t},genList:function(){return this.$slots["no-data"]||this.$slots["prepend-item"]||this.$slots["append-item"]?this.genListWithSlot():this.staticList},genListWithSlot:function(){var t=this,e=["prepend-item","no-data","append-item"].filter((function(e){return t.$slots[e]})).map((function(e){return t.$createElement("template",{slot:e},t.$slots[e])}));return this.$createElement(M,Object(o["a"])({},this.listData),e)},genMenu:function(){var t=this,e=this.$_menuProps;return e.activator=this.$refs["input-slot"],""===this.attach||!0===this.attach||"attach"===this.attach?e.attach=this.$el:e.attach=this.attach,this.$createElement(y["a"],{attrs:{role:void 0},props:e,on:{input:function(e){t.isMenuActive=e,t.isFocused=e},scroll:this.onScroll},ref:"menu"},[this.genList()])},genSelections:function(){var t,e=this.selectedItems.length,n=new Array(e);t=this.$scopedSlots.selection?this.genSlotSelection:this.hasChips?this.genChipSelection:this.genCommaSelection;while(e--)n[e]=t(this.selectedItems[e],e,e===n.length-1);return this.$createElement("div",{staticClass:"v-select__selections"},n)},genSlotSelection:function(t,e){var n=this;return this.$scopedSlots.selection({attrs:{class:"v-chip--select"},parent:this,item:t,index:e,select:function(t){t.stopPropagation(),n.selectedIndex=e},selected:e===this.selectedIndex,disabled:!this.isInteractive})},getMenuIndex:function(){return this.$refs.menu?this.$refs.menu.listIndex:-1},getDisabled:function(t){return Object(S["n"])(t,this.itemDisabled,!1)},getText:function(t){return Object(S["n"])(t,this.itemText,t)},getValue:function(t){return Object(S["n"])(t,this.itemValue,this.getText(t))},onBlur:function(t){t&&this.$emit("blur",t)},onChipInput:function(t){this.multiple?this.selectItem(t):this.setValue(null),0===this.selectedItems.length?this.isMenuActive=!0:this.isMenuActive=!1,this.selectedIndex=-1},onClick:function(t){this.isInteractive&&(this.isAppendInner(t.target)||(this.isMenuActive=!0),this.isFocused||(this.isFocused=!0,this.$emit("focus")),this.$emit("click",t))},onEscDown:function(t){t.preventDefault(),this.isMenuActive&&(t.stopPropagation(),this.isMenuActive=!1)},onKeyPress:function(t){var e=this;if(!this.multiple&&this.isInteractive&&!this.disableLookup){var n=1e3,i=performance.now();i-this.keyboardLookupLastTime>n&&(this.keyboardLookupPrefix=""),this.keyboardLookupPrefix+=t.key.toLowerCase(),this.keyboardLookupLastTime=i;var r=this.allItems.findIndex((function(t){var n=(e.getText(t)||"").toString();return n.toLowerCase().startsWith(e.keyboardLookupPrefix)})),o=this.allItems[r];-1!==r&&(this.lastItem=Math.max(this.lastItem,r+5),this.setValue(this.returnObject?o:this.getValue(o)),this.$nextTick((function(){return e.$refs.menu.getTiles()})),setTimeout((function(){return e.setMenuIndex(r)})))}},onKeyDown:function(t){var e=this;if(!this.isReadonly||t.keyCode===S["s"].tab){var n=t.keyCode,i=this.$refs.menu;if([S["s"].enter,S["s"].space].includes(n)&&this.activateMenu(),this.$emit("keydown",t),i)return this.isMenuActive&&n!==S["s"].tab&&this.$nextTick((function(){i.changeListIndex(t),e.$emit("update:list-index",i.listIndex)})),!this.isMenuActive&&[S["s"].up,S["s"].down].includes(n)?this.onUpDown(t):n===S["s"].esc?this.onEscDown(t):n===S["s"].tab?this.onTabDown(t):n===S["s"].space?this.onSpaceDown(t):void 0}},onMenuActiveChange:function(t){if(!(this.multiple&&!t||this.getMenuIndex()>-1)){var e=this.$refs.menu;if(e&&this.isDirty)for(var n=0;n<e.tiles.length;n++)if("true"===e.tiles[n].getAttribute("aria-selected")){this.setMenuIndex(n);break}}},onMouseUp:function(t){var e=this;this.hasMouseDown&&3!==t.which&&this.isInteractive&&(this.isAppendInner(t.target)?this.$nextTick((function(){return e.isMenuActive=!e.isMenuActive})):this.isEnclosed&&(this.isMenuActive=!0)),B["a"].options.methods.onMouseUp.call(this,t)},onScroll:function(){var t=this;if(this.isMenuActive){if(this.lastItem>this.computedItems.length)return;var e=this.getContent().scrollHeight-(this.getContent().scrollTop+this.getContent().clientHeight)<200;e&&(this.lastItem+=20)}else requestAnimationFrame((function(){return t.getContent().scrollTop=0}))},onSpaceDown:function(t){t.preventDefault()},onTabDown:function(t){var e=this.$refs.menu;if(e){var n=e.activeTile;!this.multiple&&n&&this.isMenuActive?(t.preventDefault(),t.stopPropagation(),n.click()):this.blur(t)}},onUpDown:function(t){var e=this.$refs.menu;if(e){if(t.preventDefault(),this.multiple)return this.activateMenu();var n=t.keyCode;e.isBooted=!0,window.requestAnimationFrame((function(){e.getTiles(),S["s"].up===n?e.prevTile():e.nextTile(),e.activeTile&&e.activeTile.click()}))}},selectItem:function(t){var e=this;if(this.multiple){var n=(this.internalValue||[]).slice(),i=this.findExistingIndex(t);if(-1!==i?n.splice(i,1):n.push(t),this.setValue(n.map((function(t){return e.returnObject?t:e.getValue(t)}))),this.$nextTick((function(){e.$refs.menu&&e.$refs.menu.updateDimensions()})),!this.multiple)return;var r=this.getMenuIndex();if(this.setMenuIndex(-1),this.hideSelected)return;this.$nextTick((function(){return e.setMenuIndex(r)}))}else this.setValue(this.returnObject?t:this.getValue(t)),this.isMenuActive=!1},setMenuIndex:function(t){this.$refs.menu&&(this.$refs.menu.listIndex=t)},setSelectedItems:function(){var t,e=this,n=[],r=this.multiple&&Array.isArray(this.internalValue)?this.internalValue:[this.internalValue],o=Object(i["a"])(r);try{var a=function(){var i=t.value,r=e.allItems.findIndex((function(t){return e.valueComparator(e.getValue(t),e.getValue(i))}));r>-1&&n.push(e.allItems[r])};for(o.s();!(t=o.n()).done;)a()}catch(s){o.e(s)}finally{o.f()}this.selectedItems=n},setValue:function(t){var e=this.internalValue;this.internalValue=t,t!==e&&this.$emit("change",t)},isAppendInner:function(t){var e=this.$refs["append-inner"];return e&&(e===t||e.contains(t))}}})},ba0d:function(t,e,n){"use strict";n("99af"),n("caad"),n("c975"),n("d81d"),n("a9e3"),n("b680"),n("d3b7"),n("25f0"),n("2532"),n("498a");var i=n("ade3"),r=n("5530"),o=(n("9e29"),n("c37a")),a=n("0789"),s=n("58df"),c=n("297c"),l=n("a293"),u=n("80d2"),h=n("d9bd");e["a"]=Object(s["a"])(o["a"],c["a"]).extend({name:"v-slider",directives:{ClickOutside:l["a"]},mixins:[c["a"]],props:{disabled:Boolean,inverseLabel:Boolean,max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:1},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:function(t){return"boolean"===typeof t||"always"===t}},thumbSize:{type:[Number,String],default:32},tickLabels:{type:Array,default:function(){return[]}},ticks:{type:[Boolean,String],default:!1,validator:function(t){return"boolean"===typeof t||"always"===t}},tickSize:{type:[Number,String],default:2},trackColor:String,trackFillColor:String,value:[Number,String],vertical:Boolean},data:function(){return{app:null,oldValue:null,keyPressed:0,isFocused:!1,isActive:!1,noClick:!1}},computed:{classes:function(){return Object(r["a"])(Object(r["a"])({},o["a"].options.computed.classes.call(this)),{},{"v-input__slider":!0,"v-input__slider--vertical":this.vertical,"v-input__slider--inverse-label":this.inverseLabel})},internalValue:{get:function(){return this.lazyValue},set:function(t){t=isNaN(t)?this.minValue:t;var e=this.roundValue(Math.min(Math.max(t,this.minValue),this.maxValue));e!==this.lazyValue&&(this.lazyValue=e,this.$emit("input",e))}},trackTransition:function(){return this.keyPressed>=2?"none":""},minValue:function(){return parseFloat(this.min)},maxValue:function(){return parseFloat(this.max)},stepNumeric:function(){return this.step>0?parseFloat(this.step):0},inputWidth:function(){var t=(this.roundValue(this.internalValue)-this.minValue)/(this.maxValue-this.minValue)*100;return t},trackFillStyles:function(){var t,e=this.vertical?"bottom":"left",n=this.vertical?"top":"right",r=this.vertical?"height":"width",o=this.$vuetify.rtl?"auto":"0",a=this.$vuetify.rtl?"0":"auto",s=this.isDisabled?"calc(".concat(this.inputWidth,"% - 10px)"):"".concat(this.inputWidth,"%");return t={transition:this.trackTransition},Object(i["a"])(t,e,o),Object(i["a"])(t,n,a),Object(i["a"])(t,r,s),t},trackStyles:function(){var t,e=this.vertical?this.$vuetify.rtl?"bottom":"top":this.$vuetify.rtl?"left":"right",n=this.vertical?"height":"width",r="0px",o=this.isDisabled?"calc(".concat(100-this.inputWidth,"% - 10px)"):"calc(".concat(100-this.inputWidth,"%)");return t={transition:this.trackTransition},Object(i["a"])(t,e,r),Object(i["a"])(t,n,o),t},showTicks:function(){return this.tickLabels.length>0||!(this.isDisabled||!this.stepNumeric||!this.ticks)},numTicks:function(){return Math.ceil((this.maxValue-this.minValue)/this.stepNumeric)},showThumbLabel:function(){return!this.isDisabled&&!(!this.thumbLabel&&!this.$scopedSlots["thumb-label"])},computedTrackColor:function(){if(!this.isDisabled)return this.trackColor?this.trackColor:this.isDark?this.validationState:this.validationState||"primary lighten-3"},computedTrackFillColor:function(){if(!this.isDisabled)return this.trackFillColor?this.trackFillColor:this.validationState||this.computedColor},computedThumbColor:function(){return this.thumbColor?this.thumbColor:this.validationState||this.computedColor}},watch:{min:function(t){var e=parseFloat(t);e>this.internalValue&&this.$emit("input",e)},max:function(t){var e=parseFloat(t);e<this.internalValue&&this.$emit("input",e)},value:{handler:function(t){this.internalValue=t}}},beforeMount:function(){this.internalValue=this.value},mounted:function(){this.app=document.querySelector("[data-app]")||Object(h["c"])("Missing v-app or a non-body wrapping element with the [data-app] attribute",this)},methods:{genDefaultSlot:function(){var t=[this.genLabel()],e=this.genSlider();return this.inverseLabel?t.unshift(e):t.push(e),t.push(this.genProgress()),t},genSlider:function(){return this.$createElement("div",{class:Object(r["a"])({"v-slider":!0,"v-slider--horizontal":!this.vertical,"v-slider--vertical":this.vertical,"v-slider--focused":this.isFocused,"v-slider--active":this.isActive,"v-slider--disabled":this.isDisabled,"v-slider--readonly":this.isReadonly},this.themeClasses),directives:[{name:"click-outside",value:this.onBlur}],on:{click:this.onSliderClick}},this.genChildren())},genChildren:function(){return[this.genInput(),this.genTrackContainer(),this.genSteps(),this.genThumbContainer(this.internalValue,this.inputWidth,this.isActive,this.isFocused,this.onThumbMouseDown,this.onFocus,this.onBlur)]},genInput:function(){return this.$createElement("input",{attrs:Object(r["a"])({value:this.internalValue,id:this.computedId,disabled:this.isDisabled,readonly:!0,tabindex:-1},this.$attrs)})},genTrackContainer:function(){var t=[this.$createElement("div",this.setBackgroundColor(this.computedTrackColor,{staticClass:"v-slider__track-background",style:this.trackStyles})),this.$createElement("div",this.setBackgroundColor(this.computedTrackFillColor,{staticClass:"v-slider__track-fill",style:this.trackFillStyles}))];return this.$createElement("div",{staticClass:"v-slider__track-container",ref:"track"},t)},genSteps:function(){var t=this;if(!this.step||!this.showTicks)return null;var e=parseFloat(this.tickSize),n=Object(u["g"])(this.numTicks+1),r=this.vertical?"bottom":this.$vuetify.rtl?"right":"left",o=this.vertical?this.$vuetify.rtl?"left":"right":"top";this.vertical&&n.reverse();var a=n.map((function(n){var a,s=[];t.tickLabels[n]&&s.push(t.$createElement("div",{staticClass:"v-slider__tick-label"},t.tickLabels[n]));var c=n*(100/t.numTicks),l=t.$vuetify.rtl?100-t.inputWidth<c:c<t.inputWidth;return t.$createElement("span",{key:n,staticClass:"v-slider__tick",class:{"v-slider__tick--filled":l},style:(a={width:"".concat(e,"px"),height:"".concat(e,"px")},Object(i["a"])(a,r,"calc(".concat(c,"% - ").concat(e/2,"px)")),Object(i["a"])(a,o,"calc(50% - ".concat(e/2,"px)")),a)},s)}));return this.$createElement("div",{staticClass:"v-slider__ticks-container",class:{"v-slider__ticks-container--always-show":"always"===this.ticks||this.tickLabels.length>0}},a)},genThumbContainer:function(t,e,n,i,o,a,s){var c=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"thumb",l=[this.genThumb()],u=this.genThumbLabelContent(t);return this.showThumbLabel&&l.push(this.genThumbLabel(u)),this.$createElement("div",this.setTextColor(this.computedThumbColor,{ref:c,key:c,staticClass:"v-slider__thumb-container",class:{"v-slider__thumb-container--active":n,"v-slider__thumb-container--focused":i,"v-slider__thumb-container--show-label":this.showThumbLabel},style:this.getThumbContainerStyles(e),attrs:Object(r["a"])({role:"slider",tabindex:this.isDisabled?-1:this.$attrs.tabindex?this.$attrs.tabindex:0,"aria-label":this.label,"aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":this.internalValue,"aria-readonly":String(this.isReadonly),"aria-orientation":this.vertical?"vertical":"horizontal"},this.$attrs),on:{focus:a,blur:s,keydown:this.onKeyDown,keyup:this.onKeyUp,touchstart:o,mousedown:o}}),l)},genThumbLabelContent:function(t){return this.$scopedSlots["thumb-label"]?this.$scopedSlots["thumb-label"]({value:t}):[this.$createElement("span",[String(t)])]},genThumbLabel:function(t){var e=Object(u["f"])(this.thumbSize),n=this.vertical?"translateY(20%) translateY(".concat(Number(this.thumbSize)/3-1,"px) translateX(55%) rotate(135deg)"):"translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)";return this.$createElement(a["d"],{props:{origin:"bottom center"}},[this.$createElement("div",{staticClass:"v-slider__thumb-label-container",directives:[{name:"show",value:this.isFocused||this.isActive||"always"===this.thumbLabel}]},[this.$createElement("div",this.setBackgroundColor(this.computedThumbColor,{staticClass:"v-slider__thumb-label",style:{height:e,width:e,transform:n}}),[this.$createElement("div",t)])])])},genThumb:function(){return this.$createElement("div",this.setBackgroundColor(this.computedThumbColor,{staticClass:"v-slider__thumb"}))},getThumbContainerStyles:function(t){var e=this.vertical?"top":"left",n=this.$vuetify.rtl?100-t:t;return n=this.vertical?100-n:n,Object(i["a"])({transition:this.trackTransition},e,"".concat(n,"%"))},onThumbMouseDown:function(t){t.preventDefault(),this.oldValue=this.internalValue,this.keyPressed=2,this.isActive=!0;var e=!u["w"]||{passive:!0,capture:!0},n=!!u["w"]&&{passive:!0};"touches"in t?(this.app.addEventListener("touchmove",this.onMouseMove,n),Object(u["a"])(this.app,"touchend",this.onSliderMouseUp,e)):(this.app.addEventListener("mousemove",this.onMouseMove,n),Object(u["a"])(this.app,"mouseup",this.onSliderMouseUp,e)),this.$emit("start",this.internalValue)},onSliderMouseUp:function(t){t.stopPropagation(),this.keyPressed=0;var e=!!u["w"]&&{passive:!0};this.app.removeEventListener("touchmove",this.onMouseMove,e),this.app.removeEventListener("mousemove",this.onMouseMove,e),this.$emit("mouseup",t),this.$emit("end",this.internalValue),Object(u["i"])(this.oldValue,this.internalValue)||(this.$emit("change",this.internalValue),this.noClick=!0),this.isActive=!1},onMouseMove:function(t){var e=this.parseMouseMove(t),n=e.value;this.internalValue=n},onKeyDown:function(t){if(this.isInteractive){var e=this.parseKeyDown(t,this.internalValue);null==e||e<this.minValue||e>this.maxValue||(this.internalValue=e,this.$emit("change",e))}},onKeyUp:function(){this.keyPressed=0},onSliderClick:function(t){if(this.noClick)this.noClick=!1;else{var e=this.$refs.thumb;e.focus(),this.onMouseMove(t),this.$emit("change",this.internalValue)}},onBlur:function(t){this.isFocused=!1,this.$emit("blur",t)},onFocus:function(t){this.isFocused=!0,this.$emit("focus",t)},parseMouseMove:function(t){var e=this.vertical?"top":"left",n=this.vertical?"height":"width",i=this.vertical?"clientY":"clientX",r=this.$refs.track.getBoundingClientRect(),o=r[e],a=r[n],s="touches"in t?t.touches[0][i]:t[i],c=Math.min(Math.max((s-o)/a,0),1)||0;this.vertical&&(c=1-c),this.$vuetify.rtl&&(c=1-c);var l=s>=o&&s<=o+a,u=parseFloat(this.min)+c*(this.maxValue-this.minValue);return{value:u,isInsideTrack:l}},parseKeyDown:function(t,e){if(this.isInteractive){var n=u["s"].pageup,i=u["s"].pagedown,r=u["s"].end,o=u["s"].home,a=u["s"].left,s=u["s"].right,c=u["s"].down,l=u["s"].up;if([n,i,r,o,a,s,c,l].includes(t.keyCode)){t.preventDefault();var h=this.stepNumeric||1,f=(this.maxValue-this.minValue)/h;if([a,s,c,l].includes(t.keyCode)){this.keyPressed+=1;var d=this.$vuetify.rtl?[a,l]:[s,l],p=d.includes(t.keyCode)?1:-1,v=t.shiftKey?3:t.ctrlKey?2:1;e+=p*h*v}else if(t.keyCode===o)e=this.minValue;else if(t.keyCode===r)e=this.maxValue;else{var m=t.keyCode===i?1:-1;e-=m*h*(f>100?f/10:10)}return e}}},roundValue:function(t){if(!this.stepNumeric)return t;var e=this.step.toString().trim(),n=e.indexOf(".")>-1?e.length-e.indexOf(".")-1:0,i=this.minValue%this.stepNumeric,r=Math.round((t-i)/this.stepNumeric)*this.stepNumeric+i;return parseFloat(Math.min(r,this.maxValue).toFixed(n))}}})},ba87:function(t,e,n){"use strict";n("a9e3");var i=n("5530"),r=(n("1b2c"),n("a9ad")),o=n("7560"),a=n("58df"),s=n("80d2"),c=Object(a["a"])(o["a"]).extend({name:"v-label",functional:!0,props:{absolute:Boolean,color:{type:String,default:"primary"},disabled:Boolean,focused:Boolean,for:String,left:{type:[Number,String],default:0},right:{type:[Number,String],default:"auto"},value:Boolean},render:function(t,e){var n=e.children,a=e.listeners,c=e.props,l={staticClass:"v-label",class:Object(i["a"])({"v-label--active":c.value,"v-label--is-disabled":c.disabled},Object(o["b"])(e)),attrs:{for:c.for,"aria-hidden":!c.for},on:a,style:{left:Object(s["f"])(c.left),right:Object(s["f"])(c.right),position:c.absolute?"absolute":"relative"},ref:"label"};return t("label",r["a"].options.methods.setTextColor(c.focused&&c.color,l),n)}});e["a"]=c},bb2f:function(t,e,n){var i=n("d039");t.exports=!i((function(){return Object.isExtensible(Object.preventExtensions({}))}))},bd0c:function(t,e,n){},c04e:function(t,e,n){var i=n("861d");t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},c37a:function(t,e,n){"use strict";n("99af"),n("4de4"),n("d81d"),n("a9e3"),n("ac1f"),n("1276");var i=n("5530"),r=(n("d191"),n("9d26")),o=n("ba87"),a=(n("8ff2"),n("a9ad")),s=n("7560"),c=n("58df"),l=n("80d2"),u=Object(c["a"])(a["a"],s["a"]).extend({name:"v-messages",props:{value:{type:Array,default:function(){return[]}}},methods:{genChildren:function(){return this.$createElement("transition-group",{staticClass:"v-messages__wrapper",attrs:{name:"message-transition",tag:"div"}},this.value.map(this.genMessage))},genMessage:function(t,e){return this.$createElement("div",{staticClass:"v-messages__message",key:e},Object(l["o"])(this,"default",{message:t,key:e})||[t])}},render:function(t){return t("div",this.setTextColor(this.color,{staticClass:"v-messages",class:this.themeClasses}),[this.genChildren()])}}),h=u,f=n("7e2b"),d=n("38cb"),p=n("d9f7"),v=Object(c["a"])(f["a"],d["a"]),m=v.extend().extend({name:"v-input",inheritAttrs:!1,props:{appendIcon:String,backgroundColor:{type:String,default:""},dense:Boolean,height:[Number,String],hideDetails:[Boolean,String],hint:String,id:String,label:String,loading:Boolean,persistentHint:Boolean,prependIcon:String,value:null},data:function(){return{lazyValue:this.value,hasMouseDown:!1}},computed:{classes:function(){return Object(i["a"])({"v-input--has-state":this.hasState,"v-input--hide-details":!this.showDetails,"v-input--is-label-active":this.isLabelActive,"v-input--is-dirty":this.isDirty,"v-input--is-disabled":this.isDisabled,"v-input--is-focused":this.isFocused,"v-input--is-loading":!1!==this.loading&&null!=this.loading,"v-input--is-readonly":this.isReadonly,"v-input--dense":this.dense},this.themeClasses)},computedId:function(){return this.id||"input-".concat(this._uid)},hasDetails:function(){return this.messagesToDisplay.length>0},hasHint:function(){return!this.hasMessages&&!!this.hint&&(this.persistentHint||this.isFocused)},hasLabel:function(){return!(!this.$slots.label&&!this.label)},internalValue:{get:function(){return this.lazyValue},set:function(t){this.lazyValue=t,this.$emit(this.$_modelEvent,t)}},isDirty:function(){return!!this.lazyValue},isLabelActive:function(){return this.isDirty},messagesToDisplay:function(){var t=this;return this.hasHint?[this.hint]:this.hasMessages?this.validations.map((function(e){if("string"===typeof e)return e;var n=e(t.internalValue);return"string"===typeof n?n:""})).filter((function(t){return""!==t})):[]},showDetails:function(){return!1===this.hideDetails||"auto"===this.hideDetails&&this.hasDetails}},watch:{value:function(t){this.lazyValue=t}},beforeCreate:function(){this.$_modelEvent=this.$options.model&&this.$options.model.event||"input"},methods:{genContent:function(){return[this.genPrependSlot(),this.genControl(),this.genAppendSlot()]},genControl:function(){return this.$createElement("div",{staticClass:"v-input__control"},[this.genInputSlot(),this.genMessages()])},genDefaultSlot:function(){return[this.genLabel(),this.$slots.default]},genIcon:function(t,e){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=this["".concat(t,"Icon")],a="click:".concat(Object(l["r"])(t)),s=!(!this.listeners$[a]&&!e),c=Object(p["a"])({attrs:{"aria-label":s?Object(l["r"])(t).split("-")[0]+" icon":void 0,color:this.validationState,dark:this.dark,disabled:this.isDisabled,light:this.light},on:s?{click:function(t){t.preventDefault(),t.stopPropagation(),n.$emit(a,t),e&&e(t)},mouseup:function(t){t.preventDefault(),t.stopPropagation()}}:void 0},i);return this.$createElement("div",{staticClass:"v-input__icon",class:t?"v-input__icon--".concat(Object(l["r"])(t)):void 0},[this.$createElement(r["a"],c,o)])},genInputSlot:function(){return this.$createElement("div",this.setBackgroundColor(this.backgroundColor,{staticClass:"v-input__slot",style:{height:Object(l["f"])(this.height)},on:{click:this.onClick,mousedown:this.onMouseDown,mouseup:this.onMouseUp},ref:"input-slot"}),[this.genDefaultSlot()])},genLabel:function(){return this.hasLabel?this.$createElement(o["a"],{props:{color:this.validationState,dark:this.dark,disabled:this.isDisabled,focused:this.hasState,for:this.computedId,light:this.light}},this.$slots.label||this.label):null},genMessages:function(){var t=this;return this.showDetails?this.$createElement(h,{props:{color:this.hasHint?"":this.validationState,dark:this.dark,light:this.light,value:this.messagesToDisplay},attrs:{role:this.hasMessages?"alert":null},scopedSlots:{default:function(e){return Object(l["o"])(t,"message",e)}}}):null},genSlot:function(t,e,n){if(!n.length)return null;var i="".concat(t,"-").concat(e);return this.$createElement("div",{staticClass:"v-input__".concat(i),ref:i},n)},genPrependSlot:function(){var t=[];return this.$slots.prepend?t.push(this.$slots.prepend):this.prependIcon&&t.push(this.genIcon("prepend")),this.genSlot("prepend","outer",t)},genAppendSlot:function(){var t=[];return this.$slots.append?t.push(this.$slots.append):this.appendIcon&&t.push(this.genIcon("append")),this.genSlot("append","outer",t)},onClick:function(t){this.$emit("click",t)},onMouseDown:function(t){this.hasMouseDown=!0,this.$emit("mousedown",t)},onMouseUp:function(t){this.hasMouseDown=!1,this.$emit("mouseup",t)}},render:function(t){return t("div",this.setTextColor(this.validationState,{staticClass:"v-input",class:this.classes}),this.genContent())}});e["a"]=m},c430:function(t,e){t.exports=!1},c6b6:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},c6cd:function(t,e,n){var i=n("da84"),r=n("ce4e"),o="__core-js_shared__",a=i[o]||r(o,{});t.exports=a},c740:function(t,e,n){"use strict";var i=n("23e7"),r=n("b727").findIndex,o=n("44d2"),a=n("ae40"),s="findIndex",c=!0,l=a(s);s in[]&&Array(1)[s]((function(){c=!1})),i({target:"Array",proto:!0,forced:c||!l},{findIndex:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),o(s)},c7cd:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),o=n("af03");i({target:"String",proto:!0,forced:o("fixed")},{fixed:function(){return r(this,"tt","","")}})},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(i){"object"===typeof window&&(n=window)}t.exports=n},c8d2:function(t,e,n){var i=n("d039"),r=n("5899"),o="​…᠎";t.exports=function(t){return i((function(){return!!r[t]()||o[t]()!=o||r[t].name!==t}))}},c96a:function(t,e,n){"use strict";var i=n("23e7"),r=n("857a"),o=n("af03");i({target:"String",proto:!0,forced:o("small")},{small:function(){return r(this,"small","","")}})},c975:function(t,e,n){"use strict";var i=n("23e7"),r=n("4d64").indexOf,o=n("a640"),a=n("ae40"),s=[].indexOf,c=!!s&&1/[1].indexOf(1,-0)<0,l=o("indexOf"),u=a("indexOf",{ACCESSORS:!0,1:0});i({target:"Array",proto:!0,forced:c||!l||!u},{indexOf:function(t){return c?s.apply(this,arguments)||0:r(this,t,arguments.length>1?arguments[1]:void 0)}})},ca84:function(t,e,n){var i=n("5135"),r=n("fc6a"),o=n("4d64").indexOf,a=n("d012");t.exports=function(t,e){var n,s=r(t),c=0,l=[];for(n in s)!i(a,n)&&i(s,n)&&l.push(n);while(e.length>c)i(s,n=e[c++])&&(~o(l,n)||l.push(n));return l}},caad:function(t,e,n){"use strict";var i=n("23e7"),r=n("4d64").includes,o=n("44d2"),a=n("ae40"),s=a("indexOf",{ACCESSORS:!0,1:0});i({target:"Array",proto:!0,forced:!s},{includes:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}}),o("includes")},cb29:function(t,e,n){var i=n("23e7"),r=n("81d5"),o=n("44d2");i({target:"Array",proto:!0},{fill:r}),o("fill")},cc12:function(t,e,n){var i=n("da84"),r=n("861d"),o=i.document,a=r(o)&&r(o.createElement);t.exports=function(t){return a?o.createElement(t):{}}},cca6:function(t,e,n){var i=n("23e7"),r=n("60da");i({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},cdf9:function(t,e,n){var i=n("825a"),r=n("861d"),o=n("f069");t.exports=function(t,e){if(i(t),r(e)&&e.constructor===t)return e;var n=o.f(t),a=n.resolve;return a(e),n.promise}},ce4e:function(t,e,n){var i=n("da84"),r=n("9112");t.exports=function(t,e){try{r(i,t,e)}catch(n){i[t]=e}return e}},cf36:function(t,e,n){},d012:function(t,e){t.exports={}},d039:function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},d066:function(t,e,n){var i=n("428f"),r=n("da84"),o=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?o(i[t])||o(r[t]):i[t]&&i[t][e]||r[t]&&r[t][e]}},d10f:function(t,e,n){"use strict";var i=n("2b0e");e["a"]=i["a"].extend({name:"ssr-bootable",data:function(){return{isBooted:!1}},mounted:function(){var t=this;window.requestAnimationFrame((function(){t.$el.setAttribute("data-booted","true"),t.isBooted=!0}))}})},d191:function(t,e,n){},d1e7:function(t,e,n){"use strict";var i={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!i.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:i},d28b:function(t,e,n){var i=n("746f");i("iterator")},d2bb:function(t,e,n){var i=n("825a"),r=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set,t.call(n,[]),e=n instanceof Array}catch(o){}return function(n,o){return i(n),r(o),e?t.call(n,o):n.__proto__=o,n}}():void 0)},d3b7:function(t,e,n){var i=n("00ee"),r=n("6eeb"),o=n("b041");i||r(Object.prototype,"toString",o,{unsafe:!0})},d44e:function(t,e,n){var i=n("9bf2").f,r=n("5135"),o=n("b622"),a=o("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,a)&&i(t,a,{configurable:!0,value:e})}},d58f:function(t,e,n){var i=n("1c0b"),r=n("7b0b"),o=n("44ad"),a=n("50c4"),s=function(t){return function(e,n,s,c){i(n);var l=r(e),u=o(l),h=a(l.length),f=t?h-1:0,d=t?-1:1;if(s<2)while(1){if(f in u){c=u[f],f+=d;break}if(f+=d,t?f<0:h<=f)throw TypeError("Reduce of empty array with no initial value")}for(;t?f>=0:h>f;f+=d)f in u&&(c=n(c,u[f],f,l));return c}};t.exports={left:s(!1),right:s(!0)}},d784:function(t,e,n){"use strict";n("ac1f");var i=n("6eeb"),r=n("d039"),o=n("b622"),a=n("9263"),s=n("9112"),c=o("species"),l=!r((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),u=function(){return"$0"==="a".replace(/./,"$0")}(),h=o("replace"),f=function(){return!!/./[h]&&""===/./[h]("a","$0")}(),d=!r((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));t.exports=function(t,e,n,h){var p=o(t),v=!r((function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})),m=v&&!r((function(){var e=!1,n=/a/;return"split"===t&&(n={},n.constructor={},n.constructor[c]=function(){return n},n.flags="",n[p]=/./[p]),n.exec=function(){return e=!0,null},n[p](""),!e}));if(!v||!m||"replace"===t&&(!l||!u||f)||"split"===t&&!d){var g=/./[p],b=n(p,""[t],(function(t,e,n,i,r){return e.exec===a?v&&!r?{done:!0,value:g.call(e,n,i)}:{done:!0,value:t.call(n,e,i)}:{done:!1}}),{REPLACE_KEEPS_$0:u,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:f}),y=b[0],w=b[1];i(String.prototype,t,y),i(RegExp.prototype,p,2==e?function(t,e){return w.call(t,this,e)}:function(t){return w.call(t,this)})}h&&s(RegExp.prototype[p],"sham",!0)}},d81d:function(t,e,n){"use strict";var i=n("23e7"),r=n("b727").map,o=n("1dde"),a=n("ae40"),s=o("map"),c=a("map");i({target:"Array",proto:!0,forced:!s||!c},{map:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},d9bd:function(t,e,n){"use strict";n.d(e,"c",(function(){return o})),n.d(e,"b",(function(){return a})),n.d(e,"d",(function(){return s})),n.d(e,"a",(function(){return c})),n.d(e,"e",(function(){return l}));n("99af"),n("caad"),n("a15b"),n("d81d"),n("b0c0"),n("ac1f"),n("2532"),n("466d"),n("38cf"),n("5319");var i=n("f309");function r(t,e,n){if(!i["a"].config.silent){if(n&&(e={_isVue:!0,$parent:n,$options:e}),e){if(e.$_alreadyWarned=e.$_alreadyWarned||[],e.$_alreadyWarned.includes(t))return;e.$_alreadyWarned.push(t)}return"[Vuetify] ".concat(t)+(e?d(e):"")}}function o(t,e,n){var i=r(t,e,n);null!=i&&console.warn(i)}function a(t,e,n){var i=r(t,e,n);null!=i&&console.error(i)}function s(t,e,n,i){o("[UPGRADE] '".concat(t,"' is deprecated, use '").concat(e,"' instead."),n,i)}function c(t,e,n,i){a("[BREAKING] '".concat(t,"' has been removed, use '").concat(e,"' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide"),n,i)}function l(t,e,n){o("[REMOVED] '".concat(t,"' has been removed. You can safely omit it."),e,n)}var u=/(?:^|[-_])(\w)/g,h=function(t){return t.replace(u,(function(t){return t.toUpperCase()})).replace(/[-_]/g,"")};function f(t,e){if(t.$root===t)return"<Root>";var n="function"===typeof t&&null!=t.cid?t.options:t._isVue?t.$options||t.constructor.options:t||{},i=n.name||n._componentTag,r=n.__file;if(!i&&r){var o=r.match(/([^/\\]+)\.vue$/);i=o&&o[1]}return(i?"<".concat(h(i),">"):"<Anonymous>")+(r&&!1!==e?" at ".concat(r):"")}function d(t){if(t._isVue&&t.$parent){var e=[],n=0;while(t){if(e.length>0){var i=e[e.length-1];if(i.constructor===t.constructor){n++,t=t.$parent;continue}n>0&&(e[e.length-1]=[i,n],n=0)}e.push(t),t=t.$parent}return"\n\nfound in\n\n"+e.map((function(t,e){return"".concat(0===e?"---\x3e ":" ".repeat(5+2*e)).concat(Array.isArray(t)?"".concat(f(t[0]),"... (").concat(t[1]," recursive calls)"):f(t))})).join("\n")}return"\n\n(found in ".concat(f(t),")")}},d9f7:function(t,e,n){"use strict";n.d(e,"a",(function(){return u})),n.d(e,"b",(function(){return d}));n("99af"),n("b64b"),n("ac1f"),n("1276"),n("498a");var i=n("2909"),r=n("5530"),o=n("3835"),a=n("b85c"),s=n("80d2"),c={styleList:/;(?![^(]*\))/g,styleProp:/:(.*)/};function l(t){var e,n={},i=Object(a["a"])(t.split(c.styleList));try{for(i.s();!(e=i.n()).done;){var r=e.value,l=r.split(c.styleProp),u=Object(o["a"])(l,2),h=u[0],f=u[1];h=h.trim(),h&&("string"===typeof f&&(f=f.trim()),n[Object(s["c"])(h)]=f)}}catch(d){i.e(d)}finally{i.f()}return n}function u(){var t,e={},n=arguments.length;while(n--)for(var i=0,o=Object.keys(arguments[n]);i<o.length;i++)switch(t=o[i],t){case"class":case"directives":arguments[n][t]&&(e[t]=f(e[t],arguments[n][t]));break;case"style":arguments[n][t]&&(e[t]=h(e[t],arguments[n][t]));break;case"staticClass":if(!arguments[n][t])break;void 0===e[t]&&(e[t]=""),e[t]&&(e[t]+=" "),e[t]+=arguments[n][t].trim();break;case"on":case"nativeOn":arguments[n][t]&&(e[t]=d(e[t],arguments[n][t]));break;case"attrs":case"props":case"domProps":case"scopedSlots":case"staticStyle":case"hook":case"transition":if(!arguments[n][t])break;e[t]||(e[t]={}),e[t]=Object(r["a"])(Object(r["a"])({},arguments[n][t]),e[t]);break;default:e[t]||(e[t]=arguments[n][t])}return e}function h(t,e){return t?e?(t=Object(s["z"])("string"===typeof t?l(t):t),t.concat("string"===typeof e?l(e):e)):t:e}function f(t,e){return e?t&&t?Object(s["z"])(t).concat(e):e:t}function d(t,e){if(!t)return e;if(!e)return t;for(var n,r=0,o=Object.keys(e);r<o.length;r++){var a;if(n=o[r],t[n])t[n]=Object(s["z"])(t[n]),(a=t[n]).push.apply(a,Object(i["a"])(Object(s["z"])(e[n])));else t[n]=e[n]}return t}},da13:function(t,e,n){"use strict";var i=n("5530"),r=(n("61d2"),n("a9ad")),o=n("1c87"),a=n("4e82"),s=n("7560"),c=n("f2e7"),l=n("5607"),u=n("80d2"),h=n("d9bd"),f=n("58df"),d=Object(f["a"])(r["a"],o["a"],s["a"],Object(a["a"])("listItemGroup"),Object(c["b"])("inputValue"));e["a"]=d.extend().extend({name:"v-list-item",directives:{Ripple:l["a"]},inheritAttrs:!1,inject:{isInGroup:{default:!1},isInList:{default:!1},isInMenu:{default:!1},isInNav:{default:!1}},props:{activeClass:{type:String,default:function(){return this.listItemGroup?this.listItemGroup.activeClass:""}},dense:Boolean,inactive:Boolean,link:Boolean,selectable:{type:Boolean},tag:{type:String,default:"div"},threeLine:Boolean,twoLine:Boolean,value:null},data:function(){return{proxyClass:"v-list-item--active"}},computed:{classes:function(){return Object(i["a"])(Object(i["a"])({"v-list-item":!0},o["a"].options.computed.classes.call(this)),{},{"v-list-item--dense":this.dense,"v-list-item--disabled":this.disabled,"v-list-item--link":this.isClickable&&!this.inactive,"v-list-item--selectable":this.selectable,"v-list-item--three-line":this.threeLine,"v-list-item--two-line":this.twoLine},this.themeClasses)},isClickable:function(){return Boolean(o["a"].options.computed.isClickable.call(this)||this.listItemGroup)}},created:function(){this.$attrs.hasOwnProperty("avatar")&&Object(h["e"])("avatar",this)},methods:{click:function(t){t.detail&&this.$el.blur(),this.$emit("click",t),this.to||this.toggle()},genAttrs:function(){var t=Object(i["a"])({"aria-disabled":!!this.disabled||void 0,tabindex:this.isClickable&&!this.disabled?0:-1},this.$attrs);return this.$attrs.hasOwnProperty("role")||this.isInNav||(this.isInGroup?(t.role="listitem",t["aria-selected"]=String(this.isActive)):this.isInMenu?(t.role=this.isClickable?"menuitem":void 0,t.id=t.id||"list-item-".concat(this._uid)):this.isInList&&(t.role="listitem")),t}},render:function(t){var e=this,n=this.generateRouteLink(),r=n.tag,o=n.data;o.attrs=Object(i["a"])(Object(i["a"])({},o.attrs),this.genAttrs()),o[this.to?"nativeOn":"on"]=Object(i["a"])(Object(i["a"])({},o[this.to?"nativeOn":"on"]),{},{keydown:function(t){t.keyCode===u["s"].enter&&e.click(t),e.$emit("keydown",t)}}),this.inactive&&(r="div"),this.inactive&&this.to&&(o.on=o.nativeOn,delete o.nativeOn);var a=this.$scopedSlots.default?this.$scopedSlots.default({active:this.isActive,toggle:this.toggle}):this.$slots.default;return t(r,this.setTextColor(this.color,o),a)}})},da84:function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||Function("return this")()}).call(this,n("c8ba"))},db42:function(t,e,n){},dbb4:function(t,e,n){var i=n("23e7"),r=n("83ab"),o=n("56ef"),a=n("fc6a"),s=n("06cf"),c=n("8418");i({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(t){var e,n,i=a(t),r=s.f,l=o(i),u={},h=0;while(l.length>h)n=r(i,e=l[h++]),void 0!==n&&c(u,e,n);return u}})},dc22:function(t,e,n){"use strict";function i(t,e){var n=e.value,i=e.options||{passive:!0};window.addEventListener("resize",n,i),t._onResize={callback:n,options:i},e.modifiers&&e.modifiers.quiet||n()}function r(t){if(t._onResize){var e=t._onResize,n=e.callback,i=e.options;window.removeEventListener("resize",n,i),delete t._onResize}}var o={inserted:i,unbind:r};e["a"]=o},dca8:function(t,e,n){var i=n("23e7"),r=n("bb2f"),o=n("d039"),a=n("861d"),s=n("f183").onFreeze,c=Object.freeze,l=o((function(){c(1)}));i({target:"Object",stat:!0,forced:l,sham:!r},{freeze:function(t){return c&&a(t)?c(s(t)):t}})},ddb0:function(t,e,n){var i=n("da84"),r=n("fdbc"),o=n("e260"),a=n("9112"),s=n("b622"),c=s("iterator"),l=s("toStringTag"),u=o.values;for(var h in r){var f=i[h],d=f&&f.prototype;if(d){if(d[c]!==u)try{a(d,c,u)}catch(v){d[c]=u}if(d[l]||a(d,l,h),r[h])for(var p in o)if(d[p]!==o[p])try{a(d,p,o[p])}catch(v){d[p]=o[p]}}}},df75:function(t,e,n){var i=n("ca84"),r=n("7839");t.exports=Object.keys||function(t){return i(t,r)}},df86:function(t,e,n){},e01a:function(t,e,n){"use strict";var i=n("23e7"),r=n("83ab"),o=n("da84"),a=n("5135"),s=n("861d"),c=n("9bf2").f,l=n("e893"),u=o.Symbol;if(r&&"function"==typeof u&&(!("description"in u.prototype)||void 0!==u().description)){var h={},f=function(){var t=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),e=this instanceof f?new u(t):void 0===t?u():u(t);return""===t&&(h[e]=!0),e};l(f,u);var d=f.prototype=u.prototype;d.constructor=f;var p=d.toString,v="Symbol(test)"==String(u("test")),m=/^Symbol\((.*)\)[^)]+$/;c(d,"description",{configurable:!0,get:function(){var t=s(this)?this.valueOf():this,e=p.call(t);if(a(h,t))return"";var n=v?e.slice(7,-1):e.replace(m,"$1");return""===n?void 0:n}}),i({global:!0,forced:!0},{Symbol:f})}},e163:function(t,e,n){var i=n("5135"),r=n("7b0b"),o=n("f772"),a=n("e177"),s=o("IE_PROTO"),c=Object.prototype;t.exports=a?Object.getPrototypeOf:function(t){return t=r(t),i(t,s)?t[s]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?c:null}},e177:function(t,e,n){var i=n("d039");t.exports=!i((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},e260:function(t,e,n){"use strict";var i=n("fc6a"),r=n("44d2"),o=n("3f8c"),a=n("69f3"),s=n("7dd0"),c="Array Iterator",l=a.set,u=a.getterFor(c);t.exports=s(Array,"Array",(function(t,e){l(this,{type:c,target:i(t),index:0,kind:e})}),(function(){var t=u(this),e=t.target,n=t.kind,i=t.index++;return!e||i>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:i,done:!1}:"values"==n?{value:e[i],done:!1}:{value:[i,e[i]],done:!1}}),"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},e2cc:function(t,e,n){var i=n("6eeb");t.exports=function(t,e,n){for(var r in e)i(t,r,e[r],n);return t}},e439:function(t,e,n){var i=n("23e7"),r=n("d039"),o=n("fc6a"),a=n("06cf").f,s=n("83ab"),c=r((function(){a(1)})),l=!s||c;i({target:"Object",stat:!0,forced:l,sham:!s},{getOwnPropertyDescriptor:function(t,e){return a(o(t),e)}})},e449:function(t,e,n){"use strict";n("99af"),n("7db0"),n("a630"),n("caad"),n("c975"),n("a9e3"),n("2532"),n("3ca3"),n("498a");var i=n("ade3"),r=n("2909"),o=n("5530"),a=(n("ee6f"),n("480e")),s=n("4ad4"),c=n("16b7"),l=n("b848"),u=n("75eb"),h=(n("d3b7"),n("fe6c")),f=n("21be"),d=n("58df"),p=n("80d2"),v=Object(d["a"])(f["a"],h["a"],s["a"]),m=v.extend().extend({name:"menuable",props:{allowOverflow:Boolean,light:Boolean,dark:Boolean,maxWidth:{type:[Number,String],default:"auto"},minWidth:[Number,String],nudgeBottom:{type:[Number,String],default:0},nudgeLeft:{type:[Number,String],default:0},nudgeRight:{type:[Number,String],default:0},nudgeTop:{type:[Number,String],default:0},nudgeWidth:{type:[Number,String],default:0},offsetOverflow:Boolean,openOnClick:Boolean,positionX:{type:Number,default:null},positionY:{type:Number,default:null},zIndex:{type:[Number,String],default:null}},data:function(){return{absoluteX:0,absoluteY:0,activatedBy:null,activatorFixed:!1,dimensions:{activator:{top:0,left:0,bottom:0,right:0,width:0,height:0,offsetTop:0,scrollHeight:0,offsetLeft:0},content:{top:0,left:0,bottom:0,right:0,width:0,height:0,offsetTop:0,scrollHeight:0}},hasJustFocused:!1,hasWindow:!1,inputActivator:!1,isContentActive:!1,pageWidth:0,pageYOffset:0,stackClass:"v-menu__content--active",stackMinZIndex:6}},computed:{computedLeft:function(){var t=this.dimensions.activator,e=this.dimensions.content,n=(!1!==this.attach?t.offsetLeft:t.left)||0,i=Math.max(t.width,e.width),r=0;if(r+=this.left?n-(i-t.width):n,this.offsetX){var o=isNaN(Number(this.maxWidth))?t.width:Math.min(t.width,Number(this.maxWidth));r+=this.left?-o:t.width}return this.nudgeLeft&&(r-=parseInt(this.nudgeLeft)),this.nudgeRight&&(r+=parseInt(this.nudgeRight)),r},computedTop:function(){var t=this.dimensions.activator,e=this.dimensions.content,n=0;return this.top&&(n+=t.height-e.height),!1!==this.attach?n+=t.offsetTop:n+=t.top+this.pageYOffset,this.offsetY&&(n+=this.top?-t.height:t.height),this.nudgeTop&&(n-=parseInt(this.nudgeTop)),this.nudgeBottom&&(n+=parseInt(this.nudgeBottom)),n},hasActivator:function(){return!!this.$slots.activator||!!this.$scopedSlots.activator||!!this.activator||!!this.inputActivator}},watch:{disabled:function(t){t&&this.callDeactivate()},isActive:function(t){this.disabled||(t?this.callActivate():this.callDeactivate())},positionX:"updateDimensions",positionY:"updateDimensions"},beforeMount:function(){this.hasWindow="undefined"!==typeof window},methods:{absolutePosition:function(){return{offsetTop:0,offsetLeft:0,scrollHeight:0,top:this.positionY||this.absoluteY,bottom:this.positionY||this.absoluteY,left:this.positionX||this.absoluteX,right:this.positionX||this.absoluteX,height:0,width:0}},activate:function(){},calcLeft:function(t){return Object(p["f"])(!1!==this.attach?this.computedLeft:this.calcXOverflow(this.computedLeft,t))},calcTop:function(){return Object(p["f"])(!1!==this.attach?this.computedTop:this.calcYOverflow(this.computedTop))},calcXOverflow:function(t,e){var n=t+e-this.pageWidth+12;return t=(!this.left||this.right)&&n>0?Math.max(t-n,0):Math.max(t,12),t+this.getOffsetLeft()},calcYOverflow:function(t){var e=this.getInnerHeight(),n=this.pageYOffset+e,i=this.dimensions.activator,r=this.dimensions.content.height,o=t+r,a=n<o;return a&&this.offsetOverflow&&i.top>r?t=this.pageYOffset+(i.top-r):a&&!this.allowOverflow?t=n-r-12:t<this.pageYOffset&&!this.allowOverflow&&(t=this.pageYOffset+12),t<12?12:t},callActivate:function(){this.hasWindow&&this.activate()},callDeactivate:function(){this.isContentActive=!1,this.deactivate()},checkForPageYOffset:function(){this.hasWindow&&(this.pageYOffset=this.activatorFixed?0:this.getOffsetTop())},checkActivatorFixed:function(){if(!1===this.attach){var t=this.getActivator();while(t){if("fixed"===window.getComputedStyle(t).position)return void(this.activatorFixed=!0);t=t.offsetParent}this.activatorFixed=!1}},deactivate:function(){},genActivatorListeners:function(){var t=this,e=s["a"].options.methods.genActivatorListeners.call(this),n=e.click;return e.click=function(e){t.openOnClick&&n&&n(e),t.absoluteX=e.clientX,t.absoluteY=e.clientY},e},getInnerHeight:function(){return this.hasWindow?window.innerHeight||document.documentElement.clientHeight:0},getOffsetLeft:function(){return this.hasWindow?window.pageXOffset||document.documentElement.scrollLeft:0},getOffsetTop:function(){return this.hasWindow?window.pageYOffset||document.documentElement.scrollTop:0},getRoundedBoundedClientRect:function(t){var e=t.getBoundingClientRect();return{top:Math.round(e.top),left:Math.round(e.left),bottom:Math.round(e.bottom),right:Math.round(e.right),width:Math.round(e.width),height:Math.round(e.height)}},measure:function(t){if(!t||!this.hasWindow)return null;var e=this.getRoundedBoundedClientRect(t);if(!1!==this.attach){var n=window.getComputedStyle(t);e.left=parseInt(n.marginLeft),e.top=parseInt(n.marginTop)}return e},sneakPeek:function(t){var e=this;requestAnimationFrame((function(){var n=e.$refs.content;n&&"none"===n.style.display?(n.style.display="inline-block",t(),n.style.display="none"):t()}))},startTransition:function(){var t=this;return new Promise((function(e){return requestAnimationFrame((function(){t.isContentActive=t.hasJustFocused=t.isActive,e()}))}))},updateDimensions:function(){var t=this;this.hasWindow="undefined"!==typeof window,this.checkActivatorFixed(),this.checkForPageYOffset(),this.pageWidth=document.documentElement.clientWidth;var e={activator:Object(o["a"])({},this.dimensions.activator),content:Object(o["a"])({},this.dimensions.content)};if(!this.hasActivator||this.absolute)e.activator=this.absolutePosition();else{var n=this.getActivator();if(!n)return;e.activator=this.measure(n),e.activator.offsetLeft=n.offsetLeft,!1!==this.attach?e.activator.offsetTop=n.offsetTop:e.activator.offsetTop=0}this.sneakPeek((function(){t.$refs.content&&(e.content=t.measure(t.$refs.content)),t.dimensions=e}))}}}),g=n("e4d3"),b=n("a236"),y=n("f2e7"),w=n("7560"),x=n("a293"),O=n("dc22"),_=n("d9bd"),S=Object(d["a"])(l["a"],c["a"],u["a"],m,g["a"],b["a"],y["a"],w["a"]);e["a"]=S.extend({name:"v-menu",provide:function(){return{isInMenu:!0,theme:this.theme}},directives:{ClickOutside:x["a"],Resize:O["a"]},props:{auto:Boolean,closeOnClick:{type:Boolean,default:!0},closeOnContentClick:{type:Boolean,default:!0},disabled:Boolean,disableKeys:Boolean,maxHeight:{type:[Number,String],default:"auto"},offsetX:Boolean,offsetY:Boolean,openOnClick:{type:Boolean,default:!0},openOnHover:Boolean,origin:{type:String,default:"top left"},transition:{type:[Boolean,String],default:"v-menu-transition"}},data:function(){return{calculatedTopAuto:0,defaultOffset:8,hasJustFocused:!1,listIndex:-1,resizeTimeout:0,selectedIndex:null,tiles:[]}},computed:{activeTile:function(){return this.tiles[this.listIndex]},calculatedLeft:function(){var t=Math.max(this.dimensions.content.width,parseFloat(this.calculatedMinWidth));return this.auto?Object(p["f"])(this.calcXOverflow(this.calcLeftAuto(),t))||"0":this.calcLeft(t)||"0"},calculatedMaxHeight:function(){var t=this.auto?"200px":Object(p["f"])(this.maxHeight);return t||"0"},calculatedMaxWidth:function(){return Object(p["f"])(this.maxWidth)||"0"},calculatedMinWidth:function(){if(this.minWidth)return Object(p["f"])(this.minWidth)||"0";var t=Math.min(this.dimensions.activator.width+Number(this.nudgeWidth)+(this.auto?16:0),Math.max(this.pageWidth-24,0)),e=isNaN(parseInt(this.calculatedMaxWidth))?t:parseInt(this.calculatedMaxWidth);return Object(p["f"])(Math.min(e,t))||"0"},calculatedTop:function(){var t=this.auto?Object(p["f"])(this.calcYOverflow(this.calculatedTopAuto)):this.calcTop();return t||"0"},hasClickableTiles:function(){return Boolean(this.tiles.find((function(t){return t.tabIndex>-1})))},styles:function(){return{maxHeight:this.calculatedMaxHeight,minWidth:this.calculatedMinWidth,maxWidth:this.calculatedMaxWidth,top:this.calculatedTop,left:this.calculatedLeft,transformOrigin:this.origin,zIndex:this.zIndex||this.activeZIndex}}},watch:{isActive:function(t){t||(this.listIndex=-1)},isContentActive:function(t){this.hasJustFocused=t},listIndex:function(t,e){if(t in this.tiles){var n=this.tiles[t];n.classList.add("v-list-item--highlighted"),this.$refs.content.scrollTop=n.offsetTop-n.clientHeight}e in this.tiles&&this.tiles[e].classList.remove("v-list-item--highlighted")}},created:function(){this.$attrs.hasOwnProperty("full-width")&&Object(_["e"])("full-width",this)},mounted:function(){this.isActive&&this.callActivate()},methods:{activate:function(){var t=this;this.updateDimensions(),requestAnimationFrame((function(){t.startTransition().then((function(){t.$refs.content&&(t.calculatedTopAuto=t.calcTopAuto(),t.auto&&(t.$refs.content.scrollTop=t.calcScrollPosition()))}))}))},calcScrollPosition:function(){var t=this.$refs.content,e=t.querySelector(".v-list-item--active"),n=t.scrollHeight-t.offsetHeight;return e?Math.min(n,Math.max(0,e.offsetTop-t.offsetHeight/2+e.offsetHeight/2)):t.scrollTop},calcLeftAuto:function(){return parseInt(this.dimensions.activator.left-2*this.defaultOffset)},calcTopAuto:function(){var t=this.$refs.content,e=t.querySelector(".v-list-item--active");if(e||(this.selectedIndex=null),this.offsetY||!e)return this.computedTop;this.selectedIndex=Array.from(this.tiles).indexOf(e);var n=e.offsetTop-this.calcScrollPosition(),i=t.querySelector(".v-list-item").offsetTop;return this.computedTop-n-i-1},changeListIndex:function(t){if(this.getTiles(),this.isActive&&this.hasClickableTiles)if(t.keyCode!==p["s"].tab){if(t.keyCode===p["s"].down)this.nextTile();else if(t.keyCode===p["s"].up)this.prevTile();else{if(t.keyCode!==p["s"].enter||-1===this.listIndex)return;this.tiles[this.listIndex].click()}t.preventDefault()}else this.isActive=!1},closeConditional:function(t){var e=t.target;return this.isActive&&!this._isDestroyed&&this.closeOnClick&&!this.$refs.content.contains(e)},genActivatorAttributes:function(){var t=s["a"].options.methods.genActivatorAttributes.call(this);return this.activeTile&&this.activeTile.id?Object(o["a"])(Object(o["a"])({},t),{},{"aria-activedescendant":this.activeTile.id}):t},genActivatorListeners:function(){var t=m.options.methods.genActivatorListeners.call(this);return this.disableKeys||(t.keydown=this.onKeyDown),t},genTransition:function(){var t=this.genContent();return this.transition?this.$createElement("transition",{props:{name:this.transition}},[t]):t},genDirectives:function(){var t=this,e=[{name:"show",value:this.isContentActive}];return!this.openOnHover&&this.closeOnClick&&e.push({name:"click-outside",value:{handler:function(){t.isActive=!1},closeConditional:this.closeConditional,include:function(){return[t.$el].concat(Object(r["a"])(t.getOpenDependentElements()))}}}),e},genContent:function(){var t=this,e={attrs:Object(o["a"])(Object(o["a"])({},this.getScopeIdAttrs()),{},{role:"role"in this.$attrs?this.$attrs.role:"menu"}),staticClass:"v-menu__content",class:Object(o["a"])(Object(o["a"])(Object(o["a"])({},this.rootThemeClasses),this.roundedClasses),{},Object(i["a"])({"v-menu__content--auto":this.auto,"v-menu__content--fixed":this.activatorFixed,menuable__content__active:this.isActive},this.contentClass.trim(),!0)),style:this.styles,directives:this.genDirectives(),ref:"content",on:{click:function(e){var n=e.target;n.getAttribute("disabled")||t.closeOnContentClick&&(t.isActive=!1)},keydown:this.onKeyDown}};return this.$listeners.scroll&&(e.on=e.on||{},e.on.scroll=this.$listeners.scroll),!this.disabled&&this.openOnHover&&(e.on=e.on||{},e.on.mouseenter=this.mouseEnterHandler),this.openOnHover&&(e.on=e.on||{},e.on.mouseleave=this.mouseLeaveHandler),this.$createElement("div",e,this.getContentSlot())},getTiles:function(){this.$refs.content&&(this.tiles=Array.from(this.$refs.content.querySelectorAll(".v-list-item")))},mouseEnterHandler:function(){var t=this;this.runDelay("open",(function(){t.hasJustFocused||(t.hasJustFocused=!0,t.isActive=!0)}))},mouseLeaveHandler:function(t){var e=this;this.runDelay("close",(function(){e.$refs.content.contains(t.relatedTarget)||requestAnimationFrame((function(){e.isActive=!1,e.callDeactivate()}))}))},nextTile:function(){var t=this.tiles[this.listIndex+1];if(!t){if(!this.tiles.length)return;return this.listIndex=-1,void this.nextTile()}this.listIndex++,-1===t.tabIndex&&this.nextTile()},prevTile:function(){var t=this.tiles[this.listIndex-1];if(!t){if(!this.tiles.length)return;return this.listIndex=this.tiles.length,void this.prevTile()}this.listIndex--,-1===t.tabIndex&&this.prevTile()},onKeyDown:function(t){var e=this;if(t.keyCode===p["s"].esc){setTimeout((function(){e.isActive=!1}));var n=this.getActivator();this.$nextTick((function(){return n&&n.focus()}))}else!this.isActive&&[p["s"].up,p["s"].down].includes(t.keyCode)&&(this.isActive=!0);this.$nextTick((function(){return e.changeListIndex(t)}))},onResize:function(){this.isActive&&(this.$refs.content.offsetWidth,this.updateDimensions(),clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(this.updateDimensions,100))}},render:function(t){var e=this,n={staticClass:"v-menu",class:{"v-menu--attached":""===this.attach||!0===this.attach||"attach"===this.attach},directives:[{arg:"500",name:"resize",value:this.onResize}]};return t("div",n,[!this.activator&&this.genActivator(),this.showLazyContent((function(){return[e.$createElement(a["a"],{props:{root:!0,light:e.light,dark:e.dark}},[e.genTransition()])]}))])}})},e4d3:function(t,e,n){"use strict";var i=n("2b0e");e["a"]=i["a"].extend({name:"returnable",props:{returnValue:null},data:function(){return{isActive:!1,originalValue:null}},watch:{isActive:function(t){t?this.originalValue=this.returnValue:this.$emit("update:return-value",this.originalValue)}},methods:{save:function(t){var e=this;this.originalValue=t,setTimeout((function(){e.isActive=!1}))}}})},e538:function(t,e,n){var i=n("b622");e.f=i},e667:function(t,e){t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},e6cf:function(t,e,n){"use strict";var i,r,o,a,s=n("23e7"),c=n("c430"),l=n("da84"),u=n("d066"),h=n("fea9"),f=n("6eeb"),d=n("e2cc"),p=n("d44e"),v=n("2626"),m=n("861d"),g=n("1c0b"),b=n("19aa"),y=n("c6b6"),w=n("8925"),x=n("2266"),O=n("1c7e"),_=n("4840"),S=n("2cf4").set,C=n("b575"),k=n("cdf9"),j=n("44de"),A=n("f069"),$=n("e667"),E=n("69f3"),T=n("94ca"),I=n("b622"),L=n("2d00"),M=I("species"),D="Promise",B=E.get,P=E.set,N=E.getterFor(D),V=h,R=l.TypeError,F=l.document,z=l.process,H=u("fetch"),W=A.f,U=W,Y="process"==y(z),q=!!(F&&F.createEvent&&l.dispatchEvent),X="unhandledrejection",G="rejectionhandled",K=0,Z=1,J=2,Q=1,tt=2,et=T(D,(function(){var t=w(V)!==String(V);if(!t){if(66===L)return!0;if(!Y&&"function"!=typeof PromiseRejectionEvent)return!0}if(c&&!V.prototype["finally"])return!0;if(L>=51&&/native code/.test(V))return!1;var e=V.resolve(1),n=function(t){t((function(){}),(function(){}))},i=e.constructor={};return i[M]=n,!(e.then((function(){}))instanceof n)})),nt=et||!O((function(t){V.all(t)["catch"]((function(){}))})),it=function(t){var e;return!(!m(t)||"function"!=typeof(e=t.then))&&e},rt=function(t,e,n){if(!e.notified){e.notified=!0;var i=e.reactions;C((function(){var r=e.value,o=e.state==Z,a=0;while(i.length>a){var s,c,l,u=i[a++],h=o?u.ok:u.fail,f=u.resolve,d=u.reject,p=u.domain;try{h?(o||(e.rejection===tt&&ct(t,e),e.rejection=Q),!0===h?s=r:(p&&p.enter(),s=h(r),p&&(p.exit(),l=!0)),s===u.promise?d(R("Promise-chain cycle")):(c=it(s))?c.call(s,f,d):f(s)):d(r)}catch(v){p&&!l&&p.exit(),d(v)}}e.reactions=[],e.notified=!1,n&&!e.rejection&&at(t,e)}))}},ot=function(t,e,n){var i,r;q?(i=F.createEvent("Event"),i.promise=e,i.reason=n,i.initEvent(t,!1,!0),l.dispatchEvent(i)):i={promise:e,reason:n},(r=l["on"+t])?r(i):t===X&&j("Unhandled promise rejection",n)},at=function(t,e){S.call(l,(function(){var n,i=e.value,r=st(e);if(r&&(n=$((function(){Y?z.emit("unhandledRejection",i,t):ot(X,t,i)})),e.rejection=Y||st(e)?tt:Q,n.error))throw n.value}))},st=function(t){return t.rejection!==Q&&!t.parent},ct=function(t,e){S.call(l,(function(){Y?z.emit("rejectionHandled",t):ot(G,t,e.value)}))},lt=function(t,e,n,i){return function(r){t(e,n,r,i)}},ut=function(t,e,n,i){e.done||(e.done=!0,i&&(e=i),e.value=n,e.state=J,rt(t,e,!0))},ht=function(t,e,n,i){if(!e.done){e.done=!0,i&&(e=i);try{if(t===n)throw R("Promise can't be resolved itself");var r=it(n);r?C((function(){var i={done:!1};try{r.call(n,lt(ht,t,i,e),lt(ut,t,i,e))}catch(o){ut(t,i,o,e)}})):(e.value=n,e.state=Z,rt(t,e,!1))}catch(o){ut(t,{done:!1},o,e)}}};et&&(V=function(t){b(this,V,D),g(t),i.call(this);var e=B(this);try{t(lt(ht,this,e),lt(ut,this,e))}catch(n){ut(this,e,n)}},i=function(t){P(this,{type:D,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:K,value:void 0})},i.prototype=d(V.prototype,{then:function(t,e){var n=N(this),i=W(_(this,V));return i.ok="function"!=typeof t||t,i.fail="function"==typeof e&&e,i.domain=Y?z.domain:void 0,n.parent=!0,n.reactions.push(i),n.state!=K&&rt(this,n,!1),i.promise},catch:function(t){return this.then(void 0,t)}}),r=function(){var t=new i,e=B(t);this.promise=t,this.resolve=lt(ht,t,e),this.reject=lt(ut,t,e)},A.f=W=function(t){return t===V||t===o?new r(t):U(t)},c||"function"!=typeof h||(a=h.prototype.then,f(h.prototype,"then",(function(t,e){var n=this;return new V((function(t,e){a.call(n,t,e)})).then(t,e)}),{unsafe:!0}),"function"==typeof H&&s({global:!0,enumerable:!0,forced:!0},{fetch:function(t){return k(V,H.apply(l,arguments))}}))),s({global:!0,wrap:!0,forced:et},{Promise:V}),p(V,D,!1,!0),v(D),o=u(D),s({target:D,stat:!0,forced:et},{reject:function(t){var e=W(this);return e.reject.call(void 0,t),e.promise}}),s({target:D,stat:!0,forced:c||et},{resolve:function(t){return k(c&&this===o?V:this,t)}}),s({target:D,stat:!0,forced:nt},{all:function(t){var e=this,n=W(e),i=n.resolve,r=n.reject,o=$((function(){var n=g(e.resolve),o=[],a=0,s=1;x(t,(function(t){var c=a++,l=!1;o.push(void 0),s++,n.call(e,t).then((function(t){l||(l=!0,o[c]=t,--s||i(o))}),r)})),--s||i(o)}));return o.error&&r(o.value),n.promise},race:function(t){var e=this,n=W(e),i=n.reject,r=$((function(){var r=g(e.resolve);x(t,(function(t){r.call(e,t).then(n.resolve,i)}))}));return r.error&&i(r.value),n.promise}})},e707:function(t,e,n){"use strict";n("caad"),n("a9e3"),n("2532");var i=n("5530"),r=(n("3c93"),n("a9ad")),o=n("7560"),a=n("f2e7"),s=n("58df"),c=Object(s["a"])(r["a"],o["a"],a["a"]).extend({name:"v-overlay",props:{absolute:Boolean,color:{type:String,default:"#212121"},dark:{type:Boolean,default:!0},opacity:{type:[Number,String],default:.46},value:{default:!0},zIndex:{type:[Number,String],default:5}},computed:{__scrim:function(){var t=this.setBackgroundColor(this.color,{staticClass:"v-overlay__scrim",style:{opacity:this.computedOpacity}});return this.$createElement("div",t)},classes:function(){return Object(i["a"])({"v-overlay--absolute":this.absolute,"v-overlay--active":this.isActive},this.themeClasses)},computedOpacity:function(){return Number(this.isActive?this.opacity:0)},styles:function(){return{zIndex:this.zIndex}}},methods:{genContent:function(){return this.$createElement("div",{staticClass:"v-overlay__content"},this.$slots.default)}},render:function(t){var e=[this.__scrim];return this.isActive&&e.push(this.genContent()),t("div",{staticClass:"v-overlay",class:this.classes,style:this.styles},e)}}),l=c,u=n("80d2"),h=n("2b0e");e["a"]=h["a"].extend().extend({name:"overlayable",props:{hideOverlay:Boolean,overlayColor:String,overlayOpacity:[Number,String]},data:function(){return{animationFrame:0,overlay:null}},watch:{hideOverlay:function(t){this.isActive&&(t?this.removeOverlay():this.genOverlay())}},beforeDestroy:function(){this.removeOverlay()},methods:{createOverlay:function(){var t=new l({propsData:{absolute:this.absolute,value:!1,color:this.overlayColor,opacity:this.overlayOpacity}});t.$mount();var e=this.absolute?this.$el.parentNode:document.querySelector("[data-app]");e&&e.insertBefore(t.$el,e.firstChild),this.overlay=t},genOverlay:function(){var t=this;if(this.hideScroll(),!this.hideOverlay)return this.overlay||this.createOverlay(),this.animationFrame=requestAnimationFrame((function(){t.overlay&&(void 0!==t.activeZIndex?t.overlay.zIndex=String(t.activeZIndex-1):t.$el&&(t.overlay.zIndex=Object(u["q"])(t.$el)),t.overlay.value=!0)})),!0},removeOverlay:function(){var t=this,e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.overlay&&(Object(u["a"])(this.overlay.$el,"transitionend",(function(){t.overlay&&t.overlay.$el&&t.overlay.$el.parentNode&&!t.overlay.value&&(t.overlay.$el.parentNode.removeChild(t.overlay.$el),t.overlay.$destroy(),t.overlay=null)})),cancelAnimationFrame(this.animationFrame),this.overlay.value=!1),e&&this.showScroll()},scrollListener:function(t){if("keydown"===t.type){if(["INPUT","TEXTAREA","SELECT"].includes(t.target.tagName)||t.target.isContentEditable)return;var e=[u["s"].up,u["s"].pageup],n=[u["s"].down,u["s"].pagedown];if(e.includes(t.keyCode))t.deltaY=-1;else{if(!n.includes(t.keyCode))return;t.deltaY=1}}(t.target===this.overlay||"keydown"!==t.type&&t.target===document.body||this.checkPath(t))&&t.preventDefault()},hasScrollbar:function(t){if(!t||t.nodeType!==Node.ELEMENT_NODE)return!1;var e=window.getComputedStyle(t);return["auto","scroll"].includes(e.overflowY)&&t.scrollHeight>t.clientHeight},shouldScroll:function(t,e){return 0===t.scrollTop&&e<0||t.scrollTop+t.clientHeight===t.scrollHeight&&e>0},isInside:function(t,e){return t===e||null!==t&&t!==document.body&&this.isInside(t.parentNode,e)},checkPath:function(t){var e=t.path||this.composedPath(t),n=t.deltaY;if("keydown"===t.type&&e[0]===document.body){var i=this.$refs.dialog,r=window.getSelection().anchorNode;return!(i&&this.hasScrollbar(i)&&this.isInside(r,i))||this.shouldScroll(i,n)}for(var o=0;o<e.length;o++){var a=e[o];if(a===document)return!0;if(a===document.documentElement)return!0;if(a===this.$refs.content)return!0;if(this.hasScrollbar(a))return this.shouldScroll(a,n)}return!0},composedPath:function(t){if(t.composedPath)return t.composedPath();var e=[],n=t.target;while(n){if(e.push(n),"HTML"===n.tagName)return e.push(document),e.push(window),e;n=n.parentElement}return e},hideScroll:function(){this.$vuetify.breakpoint.smAndDown?document.documentElement.classList.add("overflow-y-hidden"):(Object(u["b"])(window,"wheel",this.scrollListener,{passive:!1}),window.addEventListener("keydown",this.scrollListener))},showScroll:function(){document.documentElement.classList.remove("overflow-y-hidden"),window.removeEventListener("wheel",this.scrollListener),window.removeEventListener("keydown",this.scrollListener)}}})},e893:function(t,e,n){var i=n("5135"),r=n("56ef"),o=n("06cf"),a=n("9bf2");t.exports=function(t,e){for(var n=r(e),s=a.f,c=o.f,l=0;l<n.length;l++){var u=n[l];i(t,u)||s(t,u,c(e,u))}}},e8b5:function(t,e,n){var i=n("c6b6");t.exports=Array.isArray||function(t){return"Array"==i(t)}},e95a:function(t,e,n){var i=n("b622"),r=n("3f8c"),o=i("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||a[o]===t)}},e9b1:function(t,e,n){},ee6f:function(t,e,n){},f069:function(t,e,n){"use strict";var i=n("1c0b"),r=function(t){var e,n;this.promise=new t((function(t,i){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=i})),this.resolve=i(e),this.reject=i(n)};t.exports.f=function(t){return new r(t)}},f183:function(t,e,n){var i=n("d012"),r=n("861d"),o=n("5135"),a=n("9bf2").f,s=n("90e3"),c=n("bb2f"),l=s("meta"),u=0,h=Object.isExtensible||function(){return!0},f=function(t){a(t,l,{value:{objectID:"O"+ ++u,weakData:{}}})},d=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,l)){if(!h(t))return"F";if(!e)return"E";f(t)}return t[l].objectID},p=function(t,e){if(!o(t,l)){if(!h(t))return!0;if(!e)return!1;f(t)}return t[l].weakData},v=function(t){return c&&m.REQUIRED&&h(t)&&!o(t,l)&&f(t),t},m=t.exports={REQUIRED:!1,fastKey:d,getWeakData:p,onFreeze:v};i[l]=!0},f2e7:function(t,e,n){"use strict";n.d(e,"b",(function(){return o}));var i=n("ade3"),r=n("2b0e");function o(){var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"value",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"input";return r["a"].extend({name:"toggleable",model:{prop:e,event:n},props:Object(i["a"])({},e,{required:!1}),data:function(){return{isActive:!!this[e]}},watch:(t={},Object(i["a"])(t,e,(function(t){this.isActive=!!t})),Object(i["a"])(t,"isActive",(function(t){!!t!==this[e]&&this.$emit(n,t)})),t)})}var a=o();e["a"]=a},f309:function(t,e,n){"use strict";n.d(e,"a",(function(){return $t}));var i={};n.r(i),n.d(i,"linear",(function(){return A})),n.d(i,"easeInQuad",(function(){return $})),n.d(i,"easeOutQuad",(function(){return E})),n.d(i,"easeInOutQuad",(function(){return T})),n.d(i,"easeInCubic",(function(){return I})),n.d(i,"easeOutCubic",(function(){return L})),n.d(i,"easeInOutCubic",(function(){return M})),n.d(i,"easeInQuart",(function(){return D})),n.d(i,"easeOutQuart",(function(){return B})),n.d(i,"easeInOutQuart",(function(){return P})),n.d(i,"easeInQuint",(function(){return N})),n.d(i,"easeOutQuint",(function(){return V})),n.d(i,"easeInOutQuint",(function(){return R}));n("4160"),n("caad"),n("2532"),n("159b");function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function a(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}var s=n("2b0e"),c=n("d9bd");function l(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!l.installed){l.installed=!0,s["a"]!==t&&Object(c["b"])("Multiple instances of Vue detected\nSee https://github.com/vuetifyjs/vuetify/issues/4068\n\nIf you're seeing \"$attrs is readonly\", it's caused by this");var n=e.components||{},i=e.directives||{};for(var r in i){var o=i[r];t.directive(r,o)}(function e(n){if(n){for(var i in n){var r=n[i];r&&!e(r.$_vuetify_subcomponents)&&t.component(i,r)}return!0}return!1})(n),t.$_vuetify_installed||(t.$_vuetify_installed=!0,t.mixin({beforeCreate:function(){var e=this.$options;e.vuetify?(e.vuetify.init(this,e.ssrContext),this.$vuetify=t.observable(e.vuetify.framework)):this.$vuetify=e.parent&&e.parent.$vuetify||this}}))}}var u=n("15fd");function h(t,e){return h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},h(t,e)}function f(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&h(t,e)}n("4ae1"),n("3410");function d(t){return d=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},d(t)}n("d3b7"),n("25f0");function p(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}var v=n("53ca");function m(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function g(t,e){return!e||"object"!==Object(v["a"])(e)&&"function"!==typeof e?m(t):e}function b(t){var e=p();return function(){var n,i=d(t);if(e){var r=d(this).constructor;n=Reflect.construct(i,arguments,r)}else n=i.apply(this,arguments);return g(this,n)}}n("95ed");var y={badge:"Badge",close:"Close",dataIterator:{noResultsText:"No matching records found",loadingText:"Loading items..."},dataTable:{itemsPerPageText:"Rows per page:",ariaLabel:{sortDescending:"Sorted descending.",sortAscending:"Sorted ascending.",sortNone:"Not sorted.",activateNone:"Activate to remove sorting.",activateDescending:"Activate to sort descending.",activateAscending:"Activate to sort ascending."},sortBy:"Sort by"},dataFooter:{itemsPerPageText:"Items per page:",itemsPerPageAll:"All",nextPage:"Next page",prevPage:"Previous page",firstPage:"First page",lastPage:"Last page",pageText:"{0}-{1} of {2}"},datePicker:{itemsSelected:"{0} selected",nextMonthAriaLabel:"Next month",nextYearAriaLabel:"Next year",prevMonthAriaLabel:"Previous month",prevYearAriaLabel:"Previous year"},noDataText:"No data available",carousel:{prev:"Previous visual",next:"Next visual",ariaLabel:{delimiter:"Carousel slide {0} of {1}"}},calendar:{moreEvents:"{0} more"},fileInput:{counter:"{0} files",counterSize:"{0} files ({1} in total)"},timePicker:{am:"AM",pm:"PM"},pagination:{ariaLabel:{wrapper:"Pagination Navigation",next:"Next page",previous:"Previous page",page:"Goto Page {0}",currentPage:"Current Page, Page {0}"}}},w={breakpoint:{mobileBreakpoint:1264,scrollBarWidth:16,thresholds:{xs:600,sm:960,md:1280,lg:1920}},icons:{iconfont:"mdi",values:{}},lang:{current:"en",locales:{en:y},t:void 0},rtl:!1,theme:{dark:!1,default:"light",disable:!1,options:{cspNonce:void 0,customProperties:void 0,minifyTheme:void 0,themeCache:void 0,variations:!0},themes:{light:{primary:"#1976D2",secondary:"#424242",accent:"#82B1FF",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"},dark:{primary:"#2196F3",secondary:"#424242",accent:"#FF4081",error:"#FF5252",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"}}}},x=n("80d2"),O=function(){function t(){r(this,t),this.framework={}}return a(t,[{key:"init",value:function(t,e){}}]),t}(),_=function(t){f(n,t);var e=b(n);function n(t,i){var o;r(this,n),o=e.call(this);var a=Object(x["u"])({},w),s=i.userPreset,l=s.preset,h=void 0===l?{}:l,f=Object(u["a"])(s,["preset"]);return null!=h.preset&&Object(c["c"])("Global presets do not support the **preset** option, it can be safely omitted"),i.preset=Object(x["u"])(Object(x["u"])(a,h),f),o}return n}(O);_.property="presets";n("13d5"),n("07ac");var S=n("ade3"),C=function(t){f(n,t);var e=b(n);function n(){var t;return r(this,n),t=e.apply(this,arguments),t.bar=0,t.top=0,t.left=0,t.insetFooter=0,t.right=0,t.bottom=0,t.footer=0,t.application={bar:{},top:{},left:{},insetFooter:{},right:{},bottom:{},footer:{}},t}return a(n,[{key:"register",value:function(t,e,n){this.application[e]=Object(S["a"])({},t,n),this.update(e)}},{key:"unregister",value:function(t,e){null!=this.application[e][t]&&(delete this.application[e][t],this.update(e))}},{key:"update",value:function(t){this[t]=Object.values(this.application[t]).reduce((function(t,e){return t+e}),0)}}]),n}(O);C.property="application";n("b0c0");var k=function(t){f(n,t);var e=b(n);function n(t){var i;r(this,n),i=e.call(this),i.xs=!1,i.sm=!1,i.md=!1,i.lg=!1,i.xl=!1,i.xsOnly=!1,i.smOnly=!1,i.smAndDown=!1,i.smAndUp=!1,i.mdOnly=!1,i.mdAndDown=!1,i.mdAndUp=!1,i.lgOnly=!1,i.lgAndDown=!1,i.lgAndUp=!1,i.xlOnly=!1,i.name="xs",i.height=0,i.width=0,i.mobile=!0,i.resizeTimeout=0;var o=t[n.property],a=o.mobileBreakpoint,s=o.scrollBarWidth,c=o.thresholds;return i.mobileBreakpoint=a,i.scrollBarWidth=s,i.thresholds=c,i.init(),i}return a(n,[{key:"init",value:function(){"undefined"!==typeof window&&(window.addEventListener("resize",this.onResize.bind(this),{passive:!0}),this.update())}},{key:"onResize",value:function(){clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout(this.update.bind(this),200)}},{key:"update",value:function(){var t=this.getClientHeight(),e=this.getClientWidth(),n=e<this.thresholds.xs,i=e<this.thresholds.sm&&!n,r=e<this.thresholds.md-this.scrollBarWidth&&!(i||n),o=e<this.thresholds.lg-this.scrollBarWidth&&!(r||i||n),a=e>=this.thresholds.lg-this.scrollBarWidth;switch(this.height=t,this.width=e,this.xs=n,this.sm=i,this.md=r,this.lg=o,this.xl=a,this.xsOnly=n,this.smOnly=i,this.smAndDown=(n||i)&&!(r||o||a),this.smAndUp=!n&&(i||r||o||a),this.mdOnly=r,this.mdAndDown=(n||i||r)&&!(o||a),this.mdAndUp=!(n||i)&&(r||o||a),this.lgOnly=o,this.lgAndDown=(n||i||r||o)&&!a,this.lgAndUp=!(n||i||r)&&(o||a),this.xlOnly=a,!0){case n:this.name="xs";break;case i:this.name="sm";break;case r:this.name="md";break;case o:this.name="lg";break;default:this.name="xl";break}if("number"!==typeof this.mobileBreakpoint){var s={xs:0,sm:1,md:2,lg:3,xl:4},c=s[this.name],l=s[this.mobileBreakpoint];this.mobile=c<=l}else this.mobile=e<parseInt(this.mobileBreakpoint,10)}},{key:"getClientWidth",value:function(){return"undefined"===typeof document?0:Math.max(document.documentElement.clientWidth,window.innerWidth||0)}},{key:"getClientHeight",value:function(){return"undefined"===typeof document?0:Math.max(document.documentElement.clientHeight,window.innerHeight||0)}}]),n}(O);k.property="breakpoint";var j=n("5530"),A=function(t){return t},$=function(t){return Math.pow(t,2)},E=function(t){return t*(2-t)},T=function(t){return t<.5?2*Math.pow(t,2):(4-2*t)*t-1},I=function(t){return Math.pow(t,3)},L=function(t){return Math.pow(--t,3)+1},M=function(t){return t<.5?4*Math.pow(t,3):(t-1)*(2*t-2)*(2*t-2)+1},D=function(t){return Math.pow(t,4)},B=function(t){return 1-Math.pow(--t,4)},P=function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},N=function(t){return Math.pow(t,5)},V=function(t){return 1+Math.pow(--t,5)},R=function(t){return t<.5?16*Math.pow(t,5):1+16*Math.pow(--t,5)};function F(t){if("number"===typeof t)return t;var e=W(t);if(!e)throw"string"===typeof t?new Error('Target element "'.concat(t,'" not found.')):new TypeError("Target must be a Number/Selector/HTMLElement/VueComponent, received ".concat(H(t)," instead."));var n=0;while(e)n+=e.offsetTop,e=e.offsetParent;return n}function z(t){var e=W(t);if(e)return e;throw"string"===typeof t?new Error('Container element "'.concat(t,'" not found.')):new TypeError("Container must be a Selector/HTMLElement/VueComponent, received ".concat(H(t)," instead."))}function H(t){return null==t?t:t.constructor.name}function W(t){return"string"===typeof t?document.querySelector(t):t&&t._isVue?t.$el:t instanceof HTMLElement?t:null}function U(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(j["a"])({container:document.scrollingElement||document.body||document.documentElement,duration:500,offset:0,easing:"easeInOutCubic",appOffset:!0},e),r=z(n.container);if(n.appOffset&&U.framework.application){var o=r.classList.contains("v-navigation-drawer"),a=r.classList.contains("v-navigation-drawer--clipped"),s=U.framework.application,c=s.bar,l=s.top;n.offset+=c,o&&!a||(n.offset+=l)}var u,h=performance.now();u="number"===typeof t?F(t)-n.offset:F(t)-F(r)-n.offset;var f=r.scrollTop;if(u===f)return Promise.resolve(u);var d="function"===typeof n.easing?n.easing:i[n.easing];if(!d)throw new TypeError('Easing function "'.concat(n.easing,'" not found.'));return new Promise((function(t){return requestAnimationFrame((function e(i){var o=i-h,a=Math.abs(n.duration?Math.min(o/n.duration,1):1);r.scrollTop=Math.floor(f+(u-f)*d(a));var s=r===document.body?document.documentElement.clientHeight:r.clientHeight;if(1===a||s+r.scrollTop===r.scrollHeight)return t(u);requestAnimationFrame(e)}))}))}U.framework={},U.init=function(){};var Y=function(t){f(n,t);var e=b(n);function n(){var t;return r(this,n),t=e.call(this),g(t,U)}return n}(O);Y.property="goTo";n("ddb0"),n("dca8");var q={complete:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",cancel:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",close:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",delete:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z",clear:"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",success:"M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z",info:"M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",warning:"M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z",error:"M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z",prev:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",next:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",checkboxOn:"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",checkboxOff:"M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z",checkboxIndeterminate:"M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z",delimiter:"M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",sort:"M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z",expand:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",menu:"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z",subgroup:"M7,10L12,15L17,10H7Z",dropdown:"M7,10L12,15L17,10H7Z",radioOn:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z",radioOff:"M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z",edit:"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z",ratingEmpty:"M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",ratingFull:"M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z",ratingHalf:"M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z",loading:"M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12",first:"M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z",last:"M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z",unfold:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z",file:"M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z",plus:"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",minus:"M19,13H5V11H19V13Z"},X=q,G={complete:"check",cancel:"cancel",close:"close",delete:"cancel",clear:"clear",success:"check_circle",info:"info",warning:"priority_high",error:"warning",prev:"chevron_left",next:"chevron_right",checkboxOn:"check_box",checkboxOff:"check_box_outline_blank",checkboxIndeterminate:"indeterminate_check_box",delimiter:"fiber_manual_record",sort:"arrow_upward",expand:"keyboard_arrow_down",menu:"menu",subgroup:"arrow_drop_down",dropdown:"arrow_drop_down",radioOn:"radio_button_checked",radioOff:"radio_button_unchecked",edit:"edit",ratingEmpty:"star_border",ratingFull:"star",ratingHalf:"star_half",loading:"cached",first:"first_page",last:"last_page",unfold:"unfold_more",file:"attach_file",plus:"add",minus:"remove"},K=G,Z={complete:"mdi-check",cancel:"mdi-close-circle",close:"mdi-close",delete:"mdi-close-circle",clear:"mdi-close",success:"mdi-check-circle",info:"mdi-information",warning:"mdi-exclamation",error:"mdi-alert",prev:"mdi-chevron-left",next:"mdi-chevron-right",checkboxOn:"mdi-checkbox-marked",checkboxOff:"mdi-checkbox-blank-outline",checkboxIndeterminate:"mdi-minus-box",delimiter:"mdi-circle",sort:"mdi-arrow-up",expand:"mdi-chevron-down",menu:"mdi-menu",subgroup:"mdi-menu-down",dropdown:"mdi-menu-down",radioOn:"mdi-radiobox-marked",radioOff:"mdi-radiobox-blank",edit:"mdi-pencil",ratingEmpty:"mdi-star-outline",ratingFull:"mdi-star",ratingHalf:"mdi-star-half",loading:"mdi-cached",first:"mdi-page-first",last:"mdi-page-last",unfold:"mdi-unfold-more-horizontal",file:"mdi-paperclip",plus:"mdi-plus",minus:"mdi-minus"},J=Z,Q={complete:"fas fa-check",cancel:"fas fa-times-circle",close:"fas fa-times",delete:"fas fa-times-circle",clear:"fas fa-times-circle",success:"fas fa-check-circle",info:"fas fa-info-circle",warning:"fas fa-exclamation",error:"fas fa-exclamation-triangle",prev:"fas fa-chevron-left",next:"fas fa-chevron-right",checkboxOn:"fas fa-check-square",checkboxOff:"far fa-square",checkboxIndeterminate:"fas fa-minus-square",delimiter:"fas fa-circle",sort:"fas fa-sort-up",expand:"fas fa-chevron-down",menu:"fas fa-bars",subgroup:"fas fa-caret-down",dropdown:"fas fa-caret-down",radioOn:"far fa-dot-circle",radioOff:"far fa-circle",edit:"fas fa-edit",ratingEmpty:"far fa-star",ratingFull:"fas fa-star",ratingHalf:"fas fa-star-half",loading:"fas fa-sync",first:"fas fa-step-backward",last:"fas fa-step-forward",unfold:"fas fa-arrows-alt-v",file:"fas fa-paperclip",plus:"fas fa-plus",minus:"fas fa-minus"},tt=Q,et={complete:"fa fa-check",cancel:"fa fa-times-circle",close:"fa fa-times",delete:"fa fa-times-circle",clear:"fa fa-times-circle",success:"fa fa-check-circle",info:"fa fa-info-circle",warning:"fa fa-exclamation",error:"fa fa-exclamation-triangle",prev:"fa fa-chevron-left",next:"fa fa-chevron-right",checkboxOn:"fa fa-check-square",checkboxOff:"fa fa-square-o",checkboxIndeterminate:"fa fa-minus-square",delimiter:"fa fa-circle",sort:"fa fa-sort-up",expand:"fa fa-chevron-down",menu:"fa fa-bars",subgroup:"fa fa-caret-down",dropdown:"fa fa-caret-down",radioOn:"fa fa-dot-circle-o",radioOff:"fa fa-circle-o",edit:"fa fa-pencil",ratingEmpty:"fa fa-star-o",ratingFull:"fa fa-star",ratingHalf:"fa fa-star-half-o",loading:"fa fa-refresh",first:"fa fa-step-backward",last:"fa fa-step-forward",unfold:"fa fa-angle-double-down",file:"fa fa-paperclip",plus:"fa fa-plus",minus:"fa fa-minus"},nt=et;n("ac1f"),n("1276");function it(t,e){var n={};for(var i in e)n[i]={component:t,props:{icon:e[i].split(" fa-")}};return n}var rt=it("font-awesome-icon",tt),ot=Object.freeze({mdiSvg:X,md:K,mdi:J,fa:tt,fa4:nt,faSvg:rt}),at=function(t){f(n,t);var e=b(n);function n(t){var i;r(this,n),i=e.call(this);var o=t[n.property],a=o.iconfont,s=o.values;return i.iconfont=a,i.values=Object(x["u"])(ot[a],s),i}return n}(O);at.property="icons";n("a4d3"),n("e01a"),n("99af"),n("5319"),n("2ca0");var st="$vuetify.",ct=Symbol("Lang fallback");function lt(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3?arguments[3]:void 0,r=e.replace(st,""),o=Object(x["m"])(t,r,ct);return o===ct&&(n?(Object(c["b"])('Translation key "'.concat(r,'" not found in fallback')),o=e):(Object(c["c"])('Translation key "'.concat(r,'" not found, falling back to default')),o=lt(i,e,!0,i))),o}var ut=function(t){f(n,t);var e=b(n);function n(t){var i;r(this,n),i=e.call(this),i.defaultLocale="en";var o=t[n.property],a=o.current,s=o.locales,c=o.t;return i.current=a,i.locales=s,i.translator=c||i.defaultTranslator,i}return a(n,[{key:"currentLocale",value:function(t){var e=this.locales[this.current],n=this.locales[this.defaultLocale];return lt(e,t,!1,n)}},{key:"t",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i<e;i++)n[i-1]=arguments[i];return t.startsWith(st)?this.translator.apply(this,[t].concat(n)):this.replace(t,n)}},{key:"defaultTranslator",value:function(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i<e;i++)n[i-1]=arguments[i];return this.replace(this.currentLocale(t),n)}},{key:"replace",value:function(t,e){return t.replace(/\{(\d+)\}/g,(function(t,n){return String(e[+n])}))}}]),n}(O);ut.property="lang";n("7db0"),n("b64b"),n("18a5");var ht=n("3835"),ft=n("7bc6"),dt=n("8da5"),pt=(n("3ea3"),.20689655172413793),vt=function(t){return t>Math.pow(pt,3)?Math.cbrt(t):t/(3*Math.pow(pt,2))+4/29},mt=function(t){return t>pt?Math.pow(t,3):3*Math.pow(pt,2)*(t-4/29)};function gt(t){var e=vt,n=e(t[1]);return[116*n-16,500*(e(t[0]/.95047)-n),200*(n-e(t[2]/1.08883))]}function bt(t){var e=mt,n=(t[0]+16)/116;return[.95047*e(n+t[1]/500),e(n),1.08883*e(n-t[2]/200)]}function yt(t){for(var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=t.anchor,r=Object(u["a"])(t,["anchor"]),o=Object.keys(r),a={},s=0;s<o.length;++s){var c=o[s],l=t[c];null!=l&&(n?e?("base"===c||c.startsWith("lighten")||c.startsWith("darken"))&&(a[c]=Object(ft["a"])(l)):"object"===Object(v["a"])(l)?a[c]=yt(l,!0,n):a[c]=Ct(c,Object(ft["b"])(l)):a[c]={base:Object(ft["c"])(Object(ft["b"])(l))})}return e||(a.anchor=i||a.base||a.primary.base),a}var wt=function(t,e){return"\n.v-application .".concat(t," {\n  background-color: ").concat(e," !important;\n  border-color: ").concat(e," !important;\n}\n.v-application .").concat(t,"--text {\n  color: ").concat(e," !important;\n  caret-color: ").concat(e," !important;\n}")},xt=function(t,e,n){var i=e.split(/(\d)/,2),r=Object(ht["a"])(i,2),o=r[0],a=r[1];return"\n.v-application .".concat(t,".").concat(o,"-").concat(a," {\n  background-color: ").concat(n," !important;\n  border-color: ").concat(n," !important;\n}\n.v-application .").concat(t,"--text.text--").concat(o,"-").concat(a," {\n  color: ").concat(n," !important;\n  caret-color: ").concat(n," !important;\n}")},Ot=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"base";return"--v-".concat(t,"-").concat(e)},_t=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"base";return"var(".concat(Ot(t,e),")")};function St(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.anchor,i=Object(u["a"])(t,["anchor"]),r=Object.keys(i);if(!r.length)return"";var o="",a="",s=e?_t("anchor"):n;a+=".v-application a { color: ".concat(s,"; }"),e&&(o+="  ".concat(Ot("anchor"),": ").concat(n,";\n"));for(var c=0;c<r.length;++c){var l=r[c],h=t[l];a+=wt(l,e?_t(l):h.base),e&&(o+="  ".concat(Ot(l),": ").concat(h.base,";\n"));for(var f=Object.keys(h),d=0;d<f.length;++d){var p=f[d],v=h[p];"base"!==p&&(a+=xt(l,p,e?_t(l,p):v),e&&(o+="  ".concat(Ot(l,p),": ").concat(v,";\n")))}}return e&&(o=":root {\n".concat(o,"}\n\n")),o+a}function Ct(t,e){for(var n={base:Object(ft["c"])(e)},i=5;i>0;--i)n["lighten".concat(i)]=Object(ft["c"])(kt(e,i));for(var r=1;r<=4;++r)n["darken".concat(r)]=Object(ft["c"])(jt(e,r));return n}function kt(t,e){var n=gt(dt["b"](t));return n[0]=n[0]+10*e,dt["a"](bt(n))}function jt(t,e){var n=gt(dt["b"](t));return n[0]=n[0]-10*e,dt["a"](bt(n))}var At=function(t){f(n,t);var e=b(n);function n(t){var i;r(this,n),i=e.call(this),i.disabled=!1,i.isDark=null,i.vueInstance=null,i.vueMeta=null;var o=t[n.property],a=o.dark,s=o.disable,c=o.options,l=o.themes;return i.dark=Boolean(a),i.defaults=i.themes=l,i.options=c,s?(i.disabled=!0,g(i)):(i.themes={dark:i.fillVariant(l.dark,!0),light:i.fillVariant(l.light,!1)},i)}return a(n,[{key:"applyTheme",value:function(){if(this.disabled)return this.clearCss();this.css=this.generatedStyles}},{key:"clearCss",value:function(){this.css=""}},{key:"init",value:function(t,e){this.disabled||(t.$meta?this.initVueMeta(t):e&&this.initSSR(e),this.initTheme())}},{key:"setTheme",value:function(t,e){this.themes[t]=Object.assign(this.themes[t],e),this.applyTheme()}},{key:"resetThemes",value:function(){this.themes.light=Object.assign({},this.defaults.light),this.themes.dark=Object.assign({},this.defaults.dark),this.applyTheme()}},{key:"checkOrCreateStyleElement",value:function(){return this.styleEl=document.getElementById("vuetify-theme-stylesheet"),!!this.styleEl||(this.genStyleElement(),Boolean(this.styleEl))}},{key:"fillVariant",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0,n=this.themes[e?"dark":"light"];return Object.assign({},n,t)}},{key:"genStyleElement",value:function(){"undefined"!==typeof document&&(this.styleEl=document.createElement("style"),this.styleEl.type="text/css",this.styleEl.id="vuetify-theme-stylesheet",this.options.cspNonce&&this.styleEl.setAttribute("nonce",this.options.cspNonce),document.head.appendChild(this.styleEl))}},{key:"initVueMeta",value:function(t){var e=this;if(this.vueMeta=t.$meta(),this.isVueMeta23)t.$nextTick((function(){e.applyVueMeta23()}));else{var n="function"===typeof this.vueMeta.getOptions?this.vueMeta.getOptions().keyName:"metaInfo",i=t.$options[n]||{};t.$options[n]=function(){i.style=i.style||[];var t=i.style.find((function(t){return"vuetify-theme-stylesheet"===t.id}));return t?t.cssText=e.generatedStyles:i.style.push({cssText:e.generatedStyles,type:"text/css",id:"vuetify-theme-stylesheet",nonce:(e.options||{}).cspNonce}),i}}}},{key:"applyVueMeta23",value:function(){var t=this.vueMeta.addApp("vuetify"),e=t.set;e({style:[{cssText:this.generatedStyles,type:"text/css",id:"vuetify-theme-stylesheet",nonce:this.options.cspNonce}]})}},{key:"initSSR",value:function(t){var e=this.options.cspNonce?' nonce="'.concat(this.options.cspNonce,'"'):"";t.head=t.head||"",t.head+='<style type="text/css" id="vuetify-theme-stylesheet"'.concat(e,">").concat(this.generatedStyles,"</style>")}},{key:"initTheme",value:function(){var t=this;"undefined"!==typeof document&&(this.vueInstance&&this.vueInstance.$destroy(),this.vueInstance=new s["a"]({data:{themes:this.themes},watch:{themes:{immediate:!0,deep:!0,handler:function(){return t.applyTheme()}}}}))}},{key:"css",set:function(t){this.vueMeta?this.isVueMeta23&&this.applyVueMeta23():this.checkOrCreateStyleElement()&&(this.styleEl.innerHTML=t)}},{key:"dark",set:function(t){var e=this.isDark;this.isDark=t,null!=e&&this.applyTheme()},get:function(){return Boolean(this.isDark)}},{key:"currentTheme",get:function(){var t=this.dark?"dark":"light";return this.themes[t]}},{key:"generatedStyles",get:function(){var t,e=this.parsedTheme,n=this.options||{};return null!=n.themeCache&&(t=n.themeCache.get(e),null!=t)||(t=St(e,n.customProperties),null!=n.minifyTheme&&(t=n.minifyTheme(t)),null!=n.themeCache&&n.themeCache.set(e,t)),t}},{key:"parsedTheme",get:function(){return yt(this.currentTheme||{},void 0,Object(x["l"])(this.options,["variations"],!0))}},{key:"isVueMeta23",get:function(){return"function"===typeof this.vueMeta.addApp}}]),n}(O);At.property="theme";var $t=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r(this,t),this.framework={},this.installed=[],this.preset={},this.userPreset={},this.userPreset=e,this.use(_),this.use(C),this.use(k),this.use(Y),this.use(at),this.use(ut),this.use(At)}return a(t,[{key:"init",value:function(t,e){var n=this;this.installed.forEach((function(i){var r=n.framework[i];r.framework=n.framework,r.init(t,e)})),this.framework.rtl=Boolean(this.preset.rtl)}},{key:"use",value:function(t){var e=t.property;this.installed.includes(e)||(this.framework[e]=new t(this.preset,this),this.installed.push(e))}}]),t}();$t.install=l,$t.installed=!1,$t.version="2.3.4",$t.config={silent:!1}},f5df:function(t,e,n){var i=n("00ee"),r=n("c6b6"),o=n("b622"),a=o("toStringTag"),s="Arguments"==r(function(){return arguments}()),c=function(t,e){try{return t[e]}catch(n){}};t.exports=i?r:function(t){var e,n,i;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=c(e=Object(t),a))?n:s?r(e):"Object"==(i=r(e))&&"function"==typeof e.callee?"Arguments":i}},f748:function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},f772:function(t,e,n){var i=n("5692"),r=n("90e3"),o=i("keys");t.exports=function(t){return o[t]||(o[t]=r(t))}},f774:function(t,e,n){"use strict";n("99af"),n("a9e3"),n("c7cd");var i=n("5530"),r=(n("7958"),n("adda")),o=n("3a66"),a=n("a9ad"),s=n("b848"),c=(n("caad"),n("b0c0"),n("d9bd")),l=n("2b0e"),u=l["a"].extend({name:"mobile",props:{mobileBreakpoint:{type:[Number,String],default:function(){return this.$vuetify?this.$vuetify.breakpoint.mobileBreakpoint:void 0},validator:function(t){return!isNaN(Number(t))||["xs","sm","md","lg","xl"].includes(String(t))}}},computed:{isMobile:function(){var t=this.$vuetify.breakpoint,e=t.mobile,n=t.width,i=t.name,r=t.mobileBreakpoint;if(r===this.mobileBreakpoint)return e;var o=parseInt(this.mobileBreakpoint,10),a=!isNaN(o);return a?n<o:i===this.mobileBreakpoint}},created:function(){this.$attrs.hasOwnProperty("mobile-break-point")&&Object(c["d"])("mobile-break-point","mobile-breakpoint",this)}}),h=n("e707"),f=n("d10f"),d=n("7560"),p=n("a293"),v=n("dc22"),m=(n("4160"),n("159b"),n("80d2")),g=function(t){var e=t.touchstartX,n=t.touchendX,i=t.touchstartY,r=t.touchendY,o=.5,a=16;t.offsetX=n-e,t.offsetY=r-i,Math.abs(t.offsetY)<o*Math.abs(t.offsetX)&&(t.left&&n<e-a&&t.left(t),t.right&&n>e+a&&t.right(t)),Math.abs(t.offsetX)<o*Math.abs(t.offsetY)&&(t.up&&r<i-a&&t.up(t),t.down&&r>i+a&&t.down(t))};function b(t,e){var n=t.changedTouches[0];e.touchstartX=n.clientX,e.touchstartY=n.clientY,e.start&&e.start(Object.assign(t,e))}function y(t,e){var n=t.changedTouches[0];e.touchendX=n.clientX,e.touchendY=n.clientY,e.end&&e.end(Object.assign(t,e)),g(e)}function w(t,e){var n=t.changedTouches[0];e.touchmoveX=n.clientX,e.touchmoveY=n.clientY,e.move&&e.move(Object.assign(t,e))}function x(t){var e={touchstartX:0,touchstartY:0,touchendX:0,touchendY:0,touchmoveX:0,touchmoveY:0,offsetX:0,offsetY:0,left:t.left,right:t.right,up:t.up,down:t.down,start:t.start,move:t.move,end:t.end};return{touchstart:function(t){return b(t,e)},touchend:function(t){return y(t,e)},touchmove:function(t){return w(t,e)}}}function O(t,e,n){var i=e.value,r=i.parent?t.parentElement:t,o=i.options||{passive:!0};if(r){var a=x(e.value);r._touchHandlers=Object(r._touchHandlers),r._touchHandlers[n.context._uid]=a,Object(m["t"])(a).forEach((function(t){r.addEventListener(t,a[t],o)}))}}function _(t,e,n){var i=e.value.parent?t.parentElement:t;if(i&&i._touchHandlers){var r=i._touchHandlers[n.context._uid];Object(m["t"])(r).forEach((function(t){i.removeEventListener(t,r[t])})),delete i._touchHandlers[n.context._uid]}}var S={inserted:O,unbind:_},C=S,k=n("58df"),j=Object(k["a"])(Object(o["a"])("left",["isActive","isMobile","miniVariant","expandOnHover","permanent","right","temporary","width"]),a["a"],s["a"],u,h["a"],f["a"],d["a"]);e["a"]=j.extend({name:"v-navigation-drawer",provide:function(){return{isInNav:"nav"===this.tag}},directives:{ClickOutside:p["a"],Resize:v["a"],Touch:C},props:{bottom:Boolean,clipped:Boolean,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,height:{type:[Number,String],default:function(){return this.app?"100vh":"100%"}},miniVariant:Boolean,miniVariantWidth:{type:[Number,String],default:56},permanent:Boolean,right:Boolean,src:{type:[String,Object],default:""},stateless:Boolean,tag:{type:String,default:function(){return this.app?"nav":"aside"}},temporary:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},value:null},data:function(){return{isMouseover:!1,touchArea:{left:0,right:0},stackMinZIndex:6}},computed:{applicationProperty:function(){return this.right?"right":"left"},classes:function(){return Object(i["a"])({"v-navigation-drawer":!0,"v-navigation-drawer--absolute":this.absolute,"v-navigation-drawer--bottom":this.bottom,"v-navigation-drawer--clipped":this.clipped,"v-navigation-drawer--close":!this.isActive,"v-navigation-drawer--fixed":!this.absolute&&(this.app||this.fixed),"v-navigation-drawer--floating":this.floating,"v-navigation-drawer--is-mobile":this.isMobile,"v-navigation-drawer--is-mouseover":this.isMouseover,"v-navigation-drawer--mini-variant":this.isMiniVariant,"v-navigation-drawer--custom-mini-variant":56!==Number(this.miniVariantWidth),"v-navigation-drawer--open":this.isActive,"v-navigation-drawer--open-on-hover":this.expandOnHover,"v-navigation-drawer--right":this.right,"v-navigation-drawer--temporary":this.temporary},this.themeClasses)},computedMaxHeight:function(){if(!this.hasApp)return null;var t=this.$vuetify.application.bottom+this.$vuetify.application.footer+this.$vuetify.application.bar;return this.clipped?t+this.$vuetify.application.top:t},computedTop:function(){if(!this.hasApp)return 0;var t=this.$vuetify.application.bar;return t+=this.clipped?this.$vuetify.application.top:0,t},computedTransform:function(){return this.isActive?0:this.isBottom||this.right?100:-100},computedWidth:function(){return this.isMiniVariant?this.miniVariantWidth:this.width},hasApp:function(){return this.app&&!this.isMobile&&!this.temporary},isBottom:function(){return this.bottom&&this.isMobile},isMiniVariant:function(){return!this.expandOnHover&&this.miniVariant||this.expandOnHover&&!this.isMouseover},isMobile:function(){return!this.stateless&&!this.permanent&&u.options.computed.isMobile.call(this)},reactsToClick:function(){return!this.stateless&&!this.permanent&&(this.isMobile||this.temporary)},reactsToMobile:function(){return this.app&&!this.disableResizeWatcher&&!this.permanent&&!this.stateless&&!this.temporary},reactsToResize:function(){return!this.disableResizeWatcher&&!this.stateless},reactsToRoute:function(){return!this.disableRouteWatcher&&!this.stateless&&(this.temporary||this.isMobile)},showOverlay:function(){return!this.hideOverlay&&this.isActive&&(this.isMobile||this.temporary)},styles:function(){var t=this.isBottom?"translateY":"translateX",e={height:Object(m["f"])(this.height),top:this.isBottom?"auto":Object(m["f"])(this.computedTop),maxHeight:null!=this.computedMaxHeight?"calc(100% - ".concat(Object(m["f"])(this.computedMaxHeight),")"):void 0,transform:"".concat(t,"(").concat(Object(m["f"])(this.computedTransform,"%"),")"),width:Object(m["f"])(this.computedWidth)};return e}},watch:{$route:"onRouteChange",isActive:function(t){this.$emit("input",t)},isMobile:function(t,e){!t&&this.isActive&&!this.temporary&&this.removeOverlay(),null!=e&&this.reactsToResize&&this.reactsToMobile&&(this.isActive=!t)},permanent:function(t){t&&(this.isActive=!0)},showOverlay:function(t){t?this.genOverlay():this.removeOverlay()},value:function(t){this.permanent||(null!=t?t!==this.isActive&&(this.isActive=t):this.init())},expandOnHover:"updateMiniVariant",isMouseover:function(t){this.updateMiniVariant(!t)}},beforeMount:function(){this.init()},methods:{calculateTouchArea:function(){var t=this.$el.parentNode;if(t){var e=t.getBoundingClientRect();this.touchArea={left:e.left+50,right:e.right-50}}},closeConditional:function(){return this.isActive&&!this._isDestroyed&&this.reactsToClick},genAppend:function(){return this.genPosition("append")},genBackground:function(){var t={height:"100%",width:"100%",src:this.src},e=this.$scopedSlots.img?this.$scopedSlots.img(t):this.$createElement(r["a"],{props:t});return this.$createElement("div",{staticClass:"v-navigation-drawer__image"},[e])},genDirectives:function(){var t=this,e=[{name:"click-outside",value:{handler:function(){t.isActive=!1},closeConditional:this.closeConditional,include:this.getOpenDependentElements}}];return this.touchless||this.stateless||e.push({name:"touch",value:{parent:!0,left:this.swipeLeft,right:this.swipeRight}}),e},genListeners:function(){var t=this,e={transitionend:function(e){if(e.target===e.currentTarget){t.$emit("transitionend",e);var n=document.createEvent("UIEvents");n.initUIEvent("resize",!0,!1,window,0),window.dispatchEvent(n)}}};return this.miniVariant&&(e.click=function(){return t.$emit("update:mini-variant",!1)}),this.expandOnHover&&(e.mouseenter=function(){return t.isMouseover=!0},e.mouseleave=function(){return t.isMouseover=!1}),e},genPosition:function(t){var e=Object(m["o"])(this,t);return e?this.$createElement("div",{staticClass:"v-navigation-drawer__".concat(t)},e):e},genPrepend:function(){return this.genPosition("prepend")},genContent:function(){return this.$createElement("div",{staticClass:"v-navigation-drawer__content"},this.$slots.default)},genBorder:function(){return this.$createElement("div",{staticClass:"v-navigation-drawer__border"})},init:function(){this.permanent?this.isActive=!0:this.stateless||null!=this.value?this.isActive=this.value:this.temporary||(this.isActive=!this.isMobile)},onRouteChange:function(){this.reactsToRoute&&this.closeConditional()&&(this.isActive=!1)},swipeLeft:function(t){this.isActive&&this.right||(this.calculateTouchArea(),Math.abs(t.touchendX-t.touchstartX)<100||(this.right&&t.touchstartX>=this.touchArea.right?this.isActive=!0:!this.right&&this.isActive&&(this.isActive=!1)))},swipeRight:function(t){this.isActive&&!this.right||(this.calculateTouchArea(),Math.abs(t.touchendX-t.touchstartX)<100||(!this.right&&t.touchstartX<=this.touchArea.left?this.isActive=!0:this.right&&this.isActive&&(this.isActive=!1)))},updateApplication:function(){if(!this.isActive||this.isMobile||this.temporary||!this.$el)return 0;var t=Number(this.computedWidth);return isNaN(t)?this.$el.clientWidth:t},updateMiniVariant:function(t){this.miniVariant!==t&&this.$emit("update:mini-variant",t)}},render:function(t){var e=[this.genPrepend(),this.genContent(),this.genAppend(),this.genBorder()];return(this.src||Object(m["o"])(this,"img"))&&e.unshift(this.genBackground()),t(this.tag,this.setBackgroundColor(this.color,{class:this.classes,style:this.styles,directives:this.genDirectives(),on:this.genListeners()}),e)}})},fb6a:function(t,e,n){"use strict";var i=n("23e7"),r=n("861d"),o=n("e8b5"),a=n("23cb"),s=n("50c4"),c=n("fc6a"),l=n("8418"),u=n("b622"),h=n("1dde"),f=n("ae40"),d=h("slice"),p=f("slice",{ACCESSORS:!0,0:0,1:2}),v=u("species"),m=[].slice,g=Math.max;i({target:"Array",proto:!0,forced:!d||!p},{slice:function(t,e){var n,i,u,h=c(this),f=s(h.length),d=a(t,f),p=a(void 0===e?f:e,f);if(o(h)&&(n=h.constructor,"function"!=typeof n||n!==Array&&!o(n.prototype)?r(n)&&(n=n[v],null===n&&(n=void 0)):n=void 0,n===Array||void 0===n))return m.call(h,d,p);for(i=new(void 0===n?Array:n)(g(p-d,0)),u=0;d<p;d++,u++)d in h&&l(i,u,h[d]);return i.length=u,i}})},fc6a:function(t,e,n){var i=n("44ad"),r=n("1d80");t.exports=function(t){return i(r(t))}},fdbc:function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},fdbf:function(t,e,n){var i=n("4930");t.exports=i&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},fe6c:function(t,e,n){"use strict";n.d(e,"b",(function(){return a}));var i=n("2b0e"),r=n("80d2"),o={absolute:Boolean,bottom:Boolean,fixed:Boolean,left:Boolean,right:Boolean,top:Boolean};function a(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return i["a"].extend({name:"positionable",props:t.length?Object(r["k"])(o,t):o})}e["a"]=a()},fea9:function(t,e,n){var i=n("da84");t.exports=i.Promise},ff44:function(t,e,n){}}]);
+//# sourceMappingURL=chunk-vendors.a0f21a27.js.map
\ No newline at end of file
diff --git a/scripts/system/inventory/dist/js/chunk-vendors.a0f21a27.js.map b/scripts/system/inventory/dist/js/chunk-vendors.a0f21a27.js.map
new file mode 100644
index 0000000000..090bc49fac
--- /dev/null
+++ b/scripts/system/inventory/dist/js/chunk-vendors.a0f21a27.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./node_modules/core-js/internals/function-bind.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///../../../src/components/transitions/createTransition.ts","webpack:///../../../src/components/transitions/expand-transition.ts","webpack:///../../../src/components/transitions/index.ts","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/native-url.js","webpack:///../../../src/components/VSheet/index.ts","webpack:///./node_modules/core-js/internals/string-repeat.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///../../../src/components/VIcon/VIcon.ts","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../../src/components/VDialog/VDialog.ts","webpack:///../../../src/mixins/delayable/index.ts","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///../../../src/components/VList/VListItemAction.ts","webpack:///./node_modules/core-js/modules/es.string.anchor.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///../../../src/components/VList/VListItemGroup.ts","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///../../../src/mixins/routable/index.ts","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///../../../src/mixins/stackable/index.ts","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///../../../src/mixins/measurable/index.ts","webpack:///./node_modules/core-js/modules/es.string.includes.js","webpack:///./node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///../../../src/components/VProgressLinear/VProgressLinear.ts","webpack:///../../../src/components/VProgressLinear/index.ts","webpack:///../../../src/mixins/loadable/index.ts","webpack:///../../../src/components/VToolbar/index.ts","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///./node_modules/core-js/modules/es.object.is.js","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/modules/es.string.starts-with.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///../../../src/components/VGrid/VSpacer.ts","webpack:///./node_modules/vuedraggable/dist/vuedraggable.common.js","webpack:///../../../src/mixins/registrable/index.ts","webpack:///../../../src/components/VMenu/index.ts","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///../../../src/components/VList/VListItemIcon.ts","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///../../../src/mixins/validatable/index.ts","webpack:///./node_modules/core-js/modules/es.string.repeat.js","webpack:///../../../src/mixins/applicationable/index.ts","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/core-js/modules/es.math.cbrt.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///./node_modules/core-js/internals/this-number-value.js","webpack:///../../../src/directives/scroll/index.ts","webpack:///../../../src/mixins/scrollable/index.ts","webpack:///../../../src/components/VAppBar/VAppBar.ts","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/core-js/modules/es.array.some.js","webpack:///./node_modules/core-js/modules/es.string.match.js","webpack:///../../../src/components/VThemeProvider/VThemeProvider.ts","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///../../../src/mixins/activatable/index.ts","webpack:///./node_modules/core-js/modules/es.reflect.construct.js","webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/mixins/transitionable/index.ts","webpack:///../../../src/components/VBadge/VBadge.ts","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/array-from.js","webpack:///../../../src/mixins/groupable/index.ts","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///../../../src/directives/ripple/index.ts","webpack:///./node_modules/core-js/internals/shared.js","webpack:///../../../src/components/VList/VListGroup.ts","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///../../src/util/mixins.ts","webpack:///./node_modules/core-js/internals/not-a-regexp.js","webpack:///../../../src/components/VAppBar/VAppBarNavIcon.ts","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///../../../src/components/VAvatar/VAvatar.ts","webpack:///../../../src/components/VAvatar/index.ts","webpack:///../../../src/components/VList/VListItemAvatar.ts","webpack:///../../../src/components/VList/index.ts","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///../../../src/components/VItemGroup/VItemGroup.ts","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///../../../src/components/VGrid/VCol.ts","webpack:///./node_modules/vuetify-loader/lib/runtime/installComponents.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///./node_modules/core-js/internals/object-to-array.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///../../../src/components/VToolbar/VToolbar.ts","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///../../../src/components/VApp/VApp.ts","webpack:///../../../src/mixins/themeable/index.ts","webpack:///../../../src/mixins/detachable/index.ts","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///../../src/util/colorUtils.ts","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///../../../src/mixins/binds-attrs/index.ts","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///../../src/util/helpers.ts","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///../../../src/components/VProgressCircular/VProgressCircular.ts","webpack:///../../../src/components/VProgressCircular/index.ts","webpack:///../../../src/components/VBtn/VBtn.ts","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///../../../src/components/VCounter/VCounter.ts","webpack:///../../../src/components/VCounter/index.ts","webpack:///../../../src/mixins/intersectable/index.ts","webpack:///../../../src/components/VTextField/VTextField.ts","webpack:///../../../src/components/VList/VList.ts","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///../../../src/util/color/transformSRGB.ts","webpack:///../../../src/mixins/elevatable/index.ts","webpack:///../../../src/components/VSheet/VSheet.ts","webpack:///../../../src/directives/intersect/index.ts","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///../../../src/components/VCard/index.ts","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///../../../src/components/VIcon/index.ts","webpack:///../../../src/mixins/bootable/index.ts","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///../../../src/mixins/roundable/index.ts","webpack:///../../../src/directives/click-outside/index.ts","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///../../../src/mixins/proxyable/index.ts","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///../../../src/components/VGrid/grid.ts","webpack:///../../../src/components/VGrid/VContainer.ts","webpack:///./node_modules/core-js/modules/es.array.every.js","webpack:///./node_modules/core-js/modules/es.array.from.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///../../../src/components/VMain/VMain.ts","webpack:///../../../src/components/VContent/VContent.ts","webpack:///./node_modules/core-js/modules/es.promise.finally.js","webpack:///../../../src/mixins/colorable/index.ts","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/sortablejs/modular/sortable.esm.js","webpack:///./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///../../../src/components/VResponsive/VResponsive.ts","webpack:///../../../src/components/VResponsive/index.ts","webpack:///../../../src/components/VImg/VImg.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///../../../src/mixins/sizeable/index.ts","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///../../../src/components/VCard/VCard.ts","webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/modules/es.number.to-fixed.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///../../../src/mixins/dependent/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///../../../src/components/VChip/VChip.ts","webpack:///../../../src/components/VChip/index.ts","webpack:///../../../src/components/VCheckbox/VSimpleCheckbox.ts","webpack:///../../../src/components/VDivider/VDivider.ts","webpack:///../../../src/components/VDivider/index.ts","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///../../../src/components/VSubheader/index.ts","webpack:///../../../src/components/VSelect/VSelectList.ts","webpack:///../../../src/mixins/comparable/index.ts","webpack:///../../../src/mixins/filterable/index.ts","webpack:///../../../src/components/VSelect/VSelect.ts","webpack:///../../../src/components/VSlider/VSlider.ts","webpack:///../../../src/components/VLabel/VLabel.ts","webpack:///../../../src/components/VLabel/index.ts","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///../../../src/components/VMessages/VMessages.ts","webpack:///../../../src/components/VMessages/index.ts","webpack:///../../../src/components/VInput/VInput.ts","webpack:///../../../src/components/VInput/index.ts","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/core-js/modules/es.string.small.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/modules/es.array.includes.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///../../../src/mixins/ssr-bootable/index.ts","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/modules/es.symbol.iterator.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///../../src/util/console.ts","webpack:///../../src/util/mergeData.ts","webpack:///../../../src/components/VList/VListItem.ts","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///../../../src/directives/resize/index.ts","webpack:///./node_modules/core-js/modules/es.object.freeze.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/modules/es.symbol.description.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///../../../src/mixins/menuable/index.ts","webpack:///../../../src/components/VMenu/VMenu.ts","webpack:///../../../src/mixins/returnable/index.ts","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///../../../src/components/VOverlay/VOverlay.ts","webpack:///../../../src/components/VOverlay/index.ts","webpack:///../../../src/mixins/overlayable/index.ts","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///../../../src/mixins/toggleable/index.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///../src/install.ts","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack:///../../src/locale/en.ts","webpack:///../../../src/presets/default/index.ts","webpack:///../../../src/services/service/index.ts","webpack:///../../../src/services/presets/index.ts","webpack:///../../../src/services/application/index.ts","webpack:///../../../src/services/breakpoint/index.ts","webpack:///../../../src/services/goto/easing-patterns.ts","webpack:///../../../src/services/goto/util.ts","webpack:///../../../src/services/goto/index.ts","webpack:///../../../../src/services/icons/presets/mdi-svg.ts","webpack:///../../../../src/services/icons/presets/md.ts","webpack:///../../../../src/services/icons/presets/mdi.ts","webpack:///../../../../src/services/icons/presets/fa.ts","webpack:///../../../../src/services/icons/presets/fa4.ts","webpack:///../../../../src/services/icons/presets/fa-svg.ts","webpack:///../../../../src/services/icons/presets/index.ts","webpack:///../../../src/services/icons/index.ts","webpack:///../../../src/services/lang/index.ts","webpack:///../../../src/util/color/transformCIELAB.ts","webpack:///../../../src/services/theme/utils.ts","webpack:///../../../src/services/theme/index.ts","webpack:///../src/framework.ts","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/core-js/internals/math-sign.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///../../../src/mixins/mobile/index.ts","webpack:///../../../src/directives/touch/index.ts","webpack:///../../../src/components/VNavigationDrawer/VNavigationDrawer.ts","webpack:///./node_modules/core-js/modules/es.array.slice.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///../../../src/mixins/positionable/index.ts","webpack:///./node_modules/core-js/internals/native-promise-constructor.js"],"names":["wellKnownSymbol","TO_STRING_TAG","test","module","exports","String","aFunction","fn","that","length","undefined","call","a","b","c","apply","arguments","$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","O","this","sourceLen","A","isObject","slice","factories","construct","C","argsLength","args","list","i","Function","join","bind","partArgs","boundFunction","concat","prototype","toIndexedObject","nativeGetOwnPropertyNames","f","toString","windowNames","window","Object","getOwnPropertyNames","getWindowNames","it","error","_unsupportedIterableToArray","o","minLen","arrayLikeToArray","n","constructor","name","Array","from","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","P","mergeTransitions","dest","origin","functional","props","group","type","default","hideOnLeave","leaveAbsolute","mode","render","tag","context","data","on","beforeEnter","el","h","mergeData","functions","expandedParentClass","x","sizeProperty","offsetProperty","transition","visibility","overflow","enter","initialStyle","offset","requestAnimationFrame","afterEnter","enterCancelled","leave","afterLeave","leaveCancelled","resetStyles","size","VFadeTransition","createSimpleTransition","VScaleTransition","VSlideXTransition","VExpandTransition","createJavascriptTransition","VExpandXTransition","$values","values","stat","fails","createElement","defineProperty","get","IS_PURE","ITERATOR","url","URL","searchParams","result","pathname","forEach","value","key","toJSON","sort","href","URLSearchParams","username","host","hash","requireObjectCoercible","repeat","count","str","Infinity","RangeError","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","speciesConstructor","advanceStringIndex","callRegExpExec","regexpExec","arrayPush","push","min","Math","MAX_UINT32","SUPPORTS_Y","RegExp","SPLIT","nativeSplit","maybeCallNative","internalSplit","split","separator","limit","string","lim","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","source","index","splitter","regexp","res","done","rx","S","unicodeMatching","p","q","e","z","is","y","isFontAwesome5","some","val","iconType","isSvgPath","icon","SIZE_MAP","VIcon","dense","disabled","left","right","Number","required","computed","medium","hasClickListener","Boolean","listeners$","click","methods","getIcon","iconName","$slots","text","getSize","sizes","xSmall","small","large","xLarge","explicitSize","getDefaultData","staticClass","class","attrs","attrs$","applyColors","themeClasses","renderFontIcon","newChildren","delimiterIndex","isMaterialIcon","fontSize","renderSvgIcon","wrapperData","style","height","width","svgData","xmlns","viewBox","role","d","renderSvgIconComponent","component","$_wrapperFor","children","$reduce","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","1","forced","reduce","callbackfn","classof","R","exec","TypeError","global","DOMIterables","createNonEnumerableProperty","COLLECTION_NAME","Collection","CollectionPrototype","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","_objectWithoutProperties","objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","baseMixins","directives","ClickOutside","dark","fullscreen","light","maxWidth","noClickAnimation","persistent","retainFocus","scrollable","activatedBy","animate","animateTimeout","isActive","stackMinZIndex","classes","contentClasses","hasActivator","$scopedSlots","watch","created","$attrs","hasOwnProperty","beforeMount","beforeDestroy","unbind","animateClick","closeConditional","_isDestroyed","$refs","content","contains","overlay","$el","activeZIndex","hideScroll","document","show","onClickOutside","onKeydown","getOpenDependents","activator","onFocusin","getOpenDependentElements","focusable","querySelectorAll","genContent","showLazyContent","root","tabindex","keydown","zIndex","ref","genTransition","$createElement","appear","genInnerContent","handler","include","transformOrigin","attach","openDelay","closeDelay","openTimeout","closeTimeout","clearDelay","clearTimeout","runDelay","delay","parseInt","setTimeout","cb","open","close","$forEach","filteredChild","VNode","createHTML","forcedStringHTMLMethod","anchor","Constructor","provide","isInGroup","listItemGroup","genData","setTextColor","getBuiltIn","SAFE_CLOSING","called","iteratorWithReturn","next","SKIP_CLOSING","ITERATION_SUPPORT","object","Ripple","activeClass","append","exact","exactActiveClass","link","to","nuxt","replace","ripple","proxyClass","computedRipple","isClickable","isLink","$listeners","styles","$route","generateRouteLink","path","onRouteChange","toggle","userAgent","V8_VERSION","SPECIES","METHOD_NAME","array","foo","stackElement","stackExclude","getMaxZIndex","exclude","base","zis","activeElements","isArrayIteratorMethod","getIteratorMethod","callWithSafeIterationClosing","Result","stopped","iterate","iterable","AS_ENTRIES","IS_ITERATOR","iterator","iterFn","step","stop","max","integer","redefine","setGlobal","copyConstructorProperties","isForced","options","FORCED","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","noTargetGet","sham","internalObjectKeys","enumBugKeys","hiddenKeys","maxHeight","minHeight","minWidth","measurableStyles","notARegExp","correctIsRegExpLogic","includes","searchString","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","unsafe","definePropertyModule","CONSTRUCTOR_NAME","configurable","normalizeComponent","scriptExports","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","_arrayWithoutHoles","arr","isArray","_iterableToArray","iter","Symbol","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","mixins","active","backgroundColor","backgroundOpacity","bufferValue","color","indeterminate","query","reverse","rounded","stream","striped","internalLazyValue","__cachedBackground","setBackgroundColor","backgroundStyle","__cachedBar","__cachedBarType","__cachedBuffer","__cachedDeterminate","__cachedIndeterminate","genProgressBar","__cachedStream","parseFloat","opacity","isReversed","normalizedBuffer","computedTransition","$vuetify","rtl","normalize","normalizedValue","reactive","slot","genListeners","listeners","onClick","bottom","top","loading","loaderHeight","genProgress","progress","absolute","VToolbarTitle","VToolbarItems","emptyObject","freeze","isUndef","v","isDef","isTrue","isFalse","isPrimitive","obj","_toString","isPlainObject","isValidArrayIndex","floor","isFinite","isPromise","then","catch","JSON","stringify","toNumber","isNaN","makeMap","expectsLowerCase","map","create","toLowerCase","isReservedAttribute","remove","item","splice","hasOwn","cached","cache","hit","camelizeRE","camelize","_","toUpperCase","capitalize","charAt","hyphenateRE","hyphenate","polyfillBind","ctx","boundFn","l","_length","nativeBind","toArray","start","ret","extend","_from","noop","no","identity","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","every","Date","getTime","keysA","keysB","looseIndexOf","once","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","config","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","async","_lifecycleHooks","unicodeRegExp","isReserved","charCodeAt","def","enumerable","writable","bailRE","parsePath","segments","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","navigator","isIE","isIE9","isEdge","isIOS","isFF","nativeWatch","supportsPassive","opts","addEventListener","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","set","clear","warn","uid","Dep","id","subs","addSub","sub","removeSub","depend","addDep","notify","update","targetStack","pushTarget","popTarget","pop","elm","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","componentInstance","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","prototypeAccessors","child","defineProperties","createEmptyVNode","node","createTextVNode","cloneVNode","vnode","cloned","arrayProto","arrayMethods","methodsToPatch","method","original","len","inserted","ob","__ob__","observeArray","dep","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","src","__proto__","observe","asRootData","isExtensible","_isVue","defineReactive$$1","customSetter","shallow","property","getter","setter","childOb","dependArray","newVal","del","items","strats","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","dedupeHooks","hooks","mergeAssets","key$1","inject","defaultStrat","normalizeProps","normalizeInject","normalized","normalizeDirectives","dirs","def$$1","mergeOptions","_base","extends","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","prop","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","_props","getType","isSameType","expectedTypes","handleError","err","info","cur","$parent","errorCaptured","capture","globalHandleError","invokeWithErrorHandling","_handled","logError","console","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","Promise","resolve","MutationObserver","setImmediate","counter","observer","textNode","createTextNode","characterData","nextTick","_resolve","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","passive","once$$1","createFnInvoker","fns","invoker","arguments$1","updateListeners","oldOn","remove$$1","createOnceHandler","old","event","params","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","altKey","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","last","shift","_isVList","initProvide","_provided","initInjections","resolveInject","provideKey","provideDefault","resolveSlots","slots","name$1","isWhitespace","normalizeScopedSlots","normalSlots","prevSlots","hasNormalSlots","isStable","$stable","$key","_normalized","$hasNormal","normalizeScopedSlot","key$2","proxyNormalSlot","proxy","renderList","renderSlot","fallback","bindObject","nodes","scopedSlotFn","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","loop","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_i","_m","_f","_k","_b","_v","_e","_u","_g","_d","_p","FunctionalRenderContext","contextVm","this$1","_original","isCompiled","needNormalization","injections","scopedSlots","_c","createFunctionalComponent","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","clone","componentVNodeHooks","init","hydrating","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","insert","_isMounted","callHook","queueActivatedComponent","activateChildComponent","destroy","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","cid","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","model","transformModel","nativeOn","abstract","installComponentHooks","_isComponent","_parentVnode","inlineTemplate","toMerge","_merged","mergeHook$1","f1","f2","callback","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","_createElement","pre","applyNS","registerDeepBindings","force","initRender","_vnode","parentVnode","_renderChildren","parentData","_parentListeners","currentRenderingInstance","renderMixin","Vue","$nextTick","_render","ensureCtor","comp","__esModule","toStringTag","factory","errorComp","resolved","owner","owners","loadingComp","sync","timerLoading","timerTimeout","$on","forceRender","renderCompleted","$forceUpdate","reject","reason","timeout","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","remove$1","$off","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i$1","cbs","$emit","setActiveInstance","prevActiveInstance","initLifecycle","$children","_watcher","_inactive","_directInactive","_isBeingDestroyed","lifecycleMixin","_update","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","teardown","_watchers","_data","mountComponent","updateComponent","Watcher","before","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","propKeys","_propKeys","isInInactiveTree","direct","handlers","j","queue","activatedChildren","waiting","flushing","resetSchedulerState","currentFlushTimestamp","getNow","now","createEvent","timeStamp","flushSchedulerQueue","watcher","run","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","emit","queueWatcher","uid$2","expOrFn","isRenderWatcher","deep","user","lazy","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","tmp","oldValue","evaluate","sharedPropertyDefinition","sourceKey","initState","initProps","initMethods","initData","initComputed","initWatch","propsOptions","isRoot","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$set","$delete","immediate","uid$3","initMixin","_init","_uid","initInternalComponent","_self","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","components","modified","latest","sealed","sealedOptions","initUse","use","plugin","installedPlugins","_installedPlugins","unshift","install","initMixin$1","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps$1","initComputed$1","Comp","initAssetRegisters","definition","getComponentName","matches","pattern","pruneCache","keepAliveInstance","filter","cachedNode","pruneCacheEntry","current","cached$$1","patternTypes","KeepAlive","destroyed","mounted","ref$1","builtInComponents","initGlobalAPI","configDef","util","defineReactive","delete","observable","version","acceptValue","attr","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","parentNode","childNode","mergeClassData","renderClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","selected","querySelector","createElement$1","tagName","multiple","setAttribute","createElementNS","namespace","createComment","insertBefore","newNode","referenceNode","removeChild","appendChild","nextSibling","setTextContent","textContent","setStyleScope","nodeOps","registerRef","isRemoval","refs","refInFor","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","modules","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","activate","ref$$1","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","rm","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","end","hydrate","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","innerHTML","childrenMatch","firstChild","fullInvoke","isInitialPatch","isRealElement","nodeType","hasAttribute","removeAttribute","oldElm","_leaveCb","patchable","i$2","updateDirectives","oldDir","dir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","arg","callHook$1","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","stopImmediatePropagation","removeEventListener","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","target$1","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","change","createOnceHandler$1","remove$2","useMicrotaskFix","add$1","attachedTimestamp","_wrapper","currentTarget","ownerDocument","updateDOMListeners","svgContainer","events","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","activeElement","_vModifiers","number","trim","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","setProperty","normalizedName","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","whitespaceRE","addClass","classList","getAttribute","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","onEnd","transformRE","getComputedStyle","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","s","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeAppear","afterAppear","appearCancelled","duration","transitionNode","isAppear","startClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","beforeLeave","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","patch","vmodel","trigger","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions","curOptions","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","option","selectedIndex","initEvent","dispatchEvent","locateNode","transition$$1","originalDisplay","__vOriginalDisplay","display","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave","moveClass","TransitionGroup","kept","prevChildren","rawChildren","transitionData","removed","c$1","pos","getBoundingClientRect","updated","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","body","offsetHeight","moved","transform","WebkitTransform","transitionDuration","_moveCb","propertyName","_hasMove","cloneNode","newPos","oldPos","dx","dy","platformComponents","EOF","USE_NATIVE_URL","anInstance","assign","arrayFrom","codeAt","toASCII","setToStringTag","URLSearchParamsModule","InternalStateModule","NativeURL","getInternalSearchParamsState","getState","setInternalState","getInternalURLState","getterFor","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","input","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","ipv4","parts","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","encodeURIComponent","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","second","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","state","buffer","seenAt","seenBracket","seenPasswordToken","port","fragment","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","updateSearchParams","updateURL","serializeURL","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","defer","channel","html","IS_IOS","location","clearImmediate","process","MessageChannel","Dispatch","ONREADYSTATECHANGE","runner","listener","post","postMessage","port2","port1","onmessage","importScripts","versions","v8","applyMixin","vuexInit","store","$store","devtoolHook","devtoolPlugin","_devtoolHook","targetState","replaceState","subscribe","mutation","prepend","subscribeAction","action","find","deepCopy","copy","forEachValue","partial","Module","rawModule","runtime","_children","_rawModule","rawState","namespaced","addChild","getChild","hasChild","actions","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","targetModule","newModule","getNamespace","rawChildModule","unregister","isRegistered","Store","plugins","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","dispatch","commit","payload","installModule","resetStoreVM","useDevtools","prototypeAccessors$1","genericSubscribe","resetStore","hot","oldVm","_vm","wrappedGetters","$$state","enableStrictMode","_withCommit","rootState","parentState","getNestedState","moduleName","local","makeLocalContext","namespacedType","registerMutation","registerAction","registerGetter","noNamespace","_type","_payload","_options","unifyObjectStyle","makeLocalGetters","gettersProxy","splitPos","localType","entry","rootGetters","rawGetter","_Vue","all","after","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","isValidMap","helper","createLogger","collapsed","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","logger","prevState","nextState","formattedTime","getFormattedTime","formattedMutation","message","startMessage","log","endMessage","formattedAction","groupCollapsed","groupEnd","time","pad","getHours","getMinutes","getSeconds","getMilliseconds","times","num","installedModules","__webpack_require__","moduleId","m","r","t","LIBRARY","$export","hide","Iterators","$iterCreate","getPrototypeOf","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","DEFAULT","IS_SET","IteratorPrototype","getMethod","kind","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","F","defined","at","$keys","dP","getKeys","Properties","wks","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","strfn","rxfn","cof","ARG","tryGet","T","B","callee","SRC","$toString","TPL","inspectSource","safe","isFunction","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","contentWindow","write","USE_SYMBOL","$exports","INCLUDES","createDesc","ObjectProto","ceil","bitmap","MATCH","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","core","SHARED","copyright","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","builtinExec","shared","$includes","IObject","valueOf","gOPS","pIE","$assign","K","k","aLen","getSymbols","isEnum","self","__g","__e","Attributes","UNSCOPABLES","ArrayProto","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","searchValue","replaceValue","functionalReplace","fullUnicode","results","matchStr","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","symbols","$iterators","ArrayValues","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","__webpack_exports__","insertNodeAt","getConsole","regex","parentElement","fatherNode","refNode","g","px","random","addToUnscopables","iterated","Arguments","arrayIndexOf","names","STARTS_WITH","$startsWith","currentScript","scripts","getElementsByTagName","Error","stack","readyState","documentElement","setPublicPath_i","_arrayWithHoles","_iterableToArrayLimit","_arr","_arrayLikeToArray","arr2","_nonIterableRest","_slicedToArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","buildAttribute","propName","computeVmIndex","element","elt","_computeIndexes","isTransition","footerOffset","elmFromNodes","footerIndex","rawIndexes","idx","ind","evtName","evtData","_this","delegateAndEmit","_this2","realList","isTransitionName","vuedraggable_isTransition","_slots","getSlot","scopedSlot","computeChildrenAndOffsets","headerOffset","header","footer","getComponentAttributes","componentData","attributes","componentDataAttrs","eventsListened","eventsToEmit","readonlyProperties","evt","draggingElement","noTransitionOnDrag","move","draggableComponent","transitionMode","noneFunctionalComponentMode","_computeChildrenAndOf","getTag","_this3","nodeName","getIsFunctional","optionsAdded","onMove","originalEvent","onDragMove","draggable","_sortable","rootContainer","computeIndexes","newOptionValue","updateOptions","getChildrenNodes","rawNodes","_this4","visibleIndexes","getUnderlyingVm","htmlElt","getUnderlyingPotencialDraggableComponent","_ref","vue","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","updatePosition","oldIndex","newIndex","getRelatedContextFromMoveEvent","_ref2","related","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","resetTransitionData","transitionContainer","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","pullMode","onDragUpdate","updateProperty","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","currentIndex","draggedInList","willInsertAfter","draggedContext","futureIndex","sendEvt","onDragEnd","vuedraggable","generateWarning","defaultImpl","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","FAILS_ON_PRIMITIVES","objectKeys","arrayWithHoles","iterableToArrayLimit","nonIterableRest","errorCount","errorMessages","messages","readonly","rules","success","successMessages","validateOnBlur","errorBucket","hasColor","hasFocused","hasInput","isFocused","isResetting","lazyValue","valid","computedColor","isDark","hasError","internalErrorMessages","hasSuccess","internalSuccessMessages","externalError","hasMessages","validationTarget","hasState","shouldValidate","genInternalMessages","internalMessages","internalValue","isDisabled","form","isInteractive","isReadonly","validations","validationState","reset","resetValidation","validate","rule","app","applicationProperty","prev","removeApplication","activated","deactivated","callUpdate","updateApplication","defineIterator","STRING_ITERATOR","getInternalState","point","sign","abs","cbrt","Scroll","scrollTarget","scrollThreshold","currentScroll","currentThreshold","isScrollingUp","previousScroll","savedScroll","canScroll","computedScrollThreshold","onScroll","thresholdMet","clippedLeft","clippedRight","collapseOnScroll","elevateOnScroll","fadeImgOnScroll","hideOnScroll","invertedScroll","scrollOffScreen","shrinkOnScroll","VToolbar","collapse","computedContentHeight","difference","iteration","computedFontSize","increment","computedLeft","application","computedMarginTop","computedOpacity","computedOriginalHeight","computedRight","computedTransform","hideShadow","isCollapsed","isProminent","marginTop","genBackground","computedHeight","ArrayPrototype","$some","nativeMatch","matcher","defaultConstructor","$trim","forcedStringTrimMethod","validator","internalActivator","openOnHover","openOnFocus","activatorElement","activatorNode","slotType","addActivatorEvents","genActivator","genActivatorAttributes","genActivatorListeners","getActivator","getContentSlot","getValueProxy","removeActivatorEvents","resetActivator","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","instance","lazyValidation","inputs","errorBag","errors","watchInput","resetErrorBag","found","unwatch","novalidate","submit","avatar","bordered","dot","label","inline","offsetX","offsetY","overlap","tile","computedBottom","computedTop","computedXOffset","calcPosition","computedYOffset","isRtl","genBadge","lang","title","badge","genBadgeContent","genBadgeWrapper","createMethod","$filter","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","createProperty","arrayLike","argumentsLength","mapfn","mapping","iteratorMethod","groupClasses","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","comparefn","collection","collectionStrong","argument","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","replacer","_typeof","enumerableOnly","sym","_objectSpread2","getOwnPropertyDescriptors","DELAY_RIPPLE","isTouchEvent","isKeyboardEvent","calculate","localX","localY","radius","scale","centerX","centerY","ripples","container","animation","diff","isRippleEnabled","rippleShow","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyboardRippleHide","updateRipple","enabled","removeListeners","wasEnabled","appendIcon","noAction","prependIcon","subGroup","listClick","matchRoute","genIcon","genAppendIcon","genHeader","inputValue","genItems","genPrependIcon","isBooted","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","whitespaces","whitespace","ltrim","rtrim","TYPE","defaultSlot","roundedClasses","horizontal","VListItemActionText","VListItemContent","VListItemTitle","VListItemSubtitle","VList","VListGroup","VListItem","VListItemAction","VListItemGroup","VListItemIcon","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","encode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","encoded","labels","BaseItemGroup","mandatory","selectedItem","selectedItems","selectedValues","toggleMethod","valueIndex","updateInternalValue","updateItem","updateItemsState","updateMultiple","updateSingle","updateMandatory","defaultValue","isSame","itemGroup","IndexedObject","nativeAssign","alphabet","chr","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","className","breakpoint","cols","alignSelf","cacheKey","hasColClasses","CONVERT_TO_STRING","first","redefineAll","setSpecies","fastKey","internalStateGetterFor","getConstructor","wrapper","IS_MAP","ADDER","define","previous","getEntry","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","originalArray","NATIVE_WEAK_MAP","objectHas","sharedKey","WeakMap","enforce","wmget","wmhas","wmset","metadata","STATE","InternalMetadataModule","checkCorrectnessOfIteration","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","REQUIRED","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","enforceInternalState","TEMPLATE","simple","TO_ENTRIES","setPrototypeOf","Wrapper","NewTarget","NewTargetPrototype","extended","extensionHeight","floating","prominent","short","isExtended","breakingProps","image","img","genExtension","wrappedWellKnownSymbolModule","theme","Themeable","themeableProvide","appIsDark","rootIsDark","rootThemeClasses","validateAttachTarget","Node","contentClass","hasDetached","hasContent","getScopeIdAttrs","initDetach","rgb","hexColor","intToHex","colorToInt","activeXDocument","documentCreateElement","GT","LT","SCRIPT","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","temp","parentWindow","NullProtoObjectViaIFrame","JS","NullProtoObject","domain","ActiveXObject","$find","FIND","SKIPS_HOLES","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","ENTRIES","Iterable","IteratorConstructor","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","makeWatcher","$data","passiveSupported","testListenerOpts","deepEqual","getNestedValue","getObjectValueByPath","getZIndex","tagsToReplace","filtered","unit","tab","esc","space","up","down","home","backspace","pageup","pagedown","iconPath","optional","chunked","mergeDeep","endPos","button","rotate","calculatedSize","circumference","strokeDashArray","strokeDashOffset","strokeWidth","svgStyles","viewBoxSize","genCircle","fill","cx","cy","genSvg","genInfo","btnToggle","block","depressed","fab","outlined","retainFocusOnClick","sizeableClasses","contained","defaultRipple","circle","isFlat","isRound","genLoader","loader","setColor","propertyKey","quot","attribute","p1","isGreater","onObserve","onVisible","dirtyTypes","appendOuterIcon","autofocus","clearable","clearIcon","counterValue","filled","fullWidth","prefix","prependInnerIcon","shaped","singleLine","solo","soloInverted","suffix","badInput","labelWidth","prefixWidth","prependWidth","initialValue","isClearing","VInput","computedCounterValue","hasCounter","hasDetails","isDirty","isEnclosed","isLabelActive","isSingle","isSolo","labelPosition","labelValue","showLabel","hasLabel","focus","blur","clearableCallback","genAppendSlot","genSlot","genPrependInnerSlot","genIconSlot","genInputSlot","genClearIcon","genCounter","genControl","genDefaultSlot","genFieldset","genLabel","focused","for","VLabel","genLegend","span","genInput","onKeyDown","genMessages","messagesNode","counterNode","genTextFieldSlot","genAffix","onBlur","onFocus","onInput","onMouseDown","onMouseUp","setLabelWidth","scrollWidth","setPrefixWidth","setPrependWidth","tryAutofocus","updateValue","isInList","isInMenu","isInNav","expand","nav","subheader","threeLine","twoLine","findIndex","functionToString","srgbForwardMatrix","srgbForwardTransform","srgbReverseMatrix","srgbReverseTransform","matrix","xyz","elevation","computedElevation","elevationClasses","IntersectionObserver","isIntersecting","Intersect","postfix","stickyHelpers","UNSUPPORTED_Y","BROKEN_CARET","charsAdded","strCopy","feature","detection","POLYFILL","NATIVE","getIterator","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","plus","sequences","percentSequence","bytes","percentDecode","sequence","decodeURIComponent","deserialize","serialize","parseSearchParams","validateArgumentsLength","passed","URLSearchParamsIterator","URLSearchParamsConstructor","entryIterator","entryNext","URLSearchParamsPrototype","getAll","entriesIndex","sliceIndex","fetch","headers","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","VCardActions","VCardSubtitle","VCardText","VCardTitle","returnMethod","nativeDefineProperty","eager","RE","nativeJoin","ES3_STRINGS","composite","defaultConditional","elements","depth","mapper","thisArg","targetIndex","sourceIndex","mapFn","ACCESSORS","0","MAXIMUM_ALLOWED_LENGTH_EXCEEDED","deleteCount","insertCount","actualDeleteCount","actualStart","Proxyable","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","nativeObjectCreate","getOwnPropertyNamesExternal","getOwnPropertyDescriptorModule","defineWellKnownSymbol","HIDDEN","TO_PRIMITIVE","ObjectPrototype","$Symbol","$stringify","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","WellKnownSymbolsStore","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","wrap","description","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","V","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","useSetter","useSimple","FORCED_JSON_STRINGIFY","$replacer","fluid","$every","INCORRECT_ITERATION","paddingTop","paddingRight","paddingBottom","paddingLeft","NativePromise","promiseResolve","NON_GENERIC","real","onFinally","colorName","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","maxCode","digits","NaN","NumberWrapper","_defineProperty","_extends","_objectSpread","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","off","selector","substring","msMatchesSelector","webkitMatchesSelector","getParentOrHost","closest","includeCTX","_throttleTimeout","R_SPACE","toggleClass","defaultView","currentStyle","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","elRect","innerHeight","innerWidth","containerRect","elMatrix","scaleX","scaleY","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","visible","childNum","currentChild","Sortable","ghost","dragged","lastChild","lastElementChild","previousElementSibling","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","indexOfObject","includeSelf","elem","gotSelf","clientWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","dst","isRectEqual","rect1","rect2","round","throttle","ms","cancelThrottle","scrollBy","Polymer","jQuery","Zepto","dom","setRect","rect","unsetRect","expando","AnimationStateManager","animationCallbackId","animationStates","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","animateAll","animating","animationTime","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","calculateRealTime","animationResetTimer","currentRect","translateX","translateY","animatingX","animatingY","repaint","easing","animated","offsetWidth","sqrt","defaults","initializeByDefault","PluginManager","mount","pluginEvent","eventName","sortable","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","rootEl","targetEl","cloneEl","toEl","fromEl","oldDraggableIndex","newDraggableIndex","putSortable","extraEventProperties","onName","substr","CustomEvent","bubbles","cancelable","lastPutMode","allEventProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","activeSortable","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","pointerEvents","_detectDirection","elCSS","elWidth","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_dragElInRowColumn","dragRect","targetRect","vertical","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_detectNearestEmptySortable","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","_prepareGroup","toFn","pull","sameGroup","otherGroup","originalGroup","checkPull","checkPut","put","revertClone","preventDefault","stopPropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","setData","dataTransfer","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","_globalDragOver","dropEffect","_onMove","retVal","onMoveFn","draggedRect","relatedRect","_disableDraggable","_unsilent","_ghostIsLast","spacer","_getSwapDirection","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_generateId","sum","_saveInputCheckedState","checked","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","composedPath","isContentEditable","criteria","_prepareDragStart","dragStartFn","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","selection","empty","getSelection","removeAllRanges","_dragStarted","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","cssMatrix","_hideClone","cloneId","_loopId","setInterval","effectAllowed","_dragStartId","revert","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","side1","scrolledPastTop","scrollBefore","dragIndex","nextElementSibling","moveVector","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","save","handleEvent","utils","cancelNextTick","detectDirection","_len","_key","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","AutoScrollPlugin","AutoScroll","scroll","scrollSensitivity","scrollSpeed","bubbleScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverCompleted","dragOverBubble","drop","clearPointerElemChangedInterval","clearAutoScrolls","nulling","autoScroll","ogElemScroller","newElem","pid","lastSwapEl","isFallback","scrollCustomFn","sens","speed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","prevSwapEl","_ref3","swapNodes","swapItem","n1","n2","i1","i2","p2","isEqualNode","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","removeMultiDragElements","dragOver","_ref8","_ref9","insertMultiDragElements","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","shiftKey","multiDragIndex","nullingGlobal","destroyGlobal","select","deselect","oldIndicies","newIndicies","clones","clonesInserted","elementsInserted","dotAll","aspectRatio","computedAspectRatio","aspectStyle","__cachedSizer","hasIntersect","intersect","alt","contain","gradient","lazySrc","rootMargin","srcset","currentSrc","isLoading","calculatedAspectRatio","naturalWidth","normalisedSrc","aspect","__cachedImage","backgroundImage","backgroundPosition","loadImage","lazyImg","onLoad","onError","getSrc","pollForSize","poll","naturalHeight","__genPlaceholder","thrower","argument0","argument1","PrototypeOfArrayIteratorPrototype","arrayIterator","TO_STRING_TAG_SUPPORT","hover","raised","FunctionPrototype","FunctionPrototypeToString","nameRE","flush","head","promise","macrotask","WebKitMutationObserver","IS_NODE","queueMicrotaskDescriptor","queueMicrotask","exit","task","createWellKnownSymbol","withoutSetter","nativeKeys","thisNumberValue","nativeToFixed","toFixed","acc","x2","fractionDigits","fractDigits","multiply","c2","divide","dataToString","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","searchChildren","closeDependents","isDependent","openDependents","getClickableDependentElements","_createForOfIteratorHelper","allowArrayLike","normalCompletion","didErr","_e2","chipGroup","closeIcon","filterIcon","pill","textColor","hasClose","genFilter","genClose","indeterminateIcon","onIcon","offIcon","center","inset","orientation","hideSelected","itemDisabled","itemText","itemValue","noDataText","noFilter","searchInput","parsedItems","tileActiveClass","staticNoDataTile","mousedown","genTileContent","genAction","genDivider","genFilteredText","getMaskedCharacters","genHighlight","middle","genTile","hasItem","getDisabled","needsTile","getText","itemsLength","valueComparator","defaultMenuProps","closeOnClick","closeOnContentClick","disableKeys","openOnClick","cacheItems","chips","deletableChips","disableLookup","itemColor","menuProps","openOnClear","returnObject","smallChips","cachedItems","menuIsBooted","isMenuActive","lastItem","keyboardLookupPrefix","keyboardLookupLastTime","allItems","filterDuplicates","computedItems","computedOwns","dynamicHeight","hasChips","hasSlot","listData","selectItem","staticList","VSelectList","virtualizedItems","$_menuProps","menuCanShow","normalisedProps","nudgeBottom","activateMenu","getContent","uniqueValues","findExistingIndex","menu","genChipSelection","genCommaSelection","selections","autocomplete","keypress","onKeyPress","genHiddenInput","genList","genListWithSlot","slotName","genMenu","VMenu","genSelections","genSelection","genSlotSelection","getMenuIndex","onChipInput","setValue","isAppendInner","onEscDown","KEYBOARD_LOOKUP_THRESHOLD","keyCode","onUpDown","onTabDown","onSpaceDown","onMenuActiveChange","hasMouseDown","showMoreItems","activeTile","listIndex","setMenuIndex","setSelectedItems","appendInner","inverseLabel","thumbColor","thumbLabel","thumbSize","tickLabels","ticks","tickSize","trackColor","trackFillColor","keyPressed","noClick","roundValue","trackTransition","minValue","maxValue","stepNumeric","inputWidth","trackFillStyles","startDir","endDir","valueDir","trackStyles","showTicks","numTicks","showThumbLabel","computedTrackColor","computedTrackFillColor","computedThumbColor","parsed","slider","genSlider","onSliderClick","genChildren","genThumbContainer","genTrackContainer","genSteps","range","offsetDirection","thumbLabelContent","genThumbLabelContent","genThumbLabel","getThumbContainerStyles","keyup","touchstart","onDrag","genThumb","onThumbMouseDown","mouseUpOptions","mouseMoveOptions","onSliderMouseUp","onMouseMove","parseMouseMove","parseKeyDown","onKeyUp","thumb","track","trackLength","clickOffset","clickPos","isInsideTrack","trackStart","steps","increase","multiplier","trimmedStep","decimals","newValue","preventExtensions","PREFERRED_STRING","genMessage","hideDetails","hint","persistentHint","computedId","messagesToDisplay","hasHint","validation","validationResult","showDetails","extraData","hasListener","mouseup","genPrependSlot","$findIndex","FIND_INDEX","fixed","non","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","EXISTS","newPromiseCapability","promiseCapability","variable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","IS_RIGHT","memo","stringMethod","regexMethod","$map","createMessage","generateComponentTrace","newMessage","consoleWarn","consoleError","classifyRE","classify","formatComponentName","includeFile","currentRecursiveSequence","styleList","styleProp","parseStyle","styleMap","mergeTarget","mergeClasses","mergeStyles","mergeListeners","inactive","selectable","genAttrs","check","globalThis","Resize","FREEZING","onFreeze","nativeFreeze","ArrayIteratorMethods","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","ARRAY_ITERATOR","allowOverflow","nudgeLeft","nudgeRight","nudgeTop","nudgeWidth","offsetOverflow","positionX","positionY","absoluteX","absoluteY","activatorFixed","dimensions","hasJustFocused","hasWindow","inputActivator","isContentActive","pageWidth","pageYOffset","stackClass","activatorLeft","absolutePosition","calcLeft","calcXOverflow","calcTop","calcYOverflow","xOverflow","documentHeight","toTop","contentHeight","totalHeight","isOverflowing","callActivate","callDeactivate","checkForPageYOffset","checkActivatorFixed","deactivate","getInnerHeight","getOffsetLeft","getOffsetTop","getRoundedBoundedClientRect","measure","sneakPeek","startTransition","updateDimensions","auto","calculatedTopAuto","defaultOffset","resizeTimeout","tiles","calculatedLeft","menuWidth","calculatedMaxHeight","calculatedMaxWidth","calculatedMinWidth","calculatedTop","hasClickableTiles","calcScrollPosition","maxScrollTop","calcLeftAuto","calcTopAuto","tileDistanceFromMenuTop","firstTileOffsetTop","changeListIndex","genDirectives","menuable__content__active","getTiles","mouseEnterHandler","mouseLeaveHandler","nextTile","prevTile","onResize","returnValue","originalValue","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","microtask","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","newGenericPromiseCapability","DISPATCH_EVENT","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","GLOBAL_CORE_JS_PROMISE","PromiseRejectionEvent","FakePromise","isThenable","isReject","notified","chain","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","__scrim","hideOverlay","overlayColor","overlayOpacity","animationFrame","genOverlay","createOverlay","removeOverlay","showScroll","cancelAnimationFrame","scrollListener","checkPath","hasScrollbar","shouldScroll","isInside","dialog","PromiseCapability","$$resolve","$$reject","METADATA","setMetadata","objectID","weakData","getWeakData","meta","Toggleable","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","registerComponents","_setPrototypeOf","_inherits","subClass","superClass","_getPrototypeOf","_isNativeReflectConstruct","Proxy","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","possibleConstructorReturn","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","datePicker","itemsSelected","nextMonthAriaLabel","nextYearAriaLabel","prevMonthAriaLabel","prevYearAriaLabel","carousel","calendar","moreEvents","fileInput","counterSize","timePicker","am","pm","pagination","page","currentPage","mobileBreakpoint","scrollBarWidth","thresholds","xs","sm","md","lg","icons","iconfont","locales","en","disable","cspNonce","customProperties","minifyTheme","themeCache","variations","themes","primary","secondary","accent","warning","framework","defaultPreset","userPreset","preset","globalPreset","bar","insetFooter","xl","xsOnly","smOnly","smAndDown","smAndUp","mdOnly","mdAndDown","mdAndUp","lgOnly","lgAndDown","lgAndUp","xlOnly","mobile","Breakpoint","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","totalOffset","_settings","settings","appOffset","getContainer","goTo","isDrawer","isClipped","startTime","targetLocation","getOffset","startLocation","ease","timeElapsed","currentTime","complete","checkboxOn","checkboxOff","checkboxIndeterminate","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","unfold","minus","iconSet","convertToComponentDeclarations","mdiSvg","mdi","fa","fa4","faSvg","Icons","presets","LANG_PREFIX","getTranslation","usingDefault","shortKey","translation","locale","defaultLocale","Lang","translator","currentLocale","cielabForwardTransform","cielabReverseTransform","transformedY","Ln","lab","isItem","variant","colors","parsedTheme","parse","genVariations","genBaseColor","genColorVariableName","genColorVariable","cssVar","variablesCss","aColor","variants","variantValue","lighten","darken","amount","vueInstance","vueMeta","Theme","defaultTheme","metaKeyName","getOptions","metaInfo","vuetifyStylesheet","nonce","addApp","styleEl","oldDark","currentTheme","installed","service","Service","classofRaw","CORRECT_ARGUMENTS","isMobile","mobileWidth","isNumber","handleGesture","touchendY","dirRatio","minDistance","touchendX","touchstartX","touchstartY","createHandlers","touchmoveX","touchmoveY","touchend","touchmove","Touch","clipped","disableResizeWatcher","disableRouteWatcher","expandOnHover","miniVariant","miniVariantWidth","permanent","stateless","temporary","touchless","isMouseover","touchArea","computedMaxHeight","computedWidth","isMiniVariant","hasApp","isBottom","reactsToClick","reactsToMobile","reactsToResize","reactsToRoute","showOverlay","translate","calculateTouchArea","parentRect","genAppend","genPosition","VImg","swipeRight","transitionend","resizeEvent","genPrepend","genBorder","swipeLeft","updateMiniVariant","nativeSlice","fin","availableProps"],"mappings":"oGAAA,IAAIA,EAAkB,EAAQ,QAE1BC,EAAgBD,EAAgB,eAChCE,EAAO,GAEXA,EAAKD,GAAiB,IAEtBE,EAAOC,QAA2B,eAAjBC,OAAOH,I,uBCPxB,IAAII,EAAY,EAAQ,QAGxBH,EAAOC,QAAU,SAAUG,EAAIC,EAAMC,GAEnC,GADAH,EAAUC,QACGG,IAATF,EAAoB,OAAOD,EAC/B,OAAQE,GACN,KAAK,EAAG,OAAO,WACb,OAAOF,EAAGI,KAAKH,IAEjB,KAAK,EAAG,OAAO,SAAUI,GACvB,OAAOL,EAAGI,KAAKH,EAAMI,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGC,GAC1B,OAAON,EAAGI,KAAKH,EAAMI,EAAGC,IAE1B,KAAK,EAAG,OAAO,SAAUD,EAAGC,EAAGC,GAC7B,OAAOP,EAAGI,KAAKH,EAAMI,EAAGC,EAAGC,IAG/B,OAAO,WACL,OAAOP,EAAGQ,MAAMP,EAAMQ,c,oCCpB1B,IAAIC,EAAI,EAAQ,QACZC,EAAmB,EAAQ,QAC3BC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAY,EAAQ,QACpBC,EAAqB,EAAQ,QAIjCL,EAAE,CAAEM,OAAQ,QAASC,OAAO,GAAQ,CAClCC,KAAM,WACJ,IAAIC,EAAWV,UAAUP,OAASO,UAAU,QAAKN,EAC7CiB,EAAIR,EAASS,MACbC,EAAYT,EAASO,EAAElB,QACvBqB,EAAIR,EAAmBK,EAAG,GAE9B,OADAG,EAAErB,OAASS,EAAiBY,EAAGH,EAAGA,EAAGE,EAAW,OAAgBnB,IAAbgB,EAAyB,EAAIL,EAAUK,IACnFI,M,oCChBX,IAAIxB,EAAY,EAAQ,QACpByB,EAAW,EAAQ,QAEnBC,EAAQ,GAAGA,MACXC,EAAY,GAEZC,EAAY,SAAUC,EAAGC,EAAYC,GACvC,KAAMD,KAAcH,GAAY,CAC9B,IAAK,IAAIK,EAAO,GAAIC,EAAI,EAAGA,EAAIH,EAAYG,IAAKD,EAAKC,GAAK,KAAOA,EAAI,IAErEN,EAAUG,GAAcI,SAAS,MAAO,gBAAkBF,EAAKG,KAAK,KAAO,KAC3E,OAAOR,EAAUG,GAAYD,EAAGE,IAKpClC,EAAOC,QAAUoC,SAASE,MAAQ,SAAclC,GAC9C,IAAID,EAAKD,EAAUsB,MACfe,EAAWX,EAAMrB,KAAKK,UAAW,GACjC4B,EAAgB,WAClB,IAAIP,EAAOM,EAASE,OAAOb,EAAMrB,KAAKK,YACtC,OAAOY,gBAAgBgB,EAAgBV,EAAU3B,EAAI8B,EAAK5B,OAAQ4B,GAAQ9B,EAAGQ,MAAMP,EAAM6B,IAG3F,OADIN,EAASxB,EAAGuC,aAAYF,EAAcE,UAAYvC,EAAGuC,WAClDF,I,uBCzBT,IAAIG,EAAkB,EAAQ,QAC1BC,EAA4B,EAAQ,QAA8CC,EAElFC,EAAW,GAAGA,SAEdC,EAA+B,iBAAVC,QAAsBA,QAAUC,OAAOC,oBAC5DD,OAAOC,oBAAoBF,QAAU,GAErCG,EAAiB,SAAUC,GAC7B,IACE,OAAOR,EAA0BQ,GACjC,MAAOC,GACP,OAAON,EAAYnB,UAKvB7B,EAAOC,QAAQ6C,EAAI,SAA6BO,GAC9C,OAAOL,GAAoC,mBAArBD,EAASvC,KAAK6C,GAChCD,EAAeC,GACfR,EAA0BD,EAAgBS,M,kJCnBjC,SAASE,EAA4BC,EAAGC,GACrD,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOE,eAAiBF,EAAGC,GACtD,IAAIE,EAAIT,OAAOP,UAAUI,SAASvC,KAAKgD,GAAG3B,MAAM,GAAI,GAEpD,MADU,WAAN8B,GAAkBH,EAAEI,cAAaD,EAAIH,EAAEI,YAAYC,MAC7C,QAANF,GAAqB,QAANA,EAAoBG,MAAMC,KAAKP,GACxC,cAANG,GAAqB,2CAA2C5D,KAAK4D,GAAWD,eAAiBF,EAAGC,QAAxG,K,uBCPF,IAAIO,EAAc,EAAQ,QACtBC,EAA6B,EAAQ,QACrCC,EAA2B,EAAQ,QACnCtB,EAAkB,EAAQ,QAC1BuB,EAAc,EAAQ,QACtBC,EAAM,EAAQ,QACdC,EAAiB,EAAQ,QAEzBC,EAAiCpB,OAAOqB,yBAI5CtE,EAAQ6C,EAAIkB,EAAcM,EAAiC,SAAkC9C,EAAGgD,GAG9F,GAFAhD,EAAIoB,EAAgBpB,GACpBgD,EAAIL,EAAYK,GAAG,GACfH,EAAgB,IAClB,OAAOC,EAA+B9C,EAAGgD,GACzC,MAAOlB,IACT,GAAIc,EAAI5C,EAAGgD,GAAI,OAAON,GAA0BD,EAA2BnB,EAAEtC,KAAKgB,EAAGgD,GAAIhD,EAAEgD,M,wOCf7F,SAASC,IAEkC,UADzCC,EACyC,uDAF3C,GAE2C,mBAF3C,EAE2C,iCAF3C,EAE2C,kBAGzC,OAAO,EAAAZ,SAAA,0BAAP,IAGI,cAGS,IADba,EACa,uDAHT,iBAGS,uCAEb,MAAO,CACLd,OAEAe,YAHK,EAKLC,MAAO,CACLC,MAAO,CACLC,KADK,QAELC,SAAS,GAEXC,YAAa,CACXF,KADW,QAEXC,SAAS,GAEXE,cAAe,CACbH,KADa,QAEbC,SAAS,GAEXG,KAAM,CACJJ,KADI,OAEJC,QAASG,GAEXR,OAAQ,CACNI,KADM,OAENC,QAASL,IAIbS,OA5BK,SA4BC,KACJ,IAAMC,EAAM,aAAH,OAAgBC,EAAA,qBAAzB,IACMC,EAAkB,CACtBV,MAAO,CACLhB,OACAsB,KAAMG,EAAA,MAAcH,MAEtBK,GAAI,CACFC,YADE,SACS,GACTC,EAAA,sBAA2BJ,EAAA,MAA3B,OACAI,EAAA,4BAAiCJ,EAAA,MAAjC,UAYN,OAPIA,EAAA,MAAJ,gBACEC,EAAA,SAAiBd,EAAiBc,EAAA,GAAD,OAAkB,SAAAG,GAAD,OAAsBA,EAAA,eAAxE,eAEEJ,EAAA,MAAJ,cACEC,EAAA,SAAiBd,EAAiBc,EAAA,GAAD,OAAkB,SAAAG,GAAD,OAAsBA,EAAA,cAAxE,WAGKC,EAAEN,EAAK,OAAAO,EAAA,MAAUN,EAAD,KAAf,GAAqCA,EAA7C,YAKA,gBAGW,IAAfH,EAAe,uDAHX,SAKJ,MAAO,CACLtB,OAEAe,YAHK,EAKLC,MAAO,CACLM,KAAM,CACJJ,KADI,OAEJC,QAASG,IAIbC,OAZK,SAYC,KACJ,OAAOO,EAAE,aAEP,OAAAC,EAAA,MAAUN,EAAD,KAAe,CACtBT,MAAO,CAAEhB,QACT2B,GAAIK,IAENP,EANF,Y,4BC5EQ,aAA8C,IAAnCQ,EAAmC,uDAA9C,GAAqCC,EAAS,wDACpDC,EAAeD,EAAI,QAAzB,SACME,EAAiB,SAAH,OAAY,eAAhC,IAEA,MAAO,CACLR,YADK,SACM,GACTC,EAAA,QAAaA,EAAb,WACAA,EAAA,8BACEQ,WAAYR,EAAA,MADK,WAEjBS,WAAYT,EAAA,MAFK,WAGjBU,SAAUV,EAAA,MAHO,UAIjB,EAAgBA,EAAA,WAIpBW,MAXK,SAWA,GACH,IAAMC,EAAeZ,EAArB,cACMa,EAAS,GAAH,OAAMb,EAAlB,GAAY,MAEZA,EAAA,mDACAA,EAAA,0BACAA,EAAA,iBAAsBY,EAAtB,WACAZ,EAAA,wBACAA,EAAA,aAEKA,EAVqB,aAY1BA,EAAA,iBAAsBY,EAAtB,WAEIR,GAAuBJ,EAA3B,SACEA,EAAA,yBAGFc,uBAAsB,WACpBd,EAAA,eAIJe,WAlCK,EAmCLC,eAnCK,EAqCLC,MArCK,SAqCA,GACHjB,EAAA,8BACEQ,WADiB,GAEjBC,WAFiB,GAGjBC,SAAUV,EAAA,MAHO,UAIjB,EAAgBA,EAAA,UAGlBA,EAAA,wBACAA,EAAA,mBAA4BA,EAA5B,SACKA,EAVqB,aAY1Bc,uBAAsB,kBAAOd,EAAA,SAA7B,QAGFkB,aACAC,eAAgBD,GAGlB,cACMd,GAAuBJ,EAA3B,SACEA,EAAA,4BAEFoB,EAAA,GAGF,cACE,IAAMC,EAAOrB,EAAA,cAAb,GACAA,EAAA,eAAoBA,EAAA,cAApB,SACA,MAAIqB,IAAcrB,EAAA,mBACXA,EAAP,gBClESsB,GAVsBC,EAA5B,uBACmCA,EAAnC,+BACuBA,EAAvB,kBAC8BA,EAA9B,0BACwBA,EAAxB,mBACuBA,EAAuB,iBAAkB,gBAAhE,UAG0BA,EAA1B,qBACgCA,EAAhC,4BACwBA,EAAxB,oBACMC,EAAmBD,EAAzB,oBAKME,GAJqBF,EAA3B,uBACkCA,EAAlC,+BAC2BA,EAA3B,uBACkCA,EAAlC,+BAC0BA,EAA1B,uBAMMG,GAL2BH,EAAjC,8BAC0BA,EAA1B,sBACiCA,EAAjC,8BAG0BI,EAA2B,oBAAqB,MACpEC,EAAqBD,EAA2B,sBAAuB,EAA0B,IAAvG,K,uBC/BP,IAAIvG,EAAI,EAAQ,QACZyG,EAAU,EAAQ,QAAgCC,OAItD1G,EAAE,CAAEM,OAAQ,SAAUqG,MAAM,GAAQ,CAClCD,OAAQ,SAAgBhG,GACtB,OAAO+F,EAAQ/F,O,gDCPnB,IAAIwC,EAAc,EAAQ,QACtB0D,EAAQ,EAAQ,QAChBC,EAAgB,EAAQ,QAG5B3H,EAAOC,SAAW+D,IAAgB0D,GAAM,WACtC,OAEQ,GAFDxE,OAAO0E,eAAeD,EAAc,OAAQ,IAAK,CACtDE,IAAK,WAAc,OAAO,KACzBpH,M,uBCRL,IAAIiH,EAAQ,EAAQ,QAChB7H,EAAkB,EAAQ,QAC1BiI,EAAU,EAAQ,QAElBC,EAAWlI,EAAgB,YAE/BG,EAAOC,SAAWyH,GAAM,WACtB,IAAIM,EAAM,IAAIC,IAAI,gBAAiB,YAC/BC,EAAeF,EAAIE,aACnBC,EAAS,GAMb,OALAH,EAAII,SAAW,QACfF,EAAaG,SAAQ,SAAUC,EAAOC,GACpCL,EAAa,UAAU,KACvBC,GAAUI,EAAMD,KAEVR,IAAYE,EAAIQ,SAClBN,EAAaO,MACD,2BAAbT,EAAIU,MACsB,MAA1BR,EAAaL,IAAI,MACuB,QAAxC3H,OAAO,IAAIyI,gBAAgB,WAC1BT,EAAaH,IAEsB,MAApC,IAAIE,IAAI,eAAeW,UACsC,MAA7D,IAAID,gBAAgB,IAAIA,gBAAgB,QAAQd,IAAI,MAEpB,eAAhC,IAAII,IAAI,eAAeY,MAEQ,YAA/B,IAAIZ,IAAI,cAAca,MAEX,SAAXX,GAEwC,MAAxC,IAAIF,IAAI,gBAAY1H,GAAWsI,S,oCC/BtC,gBAGA,e,kCCFA,IAAI3H,EAAY,EAAQ,QACpB6H,EAAyB,EAAQ,QAIrC/I,EAAOC,QAAU,GAAG+I,QAAU,SAAgBC,GAC5C,IAAIC,EAAMhJ,OAAO6I,EAAuBtH,OACpC0G,EAAS,GACTxE,EAAIzC,EAAU+H,GAClB,GAAItF,EAAI,GAAKA,GAAKwF,IAAU,MAAMC,WAAW,+BAC7C,KAAMzF,EAAI,GAAIA,KAAO,KAAOuF,GAAOA,GAAc,EAAJvF,IAAOwE,GAAUe,GAC9D,OAAOf,I,kCCXT,IAAIkB,EAAgC,EAAQ,QACxCC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBR,EAAyB,EAAQ,QACjCS,EAAqB,EAAQ,QAC7BC,EAAqB,EAAQ,QAC7BxI,EAAW,EAAQ,QACnByI,EAAiB,EAAQ,QACzBC,EAAa,EAAQ,QACrBjC,EAAQ,EAAQ,QAEhBkC,EAAY,GAAGC,KACfC,EAAMC,KAAKD,IACXE,EAAa,WAGbC,GAAcvC,GAAM,WAAc,OAAQwC,OAAOF,EAAY,QAGjEX,EAA8B,QAAS,GAAG,SAAUc,EAAOC,EAAaC,GACtE,IAAIC,EAmDJ,OAzCEA,EAR2B,KAA3B,OAAOC,MAAM,QAAQ,IACc,GAAnC,OAAOA,MAAM,QAAS,GAAGjK,QACO,GAAhC,KAAKiK,MAAM,WAAWjK,QACU,GAAhC,IAAIiK,MAAM,YAAYjK,QACtB,IAAIiK,MAAM,QAAQjK,OAAS,GAC3B,GAAGiK,MAAM,MAAMjK,OAGC,SAAUkK,EAAWC,GACnC,IAAIC,EAASxK,OAAO6I,EAAuBtH,OACvCkJ,OAAgBpK,IAAVkK,EAAsBT,EAAaS,IAAU,EACvD,GAAY,IAARE,EAAW,MAAO,GACtB,QAAkBpK,IAAdiK,EAAyB,MAAO,CAACE,GAErC,IAAKpB,EAASkB,GACZ,OAAOJ,EAAY5J,KAAKkK,EAAQF,EAAWG,GAE7C,IAQIC,EAAOC,EAAWC,EARlBC,EAAS,GACTC,GAASR,EAAUS,WAAa,IAAM,KAC7BT,EAAUU,UAAY,IAAM,KAC5BV,EAAUW,QAAU,IAAM,KAC1BX,EAAUY,OAAS,IAAM,IAClCC,EAAgB,EAEhBC,EAAgB,IAAIpB,OAAOM,EAAUe,OAAQP,EAAQ,KAEzD,MAAOJ,EAAQjB,EAAWnJ,KAAK8K,EAAeZ,GAAS,CAErD,GADAG,EAAYS,EAAcT,UACtBA,EAAYQ,IACdN,EAAOlB,KAAKa,EAAO7I,MAAMwJ,EAAeT,EAAMY,QAC1CZ,EAAMtK,OAAS,GAAKsK,EAAMY,MAAQd,EAAOpK,QAAQsJ,EAAUhJ,MAAMmK,EAAQH,EAAM/I,MAAM,IACzFiJ,EAAaF,EAAM,GAAGtK,OACtB+K,EAAgBR,EACZE,EAAOzK,QAAUqK,GAAK,MAExBW,EAAcT,YAAcD,EAAMY,OAAOF,EAAcT,YAK7D,OAHIQ,IAAkBX,EAAOpK,QACvBwK,GAAeQ,EAAcvL,KAAK,KAAKgL,EAAOlB,KAAK,IAClDkB,EAAOlB,KAAKa,EAAO7I,MAAMwJ,IACzBN,EAAOzK,OAASqK,EAAMI,EAAOlJ,MAAM,EAAG8I,GAAOI,GAG7C,IAAIR,WAAMhK,EAAW,GAAGD,OACjB,SAAUkK,EAAWC,GACnC,YAAqBlK,IAAdiK,GAAqC,IAAVC,EAAc,GAAKL,EAAY5J,KAAKiB,KAAM+I,EAAWC,IAEpEL,EAEhB,CAGL,SAAeI,EAAWC,GACxB,IAAIjJ,EAAIuH,EAAuBtH,MAC3BgK,OAAwBlL,GAAbiK,OAAyBjK,EAAYiK,EAAUL,GAC9D,YAAoB5J,IAAbkL,EACHA,EAASjL,KAAKgK,EAAWhJ,EAAGiJ,GAC5BH,EAAc9J,KAAKN,OAAOsB,GAAIgJ,EAAWC,IAO/C,SAAUiB,EAAQjB,GAChB,IAAIkB,EAAMtB,EAAgBC,EAAeoB,EAAQjK,KAAMgJ,EAAOH,IAAkBF,GAChF,GAAIuB,EAAIC,KAAM,OAAOD,EAAIrD,MAEzB,IAAIuD,EAAKtC,EAASmC,GACdI,EAAI5L,OAAOuB,MACXO,EAAIwH,EAAmBqC,EAAI3B,QAE3B6B,EAAkBF,EAAGV,QACrBH,GAASa,EAAGZ,WAAa,IAAM,KACtBY,EAAGX,UAAY,IAAM,KACrBW,EAAGV,QAAU,IAAM,KACnBlB,EAAa,IAAM,KAI5BwB,EAAW,IAAIzJ,EAAEiI,EAAa4B,EAAK,OAASA,EAAGN,OAAS,IAAKP,GAC7DL,OAAgBpK,IAAVkK,EAAsBT,EAAaS,IAAU,EACvD,GAAY,IAARE,EAAW,MAAO,GACtB,GAAiB,IAAbmB,EAAExL,OAAc,OAAuC,OAAhCoJ,EAAe+B,EAAUK,GAAc,CAACA,GAAK,GACxE,IAAIE,EAAI,EACJC,EAAI,EACJtK,EAAI,GACR,MAAOsK,EAAIH,EAAExL,OAAQ,CACnBmL,EAASZ,UAAYZ,EAAagC,EAAI,EACtC,IACIC,EADAC,EAAIzC,EAAe+B,EAAUxB,EAAa6B,EAAIA,EAAEjK,MAAMoK,IAE1D,GACQ,OAANE,IACCD,EAAIpC,EAAI7I,EAASwK,EAASZ,WAAaZ,EAAa,EAAIgC,IAAKH,EAAExL,WAAa0L,EAE7EC,EAAIxC,EAAmBqC,EAAGG,EAAGF,OACxB,CAEL,GADApK,EAAEkI,KAAKiC,EAAEjK,MAAMmK,EAAGC,IACdtK,EAAErB,SAAWqK,EAAK,OAAOhJ,EAC7B,IAAK,IAAIS,EAAI,EAAGA,GAAK+J,EAAE7L,OAAS,EAAG8B,IAEjC,GADAT,EAAEkI,KAAKsC,EAAE/J,IACLT,EAAErB,SAAWqK,EAAK,OAAOhJ,EAE/BsK,EAAID,EAAIE,GAIZ,OADAvK,EAAEkI,KAAKiC,EAAEjK,MAAMmK,IACRrK,OAGTsI,I,qBCnIJjK,EAAOC,QAAUiD,OAAOkJ,IAAM,SAAYrG,EAAGsG,GAE3C,OAAOtG,IAAMsG,EAAU,IAANtG,GAAW,EAAIA,IAAM,EAAIsG,EAAItG,GAAKA,GAAKsG,GAAKA,I,kICY/D,E,4GASA,SAASC,EAAT,GACE,MAAO,CAAC,MAAO,MAAO,MAAO,MAAO,OAAOC,MAAK,SAAAC,GAAG,OAAIC,EAAA,SAAvD,MAGF,SAASC,EAAT,GACE,MAAQ,0CAA0C3M,KAAK4M,IAAS,UAAU5M,KAAlE,IAAgF4M,EAAA,OAAxF,GAdF,YACE,mBACA,kBACA,oBACA,mBACA,kBACA,oBANF,CAAKC,MAAL,KAiBA,IAAMC,EAAQ,eAAO,EAAD,mBAIlB,QAJY,OAML,CACPhJ,KADO,SAGPgB,MAAO,CACLiI,MADK,QAELC,SAFK,QAGLC,KAHK,QAILC,MAJK,QAKLlG,KAAM,CAACmG,OALF,QAML7H,IAAK,CACHN,KADG,OAEHoI,UAFG,EAGHnI,QAAS,MAIboI,SAAU,CACRC,OADQ,WAEN,UAEFC,iBAJQ,WAKN,OAAOC,QACL9L,KAAK+L,WAAWC,OAAShM,KAAK+L,WADhC,aAMJE,QAAS,CACPC,QADO,WAEL,IAAIC,EAAJ,GAGA,OAFInM,KAAKoM,OAAT,UAAyBD,EAAWnM,KAAKoM,OAAO7I,QAAQ,GAAG8I,KAAlC,QAElB,eAAkBrM,KAAzB,IAEFsM,QAPO,WAQL,IAAMC,EAAQ,CACZC,OAAQxM,KADI,OAEZyM,MAAOzM,KAFK,MAGZ4L,OAAQ5L,KAHI,OAIZ0M,MAAO1M,KAJK,MAKZ2M,OAAQ3M,KAAK2M,QAGTC,EAAe,wBAAiB,SAAA9F,GAAG,OAAIyF,EAA7C,MAEA,OACGK,GAAgBzB,EAAjB,IAA4C,eAAcnL,KAD5D,OAKF6M,eAvBO,WAwBL,IAAM/I,EAAkB,CACtBgJ,YADsB,qBAEtBC,MAAO,CACL,mBAAoB/M,KADf,SAEL,eAAgBA,KAFX,KAGL,eAAgBA,KAHX,iBAIL,gBAAiBA,KAJZ,MAKL,gBAAiBA,KAAKqL,OAExB2B,MAAO,gBACL,eAAgBhN,KADX,iBAELsL,SAAUtL,KAAK6L,kBAAoB7L,KAF9B,SAGLsD,KAAMtD,KAAK6L,iBAAmB,cAHzB,GAIF7L,KAAKiN,QAEVlJ,GAAI/D,KAAK+L,YAGX,UAEFmB,YA5CO,SA4CI,GACTpJ,EAAA,uCAAkBA,EAAL,OAAoB9D,KAAKmN,cACtCnN,KAAA,aAAkBA,KAAlB,UAEFoN,eAhDO,SAgDO,KACZ,IAAMC,EAAN,GACMvJ,EAAO9D,KAAb,iBAEIgL,EAJwC,iBAOtCsC,EAAiBpC,EAAA,QAAvB,KACMqC,EAAiBD,IAAvB,EAEA,EAEED,EAAA,SAEArC,EAAWE,EAAA,QAAX,GACIL,EAAJ,KAA8BG,EAAA,KAGhClH,EAAA,YACAA,EAAA,YAEA,IAAM0J,EAAWxN,KAAjB,UAKA,OAJA,IAAc8D,EAAA,MAAa,CAAE0J,aAE7BxN,KAAA,eAEOkE,EAAElE,KAAK6L,iBAAmB,SAAW7L,KAApC,MAAR,IAEFyN,cA5EO,SA4EM,KACX,IAAMD,EAAWxN,KAAjB,UACM0N,EAAc,iCACf1N,KADe,kBAAH,IAEf2N,MAAOH,EAAW,CAChBA,WACAI,OAFgB,EAGhBC,MAAOL,QACL1O,IAEN4O,EAAA,wBACA1N,KAAA,eAEA,IAAM8N,EAAqB,CACzBd,MAAO,CACLe,MADK,6BAELC,QAFK,YAGLJ,OAAQJ,GAHH,KAILK,MAAOL,GAJF,KAKLS,KALK,MAML,eAAe,IAInB,OAAO/J,EAAElE,KAAK6L,iBAAmB,SAAzB,SAAyD,CAC/D3H,EAAE,MAAO4J,EAAS,CAChB5J,EAAE,OAAQ,CACR8I,MAAO,CACLkB,EAAGhD,UAMbiD,uBA9GO,SA8Ge,KAIpB,IAAMrK,EAAO9D,KAAb,iBACA8D,EAAA,iCAEA,IAAMwB,EAAOtF,KAAb,UACA,IACE8D,EAAA,MAAa,CACX0J,SADW,EAEXI,OAFW,EAGXC,MAAOvI,IAIXtF,KAAA,eAEA,IAAMoO,EAAYlD,EAAlB,UAIA,OAHApH,EAAA,MAAaoH,EAAb,MACApH,EAAA,SAAgBA,EAAhB,GAEOI,EAAEkK,EAAT,KAIJzK,OAnKO,SAmKD,GACJ,IAAMuH,EAAOlL,KAAb,UAEA,wBAAWkL,EACLD,EAAJ,GACSjL,KAAKyN,cAAcvC,EAA1B,GAEKlL,KAAKoN,eAAelC,EAA3B,GAGKlL,KAAKmO,uBAAuBjD,EAAnC,MAIW,qBAAW,CACxB9I,KADwB,SAGxBiM,aAHwB,EAKxBlL,YALwB,EAOxBQ,OAPwB,SAOlB,EAPkB,GAOK,IAAlB,EAAkB,EAAlB,KAAQ2K,EAAU,EAAVA,SACbnC,EADuB,GAe3B,OAXIrI,EAAJ,WACEqI,EAAWrI,EAAA,sBACTA,EAAA,SADS,WADM,SAOVA,EAAA,SAAP,mBACOA,EAAA,SAAP,WAGKI,EAAEkH,EAAOtH,EAAMqI,EAAW,CAAH,GAA9B,O,oCC7OJ,IAAI9M,EAAI,EAAQ,QACZkP,EAAU,EAAQ,QAA6BhD,KAC/CiD,EAAsB,EAAQ,QAC9BC,EAA0B,EAAQ,QAElCC,EAAgBF,EAAoB,UACpCG,EAAiBF,EAAwB,SAAU,CAAEG,EAAG,IAI5DvP,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,QAASH,IAAkBC,GAAkB,CAC7EG,OAAQ,SAAgBC,GACtB,OAAOR,EAAQvO,KAAM+O,EAAY3P,UAAUP,OAAQO,UAAUP,OAAS,EAAIO,UAAU,QAAKN,O,uBCb7F,IAAIkQ,EAAU,EAAQ,QAClB9G,EAAa,EAAQ,QAIzB3J,EAAOC,QAAU,SAAUyQ,EAAG5E,GAC5B,IAAI6E,EAAOD,EAAEC,KACb,GAAoB,oBAATA,EAAqB,CAC9B,IAAIxI,EAASwI,EAAKnQ,KAAKkQ,EAAG5E,GAC1B,GAAsB,kBAAX3D,EACT,MAAMyI,UAAU,sEAElB,OAAOzI,EAGT,GAAmB,WAAfsI,EAAQC,GACV,MAAME,UAAU,+CAGlB,OAAOjH,EAAWnJ,KAAKkQ,EAAG5E,K,uBCnB5B,IAAI+E,EAAS,EAAQ,QACjBC,EAAe,EAAQ,QACvBzI,EAAU,EAAQ,QAClB0I,EAA8B,EAAQ,QAE1C,IAAK,IAAIC,KAAmBF,EAAc,CACxC,IAAIG,EAAaJ,EAAOG,GACpBE,EAAsBD,GAAcA,EAAWtO,UAEnD,GAAIuO,GAAuBA,EAAoB7I,UAAYA,EAAS,IAClE0I,EAA4BG,EAAqB,UAAW7I,GAC5D,MAAO/E,GACP4N,EAAoB7I,QAAUA,K,oGCZnB,SAAS8I,EAA8B5F,EAAQ6F,GAC5D,GAAc,MAAV7F,EAAgB,MAAO,GAC3B,IAEIhD,EAAKnG,EAFLhB,EAAS,GACTiQ,EAAanO,OAAOoO,KAAK/F,GAG7B,IAAKnJ,EAAI,EAAGA,EAAIiP,EAAW/Q,OAAQ8B,IACjCmG,EAAM8I,EAAWjP,GACbgP,EAASG,QAAQhJ,IAAQ,IAC7BnH,EAAOmH,GAAOgD,EAAOhD,IAGvB,OAAOnH,ECXM,SAASoQ,EAAyBjG,EAAQ6F,GACvD,GAAc,MAAV7F,EAAgB,MAAO,GAC3B,IACIhD,EAAKnG,EADLhB,EAASqQ,EAA6BlG,EAAQ6F,GAGlD,GAAIlO,OAAOwO,sBAAuB,CAChC,IAAIC,EAAmBzO,OAAOwO,sBAAsBnG,GAEpD,IAAKnJ,EAAI,EAAGA,EAAIuP,EAAiBrR,OAAQ8B,IACvCmG,EAAMoJ,EAAiBvP,GACnBgP,EAASG,QAAQhJ,IAAQ,GACxBrF,OAAOP,UAAUiP,qBAAqBpR,KAAK+K,EAAQhD,KACxDnH,EAAOmH,GAAOgD,EAAOhD,IAIzB,OAAOnH,I,6TCYHyQ,EAAa,eAAO,EAAD,wCAAzB,QAWe,OAAAA,EAAA,OAAkB,CAC/BhO,KAD+B,WAG/BiO,WAAY,CAAEC,aAAA,QAEdlN,MAAO,CACLmN,KADK,QAELjF,SAFK,QAGLkF,WAHK,QAILC,MAJK,QAKLC,SAAU,CACRpN,KAAM,CAAC7E,OADC,QAER8E,QAAS,QAEXoN,iBATK,QAULzN,OAAQ,CACNI,KADM,OAENC,QAAS,iBAEXqN,WAdK,QAeLC,YAAa,CACXvN,KADW,QAEXC,SAAS,GAEXuN,WAnBK,QAoBLrM,WAAY,CACVnB,KAAM,CAAC7E,OADG,SAEV8E,QAAS,qBAEXsK,MAAO,CACLvK,KAAM,CAAC7E,OADF,QAEL8E,QAAS,SAIbO,KAnC+B,WAoC7B,MAAO,CACLiN,YADK,KAELC,SAFK,EAGLC,gBAHK,EAILC,WAAYlR,KAJP,MAKLmR,eAAgB,MAIpBxF,SAAU,CACRyF,QADQ,WACD,MACL,6BACI,mBAAYpR,KAAb,cAAD,QADK,GAAP,iBAEE,mBAAoBA,KAFf,UAAP,iBAGE,uBAAwBA,KAHnB,YAAP,iBAIE,uBAAwBA,KAJnB,YAAP,iBAKE,uBAAwBA,KALnB,YAAP,iBAME,qBAAsBA,KAAKgR,SAN7B,GASFK,eAXQ,WAYN,MAAO,CACL,qBADK,EAEL,4BAA6BrR,KAAKkR,WAGtCI,aAjBQ,WAkBN,OAAOxF,UACH9L,KAAKoM,OAAP,aACEpM,KAAKuR,aAFT,aAOJC,MAAO,CACLN,SADK,SACG,GACN,GACElR,KAAA,OACAA,KAAA,eAEAA,KAAA,gBACAA,KAAA,WAGJwQ,WAVK,SAUK,GACHxQ,KAAL,WAEA,GACEA,KAAA,aACAA,KAAA,oBAEAA,KAAA,aACAA,KAAA,iBAKNyR,QA7F+B,WA+FzBzR,KAAK0R,OAAOC,eAAhB,eACE,eAAQ,aAAR,OAIJC,YApG+B,WAoGpB,WACT5R,KAAA,WAAe,WACb,WAAgB,EAAhB,SACA,YAAiB,EAAjB,WAIJ6R,cA3G+B,WA4G7B,qBAAWrQ,QAAwBxB,KAAK8R,UAG1C7F,QAAS,CACP8F,aADO,WACK,WACV/R,KAAA,SADU,EAIVA,KAAA,WAAe,WACb,aACAwB,OAAA,aAAoB,EAApB,gBACA,iBAAsBA,OAAA,YAAkB,kBAAO,WAAzB,IAAtB,SAGJwQ,iBAXO,SAWS,GACd,IAAMrS,EAAS8K,EADS,OAMxB,QACEzK,KAAKiS,eACJjS,KADD,UAEAA,KAAKkS,MAAMC,QAAQC,SAFnB,IAGCpS,KAAKqS,SAAW1S,IAAWK,KAAKqS,QAAQC,IAAIF,SAJxC,KAKFpS,KAAKuS,cAAgBvS,KAL1B,gBAOFwS,WAxBO,WAyBDxS,KAAJ,WACEyS,SAAA,mDAEA,8CAGJC,KA/BO,WA+BH,YACD1S,KAAD,aAAqBA,KAArB,aAAyCA,KAAzC,aACAA,KAAA,WAAe,WACb,wBACA,aAGJc,KAtCO,WAuCLU,OAAA,2BAAmCxB,KAAnC,YAEF8R,OAzCO,WA0CLtQ,OAAA,8BAAsCxB,KAAtC,YAEF2S,eA5CO,SA4CO,GACZ3S,KAAA,yBAEIA,KAAJ,WACEA,KAAA,kBAAyBA,KAAzB,eAEAA,KAAA,aAGJ4S,UArDO,SAqDE,GACP,GAAInI,EAAA,UAAc,OAAd,MAA+BzK,KAAK6S,oBAAxC,OACE,GAAK7S,KAAL,WAIYA,KAAL,kBACLA,KAAA,mBALoB,CACpBA,KAAA,YACA,IAAM8S,EAAY9S,KAAlB,eACAA,KAAA,WAAe,kBAAM8S,GAAcA,EAAnC,WAKJ9S,KAAA,oBAIF+S,UAnEO,SAmEE,GACP,GAAKtI,GAAMzK,KAAX,aAEA,IAAML,EAAS8K,EAAf,OAEA,GACE,IAEC,CAACgI,SAAUzS,KAAKkS,MAAhB,kBAFD,KAIClS,KAAKkS,MAAMC,QAAQC,SAJpB,IAMApS,KAAA,cAAqBA,KANrB,iBAQCA,KAAKgT,2BAA2BlI,MAAK,SAAA7G,GAAE,OAAIA,EAAA,SAT9C,MAWE,CAEA,IAAMgP,EAAYjT,KAAKkS,MAAMC,QAAQe,iBAArC,4EACMjP,EAAK,wBAAoB,SAAAA,GAAE,OAAKA,EAAA,aAAtC,eACAA,GAAMA,EAAN,WAGJkP,WA1FO,WA0FG,WACR,OAAOnT,KAAKoT,iBAAgB,iBAAM,CAChC,wBAAoC,CAClChQ,MAAO,CACLiQ,MADK,EAEL5C,MAAO,EAFF,MAGLF,KAAM,EAAKA,OAEZ,CACD,uBAA2B,CACzBxD,MAAO,EADkB,eAEzBC,MAAO,gBACLiB,KADK,WAELqF,SAAU,kBAFL,GAGF,qBAELvP,GAAI,CAAEwP,QAAS,EAAKX,WACpBjF,MAAO,CAAE6F,OAAQ,EAAKjB,cACtBkB,IAAK,WACJ,CAAC,EAlBR,yBAsBFC,cAjHO,WAkHL,IAAMvB,EAAUnS,KAAhB,kBAEA,OAAKA,KAAL,WAEOA,KAAK2T,eAAe,aAAc,CACvCvQ,MAAO,CACLhB,KAAMpC,KADD,WAELkD,OAAQlD,KAFH,OAGL4T,QAAQ,IAET,CANH,IAF6BzB,GAU/B0B,gBA9HO,WA+HL,IAAM/P,EAAkB,CACtBiJ,MAAO/M,KADe,QAEtByT,IAFsB,SAGtBpD,WAAY,CACV,CACEjO,KADF,gBAEEyE,MAAO,CACLiN,QAAS9T,KADJ,eAELgS,iBAAkBhS,KAFb,iBAGL+T,QAAS/T,KAAKgT,2BAGlB,CAAE5Q,KAAF,OAAgByE,MAAO7G,KAAKkR,WAE9BvD,MAAO,CACLqG,gBAAiBhU,KAAKkD,SAY1B,OARKlD,KAAL,aACE8D,EAAA,uCACKA,EADQ,OAAb,IAEE4M,SAA4B,SAAlB1Q,KAAK0Q,cAAsB5R,EAAY,eAAckB,KAFpD,UAGX6N,MAAsB,SAAf7N,KAAK6N,WAAmB/O,EAAY,eAAckB,KAAD,UAIrDA,KAAK2T,eAAe,MAAO7P,EAAM9D,KAAxC,oBAIJ2D,OA7Q+B,SA6QzB,GACJ,OAAOO,EAAE,MAAO,CACd4I,YADc,sBAEdC,MAAO,CACL,gCACkB,KAAhB/M,KAAKiU,SAAL,IACAjU,KAAKiU,QACW,WAAhBjU,KAAKiU,QAETjH,MAAO,CAAEiB,KAAM,WACd,CACDjO,KADC,eAEDA,KAXF,mB,8DC7SW,8BAAkD,CAC/DoC,KAD+D,YAG/DgB,MAAO,CACL8Q,UAAW,CACT5Q,KAAM,CAACmI,OADE,QAETlI,QAAS,GAEX4Q,WAAY,CACV7Q,KAAM,CAACmI,OADG,QAEVlI,QAAS,IAIbO,KAAM,iBAAO,CACXsQ,iBADW,EAEXC,kBAAcvV,IAGhBmN,QAAS,CAIPqI,WAJO,WAKLC,aAAavU,KAAb,aACAuU,aAAavU,KAAb,eAKFwU,SAXO,SAWC,KAAyC,WAC/CxU,KAAA,aAEA,IAAMyU,EAAQC,SAAU1U,KAAA,UAAF,EAAE,UAAxB,IAEEA,KAAA,wBAAiC2U,WAAWC,GAAO,WACnD,WAAgB,CAAEC,MAAF,EAAcC,OAAO,GAArC,IADA,Q,oCC3CR,IAAIC,EAAW,EAAQ,QAAgCnO,QACnD4H,EAAsB,EAAQ,QAC9BC,EAA0B,EAAQ,QAElCC,EAAgBF,EAAoB,WACpCG,EAAiBF,EAAwB,WAI7ClQ,EAAOC,QAAYkQ,GAAkBC,EAEjC,GAAG/H,QAFgD,SAAiBmI,GACtE,OAAOgG,EAAS/U,KAAM+O,EAAY3P,UAAUP,OAAS,EAAIO,UAAU,QAAKN,K,4DCP3D,qBAAW,CACxBsD,KADwB,qBAGxBe,YAHwB,EAKxBQ,OALwB,SAKlB,EALkB,GAKU,IAAvB,EAAuB,EAAvB,KAAuB,IAAf2K,gBAAe,MAAJ,GAAI,EAChCxK,EAAA,YAAmBA,EAAA,0CAA0CA,EAA1C,aAAnB,sBACA,IAAMkR,EAAgB1G,EAAA,QAAgB,SAAA2G,GACpC,OAAO,IAAAA,EAAA,WAAP,MAAoCA,EAAA,QAItC,OAFID,EAAA,OAAJ,IAA8BlR,EAAA,4CAEvBI,EAAE,MAAOJ,EAAhB,O,oCCfJ,IAAIzE,EAAI,EAAQ,QACZ6V,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QAIrC9V,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMiP,OAAQsG,EAAuB,WAAa,CAC7EC,OAAQ,SAAgBhT,GACtB,OAAO8S,EAAWlV,KAAM,IAAK,OAAQoC,O,qBCTzC7D,EAAOC,QAAU,SAAUoD,EAAIyT,EAAajT,GAC1C,KAAMR,aAAcyT,GAClB,MAAMlG,UAAU,cAAgB/M,EAAOA,EAAO,IAAM,IAAM,cAC1D,OAAOR,I,6HCSI,sBAAO,EAAD,KAAN,eAGN,CACPQ,KADO,oBAGPkT,QAHO,WAIL,MAAO,CACLC,WADK,EAELC,cAAexV,OAInB2L,SAAU,CACRyF,QADQ,WAEN,wCACK,qCADE,OAAP,IAEE,qBAAqB,MAK3BnF,QAAS,CACPwJ,QADO,WAEL,OAAOzV,KAAK0V,aAAa1V,KAAlB,uCACF,oCADgC,OAA9B,IAELgN,MAAO,CACLiB,KAAM,mB,uBCvChB,IAAI0H,EAAa,EAAQ,QAEzBpX,EAAOC,QAAUmX,EAAW,WAAY,oB,qBCFxCpX,EAAOC,QAAU,SAAUoD,GACzB,GAAiB,mBAANA,EACT,MAAMuN,UAAU1Q,OAAOmD,GAAM,sBAC7B,OAAOA,I,uBCHX,IAAIxD,EAAkB,EAAQ,QAE1BkI,EAAWlI,EAAgB,YAC3BwX,GAAe,EAEnB,IACE,IAAIC,EAAS,EACTC,EAAqB,CACvBC,KAAM,WACJ,MAAO,CAAE5L,OAAQ0L,MAEnB,OAAU,WACRD,GAAe,IAGnBE,EAAmBxP,GAAY,WAC7B,OAAOtG,MAGTqC,MAAMC,KAAKwT,GAAoB,WAAc,MAAM,KACnD,MAAOjU,IAETtD,EAAOC,QAAU,SAAU0Q,EAAM8G,GAC/B,IAAKA,IAAiBJ,EAAc,OAAO,EAC3C,IAAIK,GAAoB,EACxB,IACE,IAAIC,EAAS,GACbA,EAAO5P,GAAY,WACjB,MAAO,CACLyP,KAAM,WACJ,MAAO,CAAE5L,KAAM8L,GAAoB,MAIzC/G,EAAKgH,GACL,MAAOrU,IACT,OAAOoU,I,sJC5BM,qBAAW,CACxB7T,KADwB,WAGxBiO,WAAY,CACV8F,OAAA,QAGF/S,MAAO,CACLgT,YADK,OAELC,OAFK,QAGL/K,SAHK,QAILgL,MAAO,CACLhT,KADK,QAELC,aAASzE,GAEXyX,iBARK,OASLC,KATK,QAULvP,KAAM,CAACxI,OAVF,QAWLgY,GAAI,CAAChY,OAXA,QAYLiY,KAZK,QAaLC,QAbK,QAcLC,OAAQ,CACNtT,KAAM,CAACwI,QADD,QAENvI,QAAS,MAEXK,IAlBK,OAmBLjE,OAAQlB,QAGVqF,KAAM,iBAAO,CACXoN,UADW,EAEX2F,WAAY,KAGdlL,SAAU,CACRyF,QADQ,WAEN,IAAMA,EAAN,GAEA,OAAIpR,KAAJ,KAEIA,KAAJ,cAAsBoR,EAAQpR,KAAR,aAA4BA,KAA5B,UAClBA,KAAJ,aAAqBoR,EAAQpR,KAAR,YAA2BA,KAA3B,WAHDoR,GAOtB0F,eAXQ,WAYN,OAAsB,MAAf9W,KAAK4W,OAAiB5W,KAAtB,QAAqCA,KAAD,UAAkBA,KAA7D,aAEF+W,YAdQ,WAeN,OAAI/W,KAAJ,UAEO8L,QACL9L,KAAKgX,QACLhX,KAAKiX,WADL,OAEAjX,KAAKiX,WAFL,WAGAjX,KAAK0R,OAJP,WAOFsF,OAxBQ,WAyBN,OAAOhX,KAAKyW,IAAMzW,KAAX,MAAwBA,KAA/B,MAEFkX,OAAQ,sBAGV1F,MAAO,CACL2F,OAAQ,iBAGVlL,QAAS,CACPD,MADO,SACF,GACHhM,KAAA,kBAEFoX,kBAJO,WAIU,MAEf,EADId,EAAQtW,KAAZ,MAGM8D,GAAI,GACRkJ,MAAO,CACLsG,SAAU,aAActT,KAAd,OAA4BA,KAAK0R,OAAjC,cAAmD5S,GAE/DiO,MAAO/M,KAJe,QAKtB2N,MAAO3N,KALe,OAMtBoD,MANsB,GAOtBiN,WAAY,CAAC,CACXjO,KADW,SAEXyE,MAAO7G,KAAK8W,kBATN,iBAWP9W,KAAKyW,GAAK,WAAX,KAXQ,iCAYHzW,KAD0B,YAXvB,IAaNgM,MAAOhM,KAAKgM,SAbN,uBAeH,QAfG,GAuBV,GALA,qBAAWhM,KAAP,QACFsW,EAAoB,MAAZtW,KAAKyW,IACVzW,KAAKyW,KAAOhV,OAAOzB,KAAnB,KADH,MACkCA,KAAKyW,GAAGY,MAGxCrX,KAAJ,GAAa,CAGX,IAAIoW,EAAcpW,KAAlB,YACIuW,EAAmBvW,KAAKuW,kBAA5B,EAEIvW,KAAJ,aACEoW,EAAc,UAAGA,EAAH,YAAkBpW,KAAlB,YAAd,OACAuW,EAAmB,UAAGA,EAAH,YAAuBvW,KAAvB,YAAnB,QAGF4D,EAAM5D,KAAK0W,KAAO,YAAlB,cACAjV,OAAA,OAAcqC,EAAd,MAA0B,CACxB2S,GAAIzW,KADoB,GAExBsW,QACAF,cACAG,mBACAF,OAAQrW,KALgB,OAMxB2W,QAAS3W,KAAK2W,eAGhB/S,GAAO5D,KAAKiH,KAAN,IAAsBjH,KAAtB,MAAN,MAEI,MAAA4D,GAAe5D,KAAnB,OAA8B8D,EAAA,WAAmB9D,KAAnB,MAKhC,OAFIA,KAAJ,SAAiB8D,EAAA,aAAqB9D,KAArB,QAEV,CAAE4D,MAAKE,SAEhBwT,cA7DO,WA6DM,WACX,GAAKtX,KAAD,IAAaA,KAAKkS,MAAlB,MAAiClS,KAArC,QACA,IAAMoW,EAAc,UAAGpW,KAAKoW,YAAR,YAAuBpW,KAAK6W,YAA5B,IAApB,OAEMQ,EAAO,qBAAH,OAAV,GAEArX,KAAA,WAAe,WAET,eAAqB,QAAD,KAAxB,IACE,gBAINuX,OAAQ,iB,uBCtJZ,IAAIC,EAAY,EAAQ,QAExBjZ,EAAOC,QAAU,mCAAmCF,KAAKkZ,I,qBCAzDjZ,EAAOC,QAAU,SAAUoD,GACzB,QAAU9C,GAAN8C,EAAiB,MAAMuN,UAAU,wBAA0BvN,GAC/D,OAAOA,I,uBCJT,IAAIqE,EAAQ,EAAQ,QAChB7H,EAAkB,EAAQ,QAC1BqZ,EAAa,EAAQ,QAErBC,EAAUtZ,EAAgB,WAE9BG,EAAOC,QAAU,SAAUmZ,GAIzB,OAAOF,GAAc,KAAOxR,GAAM,WAChC,IAAI2R,EAAQ,GACRzV,EAAcyV,EAAMzV,YAAc,GAItC,OAHAA,EAAYuV,GAAW,WACrB,MAAO,CAAEG,IAAK,IAE2B,IAApCD,EAAMD,GAAa7L,SAAS+L,S,mICLxB,8BAA6B,CAC1CzV,KAD0C,YAG1C0B,KAH0C,WAIxC,MAAO,CACLgU,aADK,KAELC,aAFK,KAGL5G,eAHK,EAILD,UAAU,IAGdvF,SAAU,CACR4G,aADQ,WAEN,wBAAW/Q,OAAwB,OAAO,EAE1C,IAAM2Q,EAAUnS,KAAK8X,cAAgB9X,KAAKkS,MAHhC,QAMJnI,EAAS/J,KAAD,SAEVA,KAAKgY,aAAahY,KAAK+X,cAAgB,CAAvC,IAFJ,EACI,eADU,GAId,aAAIhO,EAVM,EAcH2K,SAAP,KAGJzI,QAAS,CACP+L,aADO,WAeL,IAdmC,IAAvBC,EAAuB,uDAAzB,GACJC,EAAOlY,KADsB,IAI7BmY,EAAM,CAACnY,KAAD,eAAsB,eAJC,IAQ7BoY,EAAiB,GAAH,sBACf3F,SAAA,uBADkB,4BAAH,eAEfA,SAAA,uBAV8B,+BAc1B1I,EAAT,EAAoBA,EAAQqO,EAA5B,OAAmDrO,IAC5CkO,EAAA,SAAiBG,EAAtB,KACED,EAAA,KAAS,eAAUC,EAAnB,KAIJ,OAAO9P,KAAA,UAAAA,KAAP,Q,qBC7DN,IAAIR,EAAW,EAAQ,QACnBuQ,EAAwB,EAAQ,QAChC7Y,EAAW,EAAQ,QACnBsB,EAAO,EAAQ,QACfwX,EAAoB,EAAQ,QAC5BC,EAA+B,EAAQ,QAEvCC,EAAS,SAAUC,EAAS/R,GAC9B1G,KAAKyY,QAAUA,EACfzY,KAAK0G,OAASA,GAGZgS,EAAUna,EAAOC,QAAU,SAAUma,EAAUha,EAAIC,EAAMga,EAAYC,GACvE,IACIC,EAAUC,EAAQhP,EAAOlL,EAAQ6H,EAAQqP,EAAMiD,EAD/ChY,EAAgBF,EAAKnC,EAAIC,EAAMga,EAAa,EAAI,GAGpD,GAAIC,EACFC,EAAWH,MACN,CAEL,GADAI,EAAST,EAAkBK,GACN,mBAAVI,EAAsB,MAAM5J,UAAU,0BAEjD,GAAIkJ,EAAsBU,GAAS,CACjC,IAAKhP,EAAQ,EAAGlL,EAASW,EAASmZ,EAAS9Z,QAASA,EAASkL,EAAOA,IAIlE,GAHArD,EAASkS,EACL5X,EAAc8G,EAASkR,EAAOL,EAAS5O,IAAQ,GAAIiP,EAAK,IACxDhY,EAAc2X,EAAS5O,IACvBrD,GAAUA,aAAkB8R,EAAQ,OAAO9R,EAC/C,OAAO,IAAI8R,GAAO,GAEtBM,EAAWC,EAAOha,KAAK4Z,GAGzB5C,EAAO+C,EAAS/C,KAChB,QAASiD,EAAOjD,EAAKhX,KAAK+Z,IAAW3O,KAEnC,GADAzD,EAAS6R,EAA6BO,EAAU9X,EAAegY,EAAKnS,MAAO+R,GACtD,iBAAVlS,GAAsBA,GAAUA,aAAkB8R,EAAQ,OAAO9R,EAC5E,OAAO,IAAI8R,GAAO,IAGtBE,EAAQO,KAAO,SAAUvS,GACvB,OAAO,IAAI8R,GAAO,EAAM9R,K,uBCzC1B,IAAIjH,EAAY,EAAQ,QAEpByZ,EAAM5Q,KAAK4Q,IACX7Q,EAAMC,KAAKD,IAKf9J,EAAOC,QAAU,SAAUuL,EAAOlL,GAChC,IAAIsa,EAAU1Z,EAAUsK,GACxB,OAAOoP,EAAU,EAAID,EAAIC,EAAUta,EAAQ,GAAKwJ,EAAI8Q,EAASta,K,uBCV/D,IAAIuQ,EAAS,EAAQ,QACjBtM,EAA2B,EAAQ,QAAmDzB,EACtFiO,EAA8B,EAAQ,QACtC8J,EAAW,EAAQ,QACnBC,EAAY,EAAQ,QACpBC,EAA4B,EAAQ,QACpCC,EAAW,EAAQ,QAgBvBhb,EAAOC,QAAU,SAAUgb,EAAS1P,GAClC,IAGI2P,EAAQ9Z,EAAQmH,EAAK4S,EAAgBC,EAAgBC,EAHrDC,EAASL,EAAQ7Z,OACjBma,EAASN,EAAQpK,OACjB2K,EAASP,EAAQxT,KASrB,GANErG,EADEma,EACO1K,EACA2K,EACA3K,EAAOyK,IAAWR,EAAUQ,EAAQ,KAEnCzK,EAAOyK,IAAW,IAAI3Y,UAE9BvB,EAAQ,IAAKmH,KAAOgD,EAAQ,CAQ9B,GAPA6P,EAAiB7P,EAAOhD,GACpB0S,EAAQQ,aACVJ,EAAa9W,EAAyBnD,EAAQmH,GAC9C4S,EAAiBE,GAAcA,EAAW/S,OACrC6S,EAAiB/Z,EAAOmH,GAC/B2S,EAASF,EAASO,EAAShT,EAAM+S,GAAUE,EAAS,IAAM,KAAOjT,EAAK0S,EAAQ3K,SAEzE4K,QAA6B3a,IAAnB4a,EAA8B,CAC3C,UAAWC,WAA0BD,EAAgB,SACrDJ,EAA0BK,EAAgBD,IAGxCF,EAAQS,MAASP,GAAkBA,EAAeO,OACpD3K,EAA4BqK,EAAgB,QAAQ,GAGtDP,EAASzZ,EAAQmH,EAAK6S,EAAgBH,M,uBCnD1C,IAAIU,EAAqB,EAAQ,QAC7BC,EAAc,EAAQ,QAEtBC,EAAaD,EAAYlZ,OAAO,SAAU,aAI9CzC,EAAQ6C,EAAII,OAAOC,qBAAuB,SAA6B3B,GACrE,OAAOma,EAAmBna,EAAGqa,K,0ECAhB,qBAAW,CACxBhY,KADwB,aAGxBgB,MAAO,CACLwK,OAAQ,CAACnC,OADJ,QAEL4O,UAAW,CAAC5O,OAFP,QAGLiF,SAAU,CAACjF,OAHN,QAIL6O,UAAW,CAAC7O,OAJP,QAKL8O,SAAU,CAAC9O,OALN,QAMLoC,MAAO,CAACpC,OAAQhN,SAGlBkN,SAAU,CACR6O,iBADQ,WAEN,IAAMtD,EAAN,GAEMtJ,EAAS,eAAc5N,KAA7B,QACMsa,EAAY,eAActa,KAAhC,WACMua,EAAW,eAAcva,KAA/B,UACMqa,EAAY,eAAcra,KAAhC,WACM0Q,EAAW,eAAc1Q,KAA/B,UACM6N,EAAQ,eAAc7N,KAA5B,OASA,OAPA,IAAYkX,EAAA,UACZ,IAAeA,EAAA,aACf,IAAcA,EAAA,YACd,IAAeA,EAAA,aACf,IAAcA,EAAA,YACd,IAAWA,EAAA,SAEX,O,kCCrCN,IAAI7X,EAAI,EAAQ,QACZob,EAAa,EAAQ,QACrBnT,EAAyB,EAAQ,QACjCoT,EAAuB,EAAQ,QAInCrb,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMiP,QAAS6L,EAAqB,aAAe,CAC9EC,SAAU,SAAkBC,GAC1B,SAAUnc,OAAO6I,EAAuBtH,OACrC8P,QAAQ2K,EAAWG,GAAexb,UAAUP,OAAS,EAAIO,UAAU,QAAKN,O,6DCV/E,IAAIsa,EAAW,EAAQ,QACnBtR,EAAW,EAAQ,QACnB7B,EAAQ,EAAQ,QAChBsD,EAAQ,EAAQ,QAEhBsR,EAAY,WACZC,EAAkBrS,OAAOvH,UACzB6Z,EAAiBD,EAAgBD,GAEjCG,EAAc/U,GAAM,WAAc,MAA2D,QAApD8U,EAAehc,KAAK,CAAE+K,OAAQ,IAAKP,MAAO,SAEnF0R,EAAiBF,EAAe3Y,MAAQyY,GAIxCG,GAAeC,IACjB7B,EAAS3Q,OAAOvH,UAAW2Z,GAAW,WACpC,IAAI5L,EAAInH,EAAS9H,MACbuK,EAAI9L,OAAOwQ,EAAEnF,QACboR,EAAKjM,EAAE1F,MACPlI,EAAI5C,YAAcK,IAAPoc,GAAoBjM,aAAaxG,UAAY,UAAWqS,GAAmBvR,EAAMxK,KAAKkQ,GAAKiM,GAC1G,MAAO,IAAM3Q,EAAI,IAAMlJ,IACtB,CAAE8Z,QAAQ,K,kCCtBf,IAAIxF,EAAa,EAAQ,QACrByF,EAAuB,EAAQ,QAC/Bhd,EAAkB,EAAQ,QAC1BmE,EAAc,EAAQ,QAEtBmV,EAAUtZ,EAAgB,WAE9BG,EAAOC,QAAU,SAAU6c,GACzB,IAAIhG,EAAcM,EAAW0F,GACzBlV,EAAiBiV,EAAqB/Z,EAEtCkB,GAAe8S,IAAgBA,EAAYqC,IAC7CvR,EAAekP,EAAaqC,EAAS,CACnC4D,cAAc,EACdlV,IAAK,WAAc,OAAOpG,U,kCCTjB,SAASub,EACtBC,EACA7X,EACA8X,EACAC,EACAC,EACAC,EACAC,EACAC,GAGA,IAqBIC,EArBAvC,EAAmC,oBAAlBgC,EACjBA,EAAchC,QACdgC,EAsDJ,GAnDI7X,IACF6V,EAAQ7V,OAASA,EACjB6V,EAAQiC,gBAAkBA,EAC1BjC,EAAQwC,WAAY,GAIlBN,IACFlC,EAAQrW,YAAa,GAInByY,IACFpC,EAAQyC,SAAW,UAAYL,GAI7BC,GACFE,EAAO,SAAUlY,GAEfA,EACEA,GACC7D,KAAKkc,QAAUlc,KAAKkc,OAAOC,YAC3Bnc,KAAKoc,QAAUpc,KAAKoc,OAAOF,QAAUlc,KAAKoc,OAAOF,OAAOC,WAEtDtY,GAA0C,qBAAxBwY,sBACrBxY,EAAUwY,qBAGRV,GACFA,EAAa5c,KAAKiB,KAAM6D,GAGtBA,GAAWA,EAAQyY,uBACrBzY,EAAQyY,sBAAsBC,IAAIV,IAKtCrC,EAAQgD,aAAeT,GACdJ,IACTI,EAAOD,EACH,WACAH,EAAa5c,KACXiB,MACCwZ,EAAQrW,WAAanD,KAAKoc,OAASpc,MAAMyc,MAAMC,SAASC,aAG3DhB,GAGFI,EACF,GAAIvC,EAAQrW,WAAY,CAGtBqW,EAAQoD,cAAgBb,EAExB,IAAIc,EAAiBrD,EAAQ7V,OAC7B6V,EAAQ7V,OAAS,SAAmCO,EAAGL,GAErD,OADAkY,EAAKhd,KAAK8E,GACHgZ,EAAe3Y,EAAGL,QAEtB,CAEL,IAAIiZ,EAAWtD,EAAQuD,aACvBvD,EAAQuD,aAAeD,EACnB,GAAG7b,OAAO6b,EAAUf,GACpB,CAACA,GAIT,MAAO,CACLvd,QAASgd,EACThC,QAASA,GA/Fb,mC,oFCCe,SAASwD,EAAmBC,GACzC,GAAI5a,MAAM6a,QAAQD,GAAM,OAAOhb,eAAiBgb,G,sECFnC,SAASE,EAAiBC,GACvC,GAAsB,qBAAXC,QAA0BA,OAAOvE,YAAYrX,OAAO2b,GAAO,OAAO/a,MAAMC,KAAK8a,G,gBCD3E,SAASE,IACtB,MAAM,IAAInO,UAAU,wICGP,SAASoO,EAAmBN,GACzC,OAAOO,EAAkBP,IAAQQ,EAAgBR,IAAQS,eAA2BT,IAAQU,M,kMCiBxFvN,EAAa,OAAAwN,EAAA,MAAO,EAAD,KAEvB,eAAoB,CAAC,WAAY,QAAS,MAFnB,kBAAzB,QAQe,EAAAxN,EAAA,OAAkB,CAC/BhO,KAD+B,oBAG/BgB,MAAO,CACLya,OAAQ,CACNva,KADM,QAENC,SAAS,GAEXua,gBAAiB,CACfxa,KADe,OAEfC,QAAS,MAEXwa,kBAAmB,CACjBza,KAAM,CAACmI,OADU,QAEjBlI,QAAS,MAEXya,YAAa,CACX1a,KAAM,CAACmI,OADI,QAEXlI,QAAS,KAEX0a,MAAO,CACL3a,KADK,OAELC,QAAS,WAEXqK,OAAQ,CACNtK,KAAM,CAACmI,OADD,QAENlI,QAAS,GAEX2a,cAzBK,QA0BLC,MA1BK,QA2BLC,QA3BK,QA4BLC,QA5BK,QA6BLC,OA7BK,QA8BLC,QA9BK,QA+BL1X,MAAO,CACLvD,KAAM,CAACmI,OADF,QAELlI,QAAS,IAIbO,KAxC+B,WAyC7B,MAAO,CACL0a,kBAAmBxe,KAAK6G,OAAS,IAIrC8E,SAAU,CACR8S,mBADQ,WAEN,OAAOze,KAAK2T,eAAe,MAAO3T,KAAK0e,mBAAmB1e,KAAK8d,iBAAmB9d,KAAhD,MAA4D,CAC5F8M,YAD4F,gCAE5Fa,MAAO3N,KAAK2e,oBAGhBC,YAPQ,WAQN,OAAO5e,KAAK2T,eAAe3T,KAApB,mBAA6C,CAACA,KAArD,mBAEF6e,gBAVQ,WAWN,OAAO7e,KAAKke,cAAgBle,KAArB,sBAAkDA,KAAzD,qBAEF8e,eAbQ,WAcN,OAAO9e,KAAK2T,eAAe,MAAO,CAChC7G,YADgC,4BAEhCa,MAAO3N,KAAKkX,UAGhB6H,oBAnBQ,WAoBN,OAAO/e,KAAK2T,eAAe,MAAO3T,KAAK0e,mBAAmB1e,KAAxB,MAAoC,CACpE8M,YADoE,iCAEpEa,MAAO,CACLE,MAAO,eAAc7N,KAAD,0BAI1Bgf,sBA3BQ,WA4BN,OAAOhf,KAAK2T,eAAe,MAAO,CAChC7G,YADgC,mCAEhCC,MAAO,CACL,2CAA4C/M,KAAK6d,SAElD,CACD7d,KAAKif,eADJ,QAEDjf,KAAKif,eAPP,YAUFC,eAtCQ,WAuCN,OAAKlf,KAAL,OAEOA,KAAK2T,eAAe,MAAO3T,KAAK0V,aAAa1V,KAAlB,MAA8B,CAC9D8M,YAD8D,4BAE9Da,MAAO,CACLE,MAAO,eAAc,IAAM7N,KAAP,0BALC,MAS3B2e,gBAhDQ,WAgDO,MACPZ,EAA8C,MAA1B/d,KAAK+d,kBAC1B/d,KAAK8d,gBAAkB,EADF,GAEtBqB,WAAWnf,KAFf,mBAIA,UACEof,QADK,GAAP,iBAEGpf,KAAKqf,WAAa,QAAnB,OAAsC,eAAcrf,KAAD,gBAF9C,MAAP,yBAGS,eAAcA,KAAKsf,iBAAmBtf,KAAzB,sBAHtB,GAMFoR,QA3DQ,WA4DN,uBACE,8BAA+BpR,KAD1B,SAEL,2BAA4BA,KAFvB,MAGL,2BAA4BA,KAHvB,MAIL,8BAA+BA,KAJ1B,SAKL,6BAA8BA,KALzB,WAML,6BAA8BA,KANzB,QAOL,6BAA8BA,KAPzB,SAQFA,KAAKmN,eAGZoS,mBAvEQ,WAwEN,OAAOvf,KAAKke,cAAgB,EAArB,KAAP,QAEFmB,WA1EQ,WA2EN,OAAOrf,KAAKwf,SAASC,MAAQzf,KAA7B,SAEFsf,iBA7EQ,WA8EN,OAAOtf,KAAK0f,UAAU1f,KAAtB,cAEF2f,gBAhFQ,WAiFN,OAAO3f,KAAK0f,UAAU1f,KAAtB,oBAEF4f,SAnFQ,WAoFN,OAAO9T,QAAQ9L,KAAKiX,WAApB,SAEFC,OAtFQ,WAuFN,IAAMA,EAAN,GAUA,OARKlX,KAAL,SACEkX,EAAA,UAGGlX,KAAD,eAAJ,MAA2Bmf,WAAWnf,KAAX,oBACzBkX,EAAA,MAAe,eAAclX,KAAD,iBAA5B,MAGF,IAIJiM,QAAS,CACPkH,WADO,WAEL,IAAM0M,EAAO,eAAQ7f,KAAM,UAAW,CAAE6G,MAAO7G,KAAKwe,oBAEpD,SAEOxe,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,8BADf,GAFkB,MAMpBgT,aAVO,WAWL,IAAMC,EAAY/f,KAAlB,WAMA,OAJIA,KAAJ,WACE+f,EAAA,MAAkB/f,KAAlB,SAGF,GAEFif,eAnBO,SAmBO,GACZ,OAAOjf,KAAK2T,eAAe,MAAO3T,KAAK0e,mBAAmB1e,KAAxB,MAAoC,CACpE8M,YADoE,mCAEpEC,MAAO,kBACL,GAAQ,OAIdiT,QA3BO,SA2BA,GACL,GAAKhgB,KAAL,UADoB,MAGFA,KAAKsS,IAAvB,wBAAQzE,EAHY,EAGZA,MAER7N,KAAA,cAAqByK,EAAA,UAArB,MAEFiV,UAlCO,SAkCE,GACP,OAAI7Y,EAAJ,EAAsB,EAClBA,EAAJ,IAAwB,IACjBsY,WAAP,KAIJxb,OA5L+B,SA4LzB,GACJ,IAAMG,EAAO,CACXgJ,YADW,oBAEXE,MAAO,CACLiB,KADK,cAEL,gBAFK,EAGL,gBAAiBjO,KAHZ,iBAIL,gBAAiBA,KAAKke,mBAAgBpf,EAAYkB,KAAK2f,iBAEzD5S,MAAO/M,KARI,QASX2N,MAAO,CACLsS,OAAQjgB,KAAKigB,OAAS,OADjB,EAELrS,OAAQ5N,KAAK6d,OAAS,eAAc7d,KAA5B,QAFH,EAGLkgB,IAAKlgB,KAAKkgB,IAAM,OAAIphB,GAEtBiF,GAAI/D,KAAK8f,gBAGX,OAAO5b,EAAE,MAAOJ,EAAM,CACpB9D,KADoB,eAEpBA,KAFoB,mBAGpBA,KAHoB,eAIpBA,KAJoB,YAKpBA,KALF,kBCzOJ,ICce,8BAA+B,CAC5CoC,KAD4C,WAG5CgB,MAAO,CACL+c,QAAS,CACP7c,KAAM,CAACwI,QADA,QAEPvI,SAAS,GAEX6c,aAAc,CACZ9c,KAAM,CAACmI,OADK,QAEZlI,QAAS,IAIb0I,QAAS,CACPoU,YADO,WAEL,WAAIrgB,KAAKmgB,QAA0B,KAE5BngB,KAAKoM,OAAOkU,UAAYtgB,KAAK2T,eAAe,EAAiB,CAClEvQ,MAAO,CACLmd,UADK,EAELtC,OAAyB,IAAjBje,KAAKmgB,SAAN,KAA0BngB,KAAKmgB,QACjCngB,KAAKie,OADH,UAEHje,KAJC,QAKL4N,OAAQ5N,KALH,aAMLke,eAAe,U,oCC1CzB,8DAMMsC,EAAgB,eAAtB,oBACMC,EAAgB,eAAtB,oBAUI,Q,qCCjBJ;;;;;;AAOA,IAAIC,EAAcjf,OAAOkf,OAAO,IAIhC,SAASC,EAASC,GAChB,YAAa/hB,IAAN+hB,GAAyB,OAANA,EAG5B,SAASC,EAAOD,GACd,YAAa/hB,IAAN+hB,GAAyB,OAANA,EAG5B,SAASE,EAAQF,GACf,OAAa,IAANA,EAGT,SAASG,EAASH,GAChB,OAAa,IAANA,EAMT,SAASI,EAAapa,GACpB,MACmB,kBAAVA,GACU,kBAAVA,GAEU,kBAAVA,GACU,mBAAVA,EASX,SAAS1G,EAAU+gB,GACjB,OAAe,OAARA,GAA+B,kBAARA,EAMhC,IAAIC,EAAY1f,OAAOP,UAAUI,SAUjC,SAAS8f,EAAeF,GACtB,MAA+B,oBAAxBC,EAAUpiB,KAAKmiB,GAGxB,SAASrZ,EAAUgZ,GACjB,MAA6B,oBAAtBM,EAAUpiB,KAAK8hB,GAMxB,SAASQ,EAAmBtW,GAC1B,IAAI7I,EAAIid,WAAW1gB,OAAOsM,IAC1B,OAAO7I,GAAK,GAAKoG,KAAKgZ,MAAMpf,KAAOA,GAAKqf,SAASxW,GAGnD,SAASyW,EAAWzW,GAClB,OACE+V,EAAM/V,IACc,oBAAbA,EAAI0W,MACU,oBAAd1W,EAAI2W,MAOf,SAASpgB,EAAUyJ,GACjB,OAAc,MAAPA,EACH,GACA1I,MAAM6a,QAAQnS,IAASqW,EAAcrW,IAAQA,EAAIzJ,WAAa6f,EAC5DQ,KAAKC,UAAU7W,EAAK,KAAM,GAC1BtM,OAAOsM,GAOf,SAAS8W,EAAU9W,GACjB,IAAI7I,EAAIid,WAAWpU,GACnB,OAAO+W,MAAM5f,GAAK6I,EAAM7I,EAO1B,SAAS6f,EACPta,EACAua,GAIA,IAFA,IAAIC,EAAMxgB,OAAOygB,OAAO,MACpBxhB,EAAO+G,EAAIqB,MAAM,KACZnI,EAAI,EAAGA,EAAID,EAAK7B,OAAQ8B,IAC/BshB,EAAIvhB,EAAKC,KAAM,EAEjB,OAAOqhB,EACH,SAAUjX,GAAO,OAAOkX,EAAIlX,EAAIoX,gBAChC,SAAUpX,GAAO,OAAOkX,EAAIlX,IAMfgX,EAAQ,kBAAkB,GAA7C,IAKIK,EAAsBL,EAAQ,8BAKlC,SAASM,EAAQpF,EAAKqF,GACpB,GAAIrF,EAAIpe,OAAQ,CACd,IAAIkL,EAAQkT,EAAInN,QAAQwS,GACxB,GAAIvY,GAAS,EACX,OAAOkT,EAAIsF,OAAOxY,EAAO,IAQ/B,IAAI4H,EAAiBlQ,OAAOP,UAAUyQ,eACtC,SAAS6Q,EAAQtB,EAAKpa,GACpB,OAAO6K,EAAe5S,KAAKmiB,EAAKpa,GAMlC,SAAS2b,EAAQ9jB,GACf,IAAI+jB,EAAQjhB,OAAOygB,OAAO,MAC1B,OAAO,SAAoBza,GACzB,IAAIkb,EAAMD,EAAMjb,GAChB,OAAOkb,IAAQD,EAAMjb,GAAO9I,EAAG8I,KAOnC,IAAImb,EAAa,SACbC,EAAWJ,GAAO,SAAUhb,GAC9B,OAAOA,EAAIkP,QAAQiM,GAAY,SAAUE,EAAG5jB,GAAK,OAAOA,EAAIA,EAAE6jB,cAAgB,SAM5EC,EAAaP,GAAO,SAAUhb,GAChC,OAAOA,EAAIwb,OAAO,GAAGF,cAAgBtb,EAAIrH,MAAM,MAM7C8iB,EAAc,aACdC,EAAYV,GAAO,SAAUhb,GAC/B,OAAOA,EAAIkP,QAAQuM,EAAa,OAAOf,iBAYzC,SAASiB,EAAczkB,EAAI0kB,GACzB,SAASC,EAAStkB,GAChB,IAAIukB,EAAInkB,UAAUP,OAClB,OAAO0kB,EACHA,EAAI,EACF5kB,EAAGQ,MAAMkkB,EAAKjkB,WACdT,EAAGI,KAAKskB,EAAKrkB,GACfL,EAAGI,KAAKskB,GAId,OADAC,EAAQE,QAAU7kB,EAAGE,OACdykB,EAGT,SAASG,EAAY9kB,EAAI0kB,GACvB,OAAO1kB,EAAGmC,KAAKuiB,GAGjB,IAAIviB,EAAOF,SAASM,UAAUJ,KAC1B2iB,EACAL,EAKJ,SAASM,EAAShjB,EAAMijB,GACtBA,EAAQA,GAAS,EACjB,IAAIhjB,EAAID,EAAK7B,OAAS8kB,EAClBC,EAAM,IAAIvhB,MAAM1B,GACpB,MAAOA,IACLijB,EAAIjjB,GAAKD,EAAKC,EAAIgjB,GAEpB,OAAOC,EAMT,SAASC,EAAQpN,EAAIqN,GACnB,IAAK,IAAIhd,KAAOgd,EACdrN,EAAG3P,GAAOgd,EAAMhd,GAElB,OAAO2P,EAMT,SAASlX,EAAU0d,GAEjB,IADA,IAAI/S,EAAM,GACDvJ,EAAI,EAAGA,EAAIsc,EAAIpe,OAAQ8B,IAC1Bsc,EAAItc,IACNkjB,EAAO3Z,EAAK+S,EAAItc,IAGpB,OAAOuJ,EAUT,SAAS6Z,EAAM/kB,EAAGC,EAAGC,IAKrB,IAAI8kB,EAAK,SAAUhlB,EAAGC,EAAGC,GAAK,OAAO,GAOjC+kB,EAAW,SAAUnB,GAAK,OAAOA,GAMrC,SAASoB,EAAYllB,EAAGC,GACtB,GAAID,IAAMC,EAAK,OAAO,EACtB,IAAIklB,EAAYhkB,EAASnB,GACrBolB,EAAYjkB,EAASlB,GACzB,IAAIklB,IAAaC,EAwBV,OAAKD,IAAcC,GACjB3lB,OAAOO,KAAOP,OAAOQ,GAxB5B,IACE,IAAIolB,EAAWhiB,MAAM6a,QAAQle,GACzBslB,EAAWjiB,MAAM6a,QAAQje,GAC7B,GAAIolB,GAAYC,EACd,OAAOtlB,EAAEH,SAAWI,EAAEJ,QAAUG,EAAEulB,OAAM,SAAU9Z,EAAG9J,GACnD,OAAOujB,EAAWzZ,EAAGxL,EAAE0B,OAEpB,GAAI3B,aAAawlB,MAAQvlB,aAAaulB,KAC3C,OAAOxlB,EAAEylB,YAAcxlB,EAAEwlB,UACpB,GAAKJ,GAAaC,EAQvB,OAAO,EAPP,IAAII,EAAQjjB,OAAOoO,KAAK7Q,GACpB2lB,EAAQljB,OAAOoO,KAAK5Q,GACxB,OAAOylB,EAAM7lB,SAAW8lB,EAAM9lB,QAAU6lB,EAAMH,OAAM,SAAUzd,GAC5D,OAAOod,EAAWllB,EAAE8H,GAAM7H,EAAE6H,OAMhC,MAAO2D,GAEP,OAAO,GAcb,SAASma,EAAc3H,EAAKlS,GAC1B,IAAK,IAAIpK,EAAI,EAAGA,EAAIsc,EAAIpe,OAAQ8B,IAC9B,GAAIujB,EAAWjH,EAAItc,GAAIoK,GAAQ,OAAOpK,EAExC,OAAQ,EAMV,SAASkkB,EAAMlmB,GACb,IAAIkX,GAAS,EACb,OAAO,WACAA,IACHA,GAAS,EACTlX,EAAGQ,MAAMa,KAAMZ,aAKrB,IAAI0lB,EAAW,uBAEXC,EAAc,CAChB,YACA,YACA,UAGEC,EAAkB,CACpB,eACA,UACA,cACA,UACA,eACA,UACA,gBACA,YACA,YACA,cACA,gBACA,kBAOEC,EAAS,CAKXC,sBAAuBzjB,OAAOygB,OAAO,MAKrCiD,QAAQ,EAKRC,eAAe,EAKfC,UAAU,EAKVC,aAAa,EAKbC,aAAc,KAKdC,YAAa,KAKbC,gBAAiB,GAMjBC,SAAUjkB,OAAOygB,OAAO,MAMxByD,cAAe3B,EAMf4B,eAAgB5B,EAMhB6B,iBAAkB7B,EAKlB8B,gBAAiB/B,EAKjBgC,qBAAsB9B,EAMtB+B,YAAahC,EAMbiC,OAAO,EAKPC,gBAAiBlB,GAUfmB,EAAgB,8JAKpB,SAASC,EAAY3e,GACnB,IAAIvI,GAAKuI,EAAM,IAAI4e,WAAW,GAC9B,OAAa,KAANnnB,GAAoB,KAANA,EAMvB,SAASonB,EAAKpF,EAAKpa,EAAKiE,EAAKwb,GAC3B9kB,OAAO0E,eAAe+a,EAAKpa,EAAK,CAC9BD,MAAOkE,EACPwb,aAAcA,EACdC,UAAU,EACVlL,cAAc,IAOlB,IAAImL,EAAS,IAAIhe,OAAQ,KAAQ0d,EAAoB,OAAI,WACzD,SAASO,EAAWrP,GAClB,IAAIoP,EAAOnoB,KAAK+Y,GAAhB,CAGA,IAAIsP,EAAWtP,EAAKvO,MAAM,KAC1B,OAAO,SAAUoY,GACf,IAAK,IAAIvgB,EAAI,EAAGA,EAAIgmB,EAAS9nB,OAAQ8B,IAAK,CACxC,IAAKugB,EAAO,OACZA,EAAMA,EAAIyF,EAAShmB,IAErB,OAAOugB,IAOX,IAmCI0F,EAnCAC,EAAW,aAAe,GAG1BC,EAA8B,qBAAXtlB,OACnBulB,EAAkC,qBAAlBC,iBAAmCA,cAAcC,SACjEC,EAAeH,GAAUC,cAAcC,SAAS9E,cAChDgF,EAAKL,GAAatlB,OAAO4lB,UAAU5P,UAAU2K,cAC7CkF,GAAOF,GAAM,eAAe7oB,KAAK6oB,GACjCG,GAAQH,GAAMA,EAAGrX,QAAQ,YAAc,EACvCyX,GAASJ,GAAMA,EAAGrX,QAAQ,SAAW,EAErC0X,IADaL,GAAMA,EAAGrX,QAAQ,WACrBqX,GAAM,uBAAuB7oB,KAAK6oB,IAA0B,QAAjBD,GAGpDO,IAFWN,GAAM,cAAc7oB,KAAK6oB,GACtBA,GAAM,YAAY7oB,KAAK6oB,GAC9BA,GAAMA,EAAGhe,MAAM,mBAGtBue,GAAc,GAAKlW,MAEnBmW,IAAkB,EACtB,GAAIb,EACF,IACE,IAAIc,GAAO,GACXnmB,OAAO0E,eAAeyhB,GAAM,UAAW,CACrCxhB,IAAK,WAEHuhB,IAAkB,KAGtBnmB,OAAOqmB,iBAAiB,eAAgB,KAAMD,IAC9C,MAAOnd,KAMX,IAAIqd,GAAoB,WAWtB,YAVkBhpB,IAAd8nB,IAOAA,GALGE,IAAcC,GAA4B,qBAAX3X,IAGtBA,EAAO,YAAgD,WAAlCA,EAAO,WAAW2Y,IAAIC,UAKpDpB,GAILvB,GAAWyB,GAAatlB,OAAOymB,6BAGnC,SAASC,GAAUC,GACjB,MAAuB,oBAATA,GAAuB,cAAc7pB,KAAK6pB,EAAK7mB,YAG/D,IAII8mB,GAJAC,GACgB,qBAAXhL,QAA0B6K,GAAS7K,SACvB,qBAAZiL,SAA2BJ,GAASI,QAAQC,SAMnDH,GAFiB,qBAARI,KAAuBN,GAASM,KAElCA,IAGc,WACnB,SAASA,IACPxoB,KAAKyoB,IAAMhnB,OAAOygB,OAAO,MAY3B,OAVAsG,EAAItnB,UAAUyB,IAAM,SAAcmE,GAChC,OAAyB,IAAlB9G,KAAKyoB,IAAI3hB,IAElB0hB,EAAItnB,UAAUqb,IAAM,SAAczV,GAChC9G,KAAKyoB,IAAI3hB,IAAO,GAElB0hB,EAAItnB,UAAUwnB,MAAQ,WACpB1oB,KAAKyoB,IAAMhnB,OAAOygB,OAAO,OAGpBsG,EAdW,GAoBtB,IAAIG,GAAO5E,EA8FP6E,GAAM,EAMNC,GAAM,WACR7oB,KAAK8oB,GAAKF,KACV5oB,KAAK+oB,KAAO,IAGdF,GAAI3nB,UAAU8nB,OAAS,SAAiBC,GACtCjpB,KAAK+oB,KAAK3gB,KAAK6gB,IAGjBJ,GAAI3nB,UAAUgoB,UAAY,SAAoBD,GAC5C5G,EAAOriB,KAAK+oB,KAAME,IAGpBJ,GAAI3nB,UAAUioB,OAAS,WACjBN,GAAIlpB,QACNkpB,GAAIlpB,OAAOypB,OAAOppB,OAItB6oB,GAAI3nB,UAAUmoB,OAAS,WAErB,IAAIN,EAAO/oB,KAAK+oB,KAAK3oB,QAOrB,IAAK,IAAIO,EAAI,EAAG4iB,EAAIwF,EAAKlqB,OAAQ8B,EAAI4iB,EAAG5iB,IACtCooB,EAAKpoB,GAAG2oB,UAOZT,GAAIlpB,OAAS,KACb,IAAI4pB,GAAc,GAElB,SAASC,GAAY7pB,GACnB4pB,GAAYnhB,KAAKzI,GACjBkpB,GAAIlpB,OAASA,EAGf,SAAS8pB,KACPF,GAAYG,MACZb,GAAIlpB,OAAS4pB,GAAYA,GAAY1qB,OAAS,GAKhD,IAAIoW,GAAQ,SACVrR,EACAE,EACAwK,EACAjC,EACAsd,EACA9lB,EACA+lB,EACAC,GAEA7pB,KAAK4D,IAAMA,EACX5D,KAAK8D,KAAOA,EACZ9D,KAAKsO,SAAWA,EAChBtO,KAAKqM,KAAOA,EACZrM,KAAK2pB,IAAMA,EACX3pB,KAAK8pB,QAAKhrB,EACVkB,KAAK6D,QAAUA,EACf7D,KAAK+pB,eAAYjrB,EACjBkB,KAAKgqB,eAAYlrB,EACjBkB,KAAKiqB,eAAYnrB,EACjBkB,KAAK8G,IAAMhD,GAAQA,EAAKgD,IACxB9G,KAAK4pB,iBAAmBA,EACxB5pB,KAAKkqB,uBAAoBprB,EACzBkB,KAAKoc,YAAStd,EACdkB,KAAKmqB,KAAM,EACXnqB,KAAKoqB,UAAW,EAChBpqB,KAAKqqB,cAAe,EACpBrqB,KAAKsqB,WAAY,EACjBtqB,KAAKuqB,UAAW,EAChBvqB,KAAKwqB,QAAS,EACdxqB,KAAK6pB,aAAeA,EACpB7pB,KAAKyqB,eAAY3rB,EACjBkB,KAAK0qB,oBAAqB,GAGxBC,GAAqB,CAAEC,MAAO,CAAEtP,cAAc,IAIlDqP,GAAmBC,MAAMxkB,IAAM,WAC7B,OAAOpG,KAAKkqB,mBAGdzoB,OAAOopB,iBAAkB5V,GAAM/T,UAAWypB,IAE1C,IAAIG,GAAmB,SAAUze,QACjB,IAATA,IAAkBA,EAAO,IAE9B,IAAI0e,EAAO,IAAI9V,GAGf,OAFA8V,EAAK1e,KAAOA,EACZ0e,EAAKT,WAAY,EACVS,GAGT,SAASC,GAAiBjgB,GACxB,OAAO,IAAIkK,QAAMnW,OAAWA,OAAWA,EAAWL,OAAOsM,IAO3D,SAASkgB,GAAYC,GACnB,IAAIC,EAAS,IAAIlW,GACfiW,EAAMtnB,IACNsnB,EAAMpnB,KAINonB,EAAM5c,UAAY4c,EAAM5c,SAASlO,QACjC8qB,EAAM7e,KACN6e,EAAMvB,IACNuB,EAAMrnB,QACNqnB,EAAMtB,iBACNsB,EAAMrB,cAWR,OATAsB,EAAOrB,GAAKoB,EAAMpB,GAClBqB,EAAOf,SAAWc,EAAMd,SACxBe,EAAOrkB,IAAMokB,EAAMpkB,IACnBqkB,EAAOb,UAAYY,EAAMZ,UACzBa,EAAOpB,UAAYmB,EAAMnB,UACzBoB,EAAOnB,UAAYkB,EAAMlB,UACzBmB,EAAOlB,UAAYiB,EAAMjB,UACzBkB,EAAOV,UAAYS,EAAMT,UACzBU,EAAOZ,UAAW,EACXY,EAQT,IAAIC,GAAa/oB,MAAMnB,UACnBmqB,GAAe5pB,OAAOygB,OAAOkJ,IAE7BE,GAAiB,CACnB,OACA,MACA,QACA,UACA,SACA,OACA,WAMFA,GAAe1kB,SAAQ,SAAU2kB,GAE/B,IAAIC,EAAWJ,GAAWG,GAC1BjF,EAAI+E,GAAcE,GAAQ,WACxB,IAAI9qB,EAAO,GAAIgrB,EAAMrsB,UAAUP,OAC/B,MAAQ4sB,IAAQhrB,EAAMgrB,GAAQrsB,UAAWqsB,GAEzC,IAEIC,EAFAhlB,EAAS8kB,EAASrsB,MAAMa,KAAMS,GAC9BkrB,EAAK3rB,KAAK4rB,OAEd,OAAQL,GACN,IAAK,OACL,IAAK,UACHG,EAAWjrB,EACX,MACF,IAAK,SACHirB,EAAWjrB,EAAKL,MAAM,GACtB,MAKJ,OAHIsrB,GAAYC,EAAGE,aAAaH,GAEhCC,EAAGG,IAAIzC,SACA3iB,QAMX,IAAIqlB,GAAYtqB,OAAOC,oBAAoB2pB,IAMvCW,IAAgB,EAEpB,SAASC,GAAiBplB,GACxBmlB,GAAgBnlB,EASlB,IAAIqlB,GAAW,SAAmBrlB,GAChC7G,KAAK6G,MAAQA,EACb7G,KAAK8rB,IAAM,IAAIjD,GACf7oB,KAAKmsB,QAAU,EACf7F,EAAIzf,EAAO,SAAU7G,MACjBqC,MAAM6a,QAAQrW,IACZggB,EACFuF,GAAavlB,EAAOwkB,IAEpBgB,GAAYxlB,EAAOwkB,GAAcU,IAEnC/rB,KAAK6rB,aAAahlB,IAElB7G,KAAKssB,KAAKzlB,IA+Bd,SAASulB,GAAczsB,EAAQ4sB,GAE7B5sB,EAAO6sB,UAAYD,EASrB,SAASF,GAAa1sB,EAAQ4sB,EAAK1c,GACjC,IAAK,IAAIlP,EAAI,EAAG4iB,EAAI1T,EAAKhR,OAAQ8B,EAAI4iB,EAAG5iB,IAAK,CAC3C,IAAImG,EAAM+I,EAAKlP,GACf2lB,EAAI3mB,EAAQmH,EAAKylB,EAAIzlB,KASzB,SAAS2lB,GAAS5lB,EAAO6lB,GAIvB,IAAIf,EAHJ,GAAKxrB,EAAS0G,MAAUA,aAAiBoO,IAkBzC,OAdIuN,EAAO3b,EAAO,WAAaA,EAAM+kB,kBAAkBM,GACrDP,EAAK9kB,EAAM+kB,OAEXI,KACClE,OACAzlB,MAAM6a,QAAQrW,IAAUua,EAAcva,KACvCpF,OAAOkrB,aAAa9lB,KACnBA,EAAM+lB,SAEPjB,EAAK,IAAIO,GAASrlB,IAEhB6lB,GAAcf,GAChBA,EAAGQ,UAEER,EAMT,SAASkB,GACP3L,EACApa,EACAiE,EACA+hB,EACAC,GAEA,IAAIjB,EAAM,IAAIjD,GAEVmE,EAAWvrB,OAAOqB,yBAAyBoe,EAAKpa,GACpD,IAAIkmB,IAAsC,IAA1BA,EAAS1R,aAAzB,CAKA,IAAI2R,EAASD,GAAYA,EAAS5mB,IAC9B8mB,EAASF,GAAYA,EAASvE,IAC5BwE,IAAUC,GAAgC,IAArB9tB,UAAUP,SACnCkM,EAAMmW,EAAIpa,IAGZ,IAAIqmB,GAAWJ,GAAWN,GAAQ1hB,GAClCtJ,OAAO0E,eAAe+a,EAAKpa,EAAK,CAC9Byf,YAAY,EACZjL,cAAc,EACdlV,IAAK,WACH,IAAIS,EAAQomB,EAASA,EAAOluB,KAAKmiB,GAAOnW,EAUxC,OATI8d,GAAIlpB,SACNmsB,EAAI3C,SACAgE,IACFA,EAAQrB,IAAI3C,SACR9mB,MAAM6a,QAAQrW,IAChBumB,GAAYvmB,KAIXA,GAET4hB,IAAK,SAAyB4E,GAC5B,IAAIxmB,EAAQomB,EAASA,EAAOluB,KAAKmiB,GAAOnW,EAEpCsiB,IAAWxmB,GAAUwmB,IAAWA,GAAUxmB,IAAUA,GAQpDomB,IAAWC,IACXA,EACFA,EAAOnuB,KAAKmiB,EAAKmM,GAEjBtiB,EAAMsiB,EAERF,GAAWJ,GAAWN,GAAQY,GAC9BvB,EAAIzC,cAUV,SAASZ,GAAK9oB,EAAQmH,EAAKiE,GAMzB,GAAI1I,MAAM6a,QAAQvd,IAAW0hB,EAAkBva,GAG7C,OAFAnH,EAAOd,OAASyJ,KAAK4Q,IAAIvZ,EAAOd,OAAQiI,GACxCnH,EAAO4iB,OAAOzb,EAAK,EAAGiE,GACfA,EAET,GAAIjE,KAAOnH,KAAYmH,KAAOrF,OAAOP,WAEnC,OADAvB,EAAOmH,GAAOiE,EACPA,EAET,IAAI4gB,EAAK,EAASC,OAClB,OAAIjsB,EAAOitB,QAAWjB,GAAMA,EAAGQ,QAKtBphB,EAEJ4gB,GAILkB,GAAkBlB,EAAG9kB,MAAOC,EAAKiE,GACjC4gB,EAAGG,IAAIzC,SACAte,IALLpL,EAAOmH,GAAOiE,EACPA,GAUX,SAASuiB,GAAK3tB,EAAQmH,GAMpB,GAAIzE,MAAM6a,QAAQvd,IAAW0hB,EAAkBva,GAC7CnH,EAAO4iB,OAAOzb,EAAK,OADrB,CAIA,IAAI6kB,EAAK,EAASC,OACdjsB,EAAOitB,QAAWjB,GAAMA,EAAGQ,SAO1B3J,EAAO7iB,EAAQmH,YAGbnH,EAAOmH,GACT6kB,GAGLA,EAAGG,IAAIzC,WAOT,SAAS+D,GAAavmB,GACpB,IAAK,IAAI4D,OAAI,EAAU9J,EAAI,EAAG4iB,EAAI1c,EAAMhI,OAAQ8B,EAAI4iB,EAAG5iB,IACrD8J,EAAI5D,EAAMlG,GACV8J,GAAKA,EAAEmhB,QAAUnhB,EAAEmhB,OAAOE,IAAI3C,SAC1B9mB,MAAM6a,QAAQzS,IAChB2iB,GAAY3iB,GAhNlByhB,GAAShrB,UAAUorB,KAAO,SAAepL,GAEvC,IADA,IAAIrR,EAAOpO,OAAOoO,KAAKqR,GACdvgB,EAAI,EAAGA,EAAIkP,EAAKhR,OAAQ8B,IAC/BksB,GAAkB3L,EAAKrR,EAAKlP,KAOhCurB,GAAShrB,UAAU2qB,aAAe,SAAuB0B,GACvD,IAAK,IAAI5sB,EAAI,EAAG4iB,EAAIgK,EAAM1uB,OAAQ8B,EAAI4iB,EAAG5iB,IACvC8rB,GAAQc,EAAM5sB,KAgNlB,IAAI6sB,GAASvI,EAAOC,sBAoBpB,SAAS/gB,GAAWsS,EAAInU,GACtB,IAAKA,EAAQ,OAAOmU,EAOpB,IANA,IAAI3P,EAAK2mB,EAAOC,EAEZ7d,EAAOwY,GACPC,QAAQC,QAAQjmB,GAChBb,OAAOoO,KAAKvN,GAEP3B,EAAI,EAAGA,EAAIkP,EAAKhR,OAAQ8B,IAC/BmG,EAAM+I,EAAKlP,GAEC,WAARmG,IACJ2mB,EAAQhX,EAAG3P,GACX4mB,EAAUprB,EAAKwE,GACV0b,EAAO/L,EAAI3P,GAGd2mB,IAAUC,GACVtM,EAAcqM,IACdrM,EAAcsM,IAEdvpB,GAAUspB,EAAOC,GANjBjF,GAAIhS,EAAI3P,EAAK4mB,IASjB,OAAOjX,EAMT,SAASkX,GACPC,EACAC,EACAC,GAEA,OAAKA,EAoBI,WAEL,IAAIC,EAAmC,oBAAbF,EACtBA,EAAS9uB,KAAK+uB,EAAIA,GAClBD,EACAG,EAAmC,oBAAdJ,EACrBA,EAAU7uB,KAAK+uB,EAAIA,GACnBF,EACJ,OAAIG,EACK5pB,GAAU4pB,EAAcC,GAExBA,GA7BNH,EAGAD,EAQE,WACL,OAAOzpB,GACe,oBAAb0pB,EAA0BA,EAAS9uB,KAAKiB,KAAMA,MAAQ6tB,EACxC,oBAAdD,EAA2BA,EAAU7uB,KAAKiB,KAAMA,MAAQ4tB,IAV1DC,EAHAD,EA2Db,SAASK,GACPL,EACAC,GAEA,IAAI3jB,EAAM2jB,EACND,EACEA,EAAU3sB,OAAO4sB,GACjBxrB,MAAM6a,QAAQ2Q,GACZA,EACA,CAACA,GACLD,EACJ,OAAO1jB,EACHgkB,GAAYhkB,GACZA,EAGN,SAASgkB,GAAaC,GAEpB,IADA,IAAIjkB,EAAM,GACDvJ,EAAI,EAAGA,EAAIwtB,EAAMtvB,OAAQ8B,KACD,IAA3BuJ,EAAI4F,QAAQqe,EAAMxtB,KACpBuJ,EAAI9B,KAAK+lB,EAAMxtB,IAGnB,OAAOuJ,EAcT,SAASkkB,GACPR,EACAC,EACAC,EACAhnB,GAEA,IAAIoD,EAAMzI,OAAOygB,OAAO0L,GAAa,MACrC,OAAIC,EAEKhK,EAAO3Z,EAAK2jB,GAEZ3jB,EAzEXsjB,GAAO1pB,KAAO,SACZ8pB,EACAC,EACAC,GAEA,OAAKA,EAcEH,GAAcC,EAAWC,EAAUC,GAbpCD,GAAgC,oBAAbA,EAQdD,EAEFD,GAAcC,EAAWC,IAmCpC7I,EAAgBpe,SAAQ,SAAUmV,GAChCyR,GAAOzR,GAAQkS,MAyBjBlJ,EAAYne,SAAQ,SAAUtD,GAC5BkqB,GAAOlqB,EAAO,KAAO8qB,MASvBZ,GAAOhc,MAAQ,SACboc,EACAC,EACAC,EACAhnB,GAMA,GAHI8mB,IAAclG,KAAekG,OAAY9uB,GACzC+uB,IAAanG,KAAemG,OAAW/uB,IAEtC+uB,EAAY,OAAOpsB,OAAOygB,OAAO0L,GAAa,MAInD,IAAKA,EAAa,OAAOC,EACzB,IAAIjK,EAAM,GAEV,IAAK,IAAIyK,KADTxK,EAAOD,EAAKgK,GACMC,EAAU,CAC1B,IAAIzR,EAASwH,EAAIyK,GACbzD,EAAQiD,EAASQ,GACjBjS,IAAW/Z,MAAM6a,QAAQd,KAC3BA,EAAS,CAACA,IAEZwH,EAAIyK,GAASjS,EACTA,EAAOnb,OAAO2pB,GACdvoB,MAAM6a,QAAQ0N,GAASA,EAAQ,CAACA,GAEtC,OAAOhH,GAMT4J,GAAOpqB,MACPoqB,GAAOvhB,QACPuhB,GAAOc,OACPd,GAAO7hB,SAAW,SAChBiiB,EACAC,EACAC,EACAhnB,GAKA,IAAK8mB,EAAa,OAAOC,EACzB,IAAIjK,EAAMniB,OAAOygB,OAAO,MAGxB,OAFA2B,EAAOD,EAAKgK,GACRC,GAAYhK,EAAOD,EAAKiK,GACrBjK,GAET4J,GAAOlY,QAAUqY,GAKjB,IAAIY,GAAe,SAAUX,EAAWC,GACtC,YAAoB/uB,IAAb+uB,EACHD,EACAC,GA+BN,SAASW,GAAgBhV,EAASsU,GAChC,IAAI1qB,EAAQoW,EAAQpW,MACpB,GAAKA,EAAL,CACA,IACIzC,EAAGoK,EAAK3I,EADR8H,EAAM,GAEV,GAAI7H,MAAM6a,QAAQ9Z,GAAQ,CACxBzC,EAAIyC,EAAMvE,OACV,MAAO8B,IACLoK,EAAM3H,EAAMzC,GACO,kBAARoK,IACT3I,EAAOygB,EAAS9X,GAChBb,EAAI9H,GAAQ,CAAEkB,KAAM,YAKnB,GAAI8d,EAAche,GACvB,IAAK,IAAI0D,KAAO1D,EACd2H,EAAM3H,EAAM0D,GACZ1E,EAAOygB,EAAS/b,GAChBoD,EAAI9H,GAAQgf,EAAcrW,GACtBA,EACA,CAAEzH,KAAMyH,QAEL,EAOXyO,EAAQpW,MAAQ8G,GAMlB,SAASukB,GAAiBjV,EAASsU,GACjC,IAAIQ,EAAS9U,EAAQ8U,OACrB,GAAKA,EAAL,CACA,IAAII,EAAalV,EAAQ8U,OAAS,GAClC,GAAIjsB,MAAM6a,QAAQoR,GAChB,IAAK,IAAI3tB,EAAI,EAAGA,EAAI2tB,EAAOzvB,OAAQ8B,IACjC+tB,EAAWJ,EAAO3tB,IAAM,CAAE2B,KAAMgsB,EAAO3tB,SAEpC,GAAIygB,EAAckN,GACvB,IAAK,IAAIxnB,KAAOwnB,EAAQ,CACtB,IAAIvjB,EAAMujB,EAAOxnB,GACjB4nB,EAAW5nB,GAAOsa,EAAcrW,GAC5B8Y,EAAO,CAAEvhB,KAAMwE,GAAOiE,GACtB,CAAEzI,KAAMyI,QAEL,GAYb,SAAS4jB,GAAqBnV,GAC5B,IAAIoV,EAAOpV,EAAQnJ,WACnB,GAAIue,EACF,IAAK,IAAI9nB,KAAO8nB,EAAM,CACpB,IAAIC,EAASD,EAAK9nB,GACI,oBAAX+nB,IACTD,EAAK9nB,GAAO,CAAEhG,KAAM+tB,EAAQvF,OAAQuF,KAoB5C,SAASC,GACP1S,EACAwO,EACAkD,GAkBA,GAZqB,oBAAVlD,IACTA,EAAQA,EAAMpR,SAGhBgV,GAAe5D,EAAOkD,GACtBW,GAAgB7D,EAAOkD,GACvBa,GAAoB/D,IAMfA,EAAMmE,QACLnE,EAAMoE,UACR5S,EAAS0S,GAAa1S,EAAQwO,EAAMoE,QAASlB,IAE3ClD,EAAMhN,QACR,IAAK,IAAIjd,EAAI,EAAG4iB,EAAIqH,EAAMhN,OAAO/e,OAAQ8B,EAAI4iB,EAAG5iB,IAC9Cyb,EAAS0S,GAAa1S,EAAQwO,EAAMhN,OAAOjd,GAAImtB,GAKrD,IACIhnB,EADA0S,EAAU,GAEd,IAAK1S,KAAOsV,EACV6S,EAAWnoB,GAEb,IAAKA,KAAO8jB,EACLpI,EAAOpG,EAAQtV,IAClBmoB,EAAWnoB,GAGf,SAASmoB,EAAYnoB,GACnB,IAAIooB,EAAQ1B,GAAO1mB,IAAQynB,GAC3B/U,EAAQ1S,GAAOooB,EAAM9S,EAAOtV,GAAM8jB,EAAM9jB,GAAMgnB,EAAIhnB,GAEpD,OAAO0S,EAQT,SAAS2V,GACP3V,EACAlW,EACAwlB,EACAsG,GAGA,GAAkB,kBAAPtG,EAAX,CAGA,IAAIuG,EAAS7V,EAAQlW,GAErB,GAAIkf,EAAO6M,EAAQvG,GAAO,OAAOuG,EAAOvG,GACxC,IAAIwG,EAAczM,EAASiG,GAC3B,GAAItG,EAAO6M,EAAQC,GAAgB,OAAOD,EAAOC,GACjD,IAAIC,EAAevM,EAAWsM,GAC9B,GAAI9M,EAAO6M,EAAQE,GAAiB,OAAOF,EAAOE,GAElD,IAAIrlB,EAAMmlB,EAAOvG,IAAOuG,EAAOC,IAAgBD,EAAOE,GAOtD,OAAOrlB,GAOT,SAASslB,GACP1oB,EACA2oB,EACAC,EACA5B,GAEA,IAAI6B,EAAOF,EAAY3oB,GACnB8oB,GAAUpN,EAAOkN,EAAW5oB,GAC5BD,EAAQ6oB,EAAU5oB,GAElB+oB,EAAeC,GAAahkB,QAAS6jB,EAAKrsB,MAC9C,GAAIusB,GAAgB,EAClB,GAAID,IAAWpN,EAAOmN,EAAM,WAC1B9oB,GAAQ,OACH,GAAc,KAAVA,GAAgBA,IAAUsc,EAAUrc,GAAM,CAGnD,IAAIipB,EAAcD,GAAarxB,OAAQkxB,EAAKrsB,OACxCysB,EAAc,GAAKF,EAAeE,KACpClpB,GAAQ,GAKd,QAAc/H,IAAV+H,EAAqB,CACvBA,EAAQmpB,GAAoBlC,EAAI6B,EAAM7oB,GAGtC,IAAImpB,EAAoBjE,GACxBC,IAAgB,GAChBQ,GAAQ5lB,GACRolB,GAAgBgE,GASlB,OAAOppB,EAMT,SAASmpB,GAAqBlC,EAAI6B,EAAM7oB,GAEtC,GAAK0b,EAAOmN,EAAM,WAAlB,CAGA,IAAIrJ,EAAMqJ,EAAKpsB,QAYf,OAAIuqB,GAAMA,EAAGpR,SAASgT,gBACW5wB,IAA/BgvB,EAAGpR,SAASgT,UAAU5oB,SACHhI,IAAnBgvB,EAAGoC,OAAOppB,GAEHgnB,EAAGoC,OAAOppB,GAIG,oBAARwf,GAA6C,aAAvB6J,GAAQR,EAAKrsB,MAC7CgjB,EAAIvnB,KAAK+uB,GACTxH,GAqFN,SAAS6J,GAASxxB,GAChB,IAAIwK,EAAQxK,GAAMA,EAAG2C,WAAW6H,MAAM,sBACtC,OAAOA,EAAQA,EAAM,GAAK,GAG5B,SAASinB,GAAYpxB,EAAGC,GACtB,OAAOkxB,GAAQnxB,KAAOmxB,GAAQlxB,GAGhC,SAAS6wB,GAAcxsB,EAAM+sB,GAC3B,IAAKhuB,MAAM6a,QAAQmT,GACjB,OAAOD,GAAWC,EAAe/sB,GAAQ,GAAK,EAEhD,IAAK,IAAI3C,EAAI,EAAG8qB,EAAM4E,EAAcxxB,OAAQ8B,EAAI8qB,EAAK9qB,IACnD,GAAIyvB,GAAWC,EAAc1vB,GAAI2C,GAC/B,OAAO3C,EAGX,OAAQ,EAgDV,SAAS2vB,GAAaC,EAAKzC,EAAI0C,GAG7BhH,KACA,IACE,GAAIsE,EAAI,CACN,IAAI2C,EAAM3C,EACV,MAAQ2C,EAAMA,EAAIC,QAAU,CAC1B,IAAIvC,EAAQsC,EAAI/T,SAASiU,cACzB,GAAIxC,EACF,IAAK,IAAIxtB,EAAI,EAAGA,EAAIwtB,EAAMtvB,OAAQ8B,IAChC,IACE,IAAIiwB,GAAgD,IAAtCzC,EAAMxtB,GAAG5B,KAAK0xB,EAAKF,EAAKzC,EAAI0C,GAC1C,GAAII,EAAW,OACf,MAAOnmB,IACPomB,GAAkBpmB,GAAGgmB,EAAK,wBAMpCI,GAAkBN,EAAKzC,EAAI0C,GAC3B,QACA/G,MAIJ,SAASqH,GACPhd,EACAjQ,EACApD,EACAqtB,EACA0C,GAEA,IAAItmB,EACJ,IACEA,EAAMzJ,EAAOqT,EAAQ3U,MAAM0E,EAASpD,GAAQqT,EAAQ/U,KAAK8E,GACrDqG,IAAQA,EAAI0iB,QAAUpL,EAAUtX,KAASA,EAAI6mB,WAC/C7mB,EAAIwX,OAAM,SAAUjX,GAAK,OAAO6lB,GAAY7lB,EAAGqjB,EAAI0C,EAAO,uBAG1DtmB,EAAI6mB,UAAW,GAEjB,MAAOtmB,IACP6lB,GAAY7lB,GAAGqjB,EAAI0C,GAErB,OAAOtmB,EAGT,SAAS2mB,GAAmBN,EAAKzC,EAAI0C,GACnC,GAAIvL,EAAOM,aACT,IACE,OAAON,EAAOM,aAAaxmB,KAAK,KAAMwxB,EAAKzC,EAAI0C,GAC/C,MAAO/lB,IAGHA,KAAM8lB,GACRS,GAASvmB,GAAG,KAAM,uBAIxBumB,GAAST,EAAKzC,EAAI0C,GAGpB,SAASQ,GAAUT,EAAKzC,EAAI0C,GAK1B,IAAK1J,IAAaC,GAA8B,qBAAZkK,QAGlC,MAAMV,EAFNU,QAAQpvB,MAAM0uB,GAQlB,IAyBIW,GAzBAC,IAAmB,EAEnBC,GAAY,GACZC,IAAU,EAEd,SAASC,KACPD,IAAU,EACV,IAAIE,EAASH,GAAUhxB,MAAM,GAC7BgxB,GAAUvyB,OAAS,EACnB,IAAK,IAAI8B,EAAI,EAAGA,EAAI4wB,EAAO1yB,OAAQ8B,IACjC4wB,EAAO5wB,KAwBX,GAAuB,qBAAZ6wB,SAA2BtJ,GAASsJ,SAAU,CACvD,IAAIjnB,GAAIinB,QAAQC,UAChBP,GAAY,WACV3mB,GAAEkX,KAAK6P,IAMH9J,IAAS7S,WAAWoP,IAE1BoN,IAAmB,OACd,GAAK9J,IAAoC,qBAArBqK,mBACzBxJ,GAASwJ,mBAEuB,yCAAhCA,iBAAiBpwB,WAoBjB4vB,GAJiC,qBAAjBS,cAAgCzJ,GAASyJ,cAI7C,WACVA,aAAaL,KAIH,WACV3c,WAAW2c,GAAgB,QAzB5B,CAID,IAAIM,GAAU,EACVC,GAAW,IAAIH,iBAAiBJ,IAChCQ,GAAWrf,SAASsf,eAAetzB,OAAOmzB,KAC9CC,GAASpF,QAAQqF,GAAU,CACzBE,eAAe,IAEjBd,GAAY,WACVU,IAAWA,GAAU,GAAK,EAC1BE,GAAShuB,KAAOrF,OAAOmzB,KAEzBT,IAAmB,EAerB,SAASc,GAAUrd,EAAIyO,GACrB,IAAI6O,EAiBJ,GAhBAd,GAAUhpB,MAAK,WACb,GAAIwM,EACF,IACEA,EAAG7V,KAAKskB,GACR,MAAO5Y,IACP6lB,GAAY7lB,GAAG4Y,EAAK,iBAEb6O,GACTA,EAAS7O,MAGRgO,KACHA,IAAU,EACVH,OAGGtc,GAAyB,qBAAZ4c,QAChB,OAAO,IAAIA,SAAQ,SAAUC,GAC3BS,EAAWT,KAiGjB,IAAIU,GAAc,IAAI/J,GAOtB,SAASgK,GAAUrnB,GACjBsnB,GAAUtnB,EAAKonB,IACfA,GAAYzJ,QAGd,SAAS2J,GAAWtnB,EAAKunB,GACvB,IAAI3xB,EAAGkP,EACH0iB,EAAMlwB,MAAM6a,QAAQnS,GACxB,MAAMwnB,IAAQpyB,EAAS4K,IAAStJ,OAAO+wB,SAASznB,IAAQA,aAAekK,IAAvE,CAGA,GAAIlK,EAAI6gB,OAAQ,CACd,IAAI6G,EAAQ1nB,EAAI6gB,OAAOE,IAAIhD,GAC3B,GAAIwJ,EAAK3vB,IAAI8vB,GACX,OAEFH,EAAK/V,IAAIkW,GAEX,GAAIF,EAAK,CACP5xB,EAAIoK,EAAIlM,OACR,MAAO8B,IAAO0xB,GAAUtnB,EAAIpK,GAAI2xB,OAC3B,CACLziB,EAAOpO,OAAOoO,KAAK9E,GACnBpK,EAAIkP,EAAKhR,OACT,MAAO8B,IAAO0xB,GAAUtnB,EAAI8E,EAAKlP,IAAK2xB,KA6B1C,IAAII,GAAiBjQ,GAAO,SAAUrgB,GACpC,IAAIuwB,EAA6B,MAAnBvwB,EAAK6gB,OAAO,GAC1B7gB,EAAOuwB,EAAUvwB,EAAKhC,MAAM,GAAKgC,EACjC,IAAIwwB,EAA6B,MAAnBxwB,EAAK6gB,OAAO,GAC1B7gB,EAAOwwB,EAAUxwB,EAAKhC,MAAM,GAAKgC,EACjC,IAAIwuB,EAA6B,MAAnBxuB,EAAK6gB,OAAO,GAE1B,OADA7gB,EAAOwuB,EAAUxuB,EAAKhC,MAAM,GAAKgC,EAC1B,CACLA,KAAMA,EACNyiB,KAAM+N,EACNhC,QAASA,EACT+B,QAASA,MAIb,SAASE,GAAiBC,EAAKhF,GAC7B,SAASiF,IACP,IAAIC,EAAc5zB,UAEd0zB,EAAMC,EAAQD,IAClB,IAAIzwB,MAAM6a,QAAQ4V,GAOhB,OAAOhC,GAAwBgC,EAAK,KAAM1zB,UAAW0uB,EAAI,gBALzD,IADA,IAAI3C,EAAS2H,EAAI1yB,QACRO,EAAI,EAAGA,EAAIwqB,EAAOtsB,OAAQ8B,IACjCmwB,GAAwB3F,EAAOxqB,GAAI,KAAMqyB,EAAalF,EAAI,gBAQhE,OADAiF,EAAQD,IAAMA,EACPC,EAGT,SAASE,GACPlvB,EACAmvB,EACA3W,EACA4W,EACAC,EACAtF,GAEA,IAAI1rB,EAAcquB,EAAK4C,EAAKC,EAC5B,IAAKlxB,KAAQ2B,EACF0sB,EAAM1sB,EAAG3B,GAClBixB,EAAMH,EAAM9wB,GACZkxB,EAAQZ,GAAetwB,GACnBwe,EAAQ6P,KAKD7P,EAAQyS,IACbzS,EAAQ6P,EAAIqC,OACdrC,EAAM1sB,EAAG3B,GAAQywB,GAAgBpC,EAAK3C,IAEpC/M,EAAOuS,EAAMzO,QACf4L,EAAM1sB,EAAG3B,GAAQgxB,EAAkBE,EAAMlxB,KAAMquB,EAAK6C,EAAM1C,UAE5DrU,EAAI+W,EAAMlxB,KAAMquB,EAAK6C,EAAM1C,QAAS0C,EAAMX,QAASW,EAAMC,SAChD9C,IAAQ4C,IACjBA,EAAIP,IAAMrC,EACV1sB,EAAG3B,GAAQixB,IAGf,IAAKjxB,KAAQ8wB,EACPtS,EAAQ7c,EAAG3B,MACbkxB,EAAQZ,GAAetwB,GACvB+wB,EAAUG,EAAMlxB,KAAM8wB,EAAM9wB,GAAOkxB,EAAM1C,UAO/C,SAAS4C,GAAgBlN,EAAKmN,EAAS1X,GAIrC,IAAIgX,EAHAzM,aAAerR,KACjBqR,EAAMA,EAAIxiB,KAAKiY,OAASuK,EAAIxiB,KAAKiY,KAAO,KAG1C,IAAI2X,EAAUpN,EAAImN,GAElB,SAASE,IACP5X,EAAK5c,MAAMa,KAAMZ,WAGjBijB,EAAO0Q,EAAQD,IAAKa,GAGlB/S,EAAQ8S,GAEVX,EAAUF,GAAgB,CAACc,IAGvB7S,EAAM4S,EAAQZ,MAAQ/R,EAAO2S,EAAQE,SAEvCb,EAAUW,EACVX,EAAQD,IAAI1qB,KAAKurB,IAGjBZ,EAAUF,GAAgB,CAACa,EAASC,IAIxCZ,EAAQa,QAAS,EACjBtN,EAAImN,GAAWV,EAKjB,SAASc,GACP/vB,EACAqkB,EACAvkB,GAKA,IAAI6rB,EAActH,EAAK3O,QAAQpW,MAC/B,IAAIwd,EAAQ6O,GAAZ,CAGA,IAAIvlB,EAAM,GACN8C,EAAQlJ,EAAKkJ,MACb5J,EAAQU,EAAKV,MACjB,GAAI0d,EAAM9T,IAAU8T,EAAM1d,GACxB,IAAK,IAAI0D,KAAO2oB,EAAa,CAC3B,IAAIqE,EAAS3Q,EAAUrc,GAiBvBitB,GAAU7pB,EAAK9G,EAAO0D,EAAKgtB,GAAQ,IACnCC,GAAU7pB,EAAK8C,EAAOlG,EAAKgtB,GAAQ,GAGvC,OAAO5pB,GAGT,SAAS6pB,GACP7pB,EACA7C,EACAP,EACAgtB,EACAE,GAEA,GAAIlT,EAAMzZ,GAAO,CACf,GAAImb,EAAOnb,EAAMP,GAKf,OAJAoD,EAAIpD,GAAOO,EAAKP,GACXktB,UACI3sB,EAAKP,IAEP,EACF,GAAI0b,EAAOnb,EAAMysB,GAKtB,OAJA5pB,EAAIpD,GAAOO,EAAKysB,GACXE,UACI3sB,EAAKysB,IAEP,EAGX,OAAO,EAiBT,SAASG,GAAyB3lB,GAChC,IAAK,IAAI3N,EAAI,EAAGA,EAAI2N,EAASzP,OAAQ8B,IACnC,GAAI0B,MAAM6a,QAAQ5O,EAAS3N,IACzB,OAAO0B,MAAMnB,UAAUD,OAAO9B,MAAM,GAAImP,GAG5C,OAAOA,EAOT,SAAS4lB,GAAmB5lB,GAC1B,OAAO2S,EAAY3S,GACf,CAAC0c,GAAgB1c,IACjBjM,MAAM6a,QAAQ5O,GACZ6lB,GAAuB7lB,QACvBxP,EAGR,SAASs1B,GAAYrJ,GACnB,OAAOjK,EAAMiK,IAASjK,EAAMiK,EAAK1e,OAAS2U,EAAQ+J,EAAKT,WAGzD,SAAS6J,GAAwB7lB,EAAU+lB,GACzC,IACI1zB,EAAGzB,EAAGkK,EAAWkrB,EADjBpqB,EAAM,GAEV,IAAKvJ,EAAI,EAAGA,EAAI2N,EAASzP,OAAQ8B,IAC/BzB,EAAIoP,EAAS3N,GACTigB,EAAQ1hB,IAAmB,mBAANA,IACzBkK,EAAYc,EAAIrL,OAAS,EACzBy1B,EAAOpqB,EAAId,GAEP/G,MAAM6a,QAAQhe,GACZA,EAAEL,OAAS,IACbK,EAAIi1B,GAAuBj1B,GAAKm1B,GAAe,IAAM,IAAM1zB,GAEvDyzB,GAAWl1B,EAAE,KAAOk1B,GAAWE,KACjCpqB,EAAId,GAAa4hB,GAAgBsJ,EAAKjoB,KAAQnN,EAAE,GAAImN,MACpDnN,EAAEq1B,SAEJrqB,EAAI9B,KAAKjJ,MAAM+K,EAAKhL,IAEb+hB,EAAY/hB,GACjBk1B,GAAWE,GAIbpqB,EAAId,GAAa4hB,GAAgBsJ,EAAKjoB,KAAOnN,GAC9B,KAANA,GAETgL,EAAI9B,KAAK4iB,GAAgB9rB,IAGvBk1B,GAAWl1B,IAAMk1B,GAAWE,GAE9BpqB,EAAId,GAAa4hB,GAAgBsJ,EAAKjoB,KAAOnN,EAAEmN,OAG3C0U,EAAOzS,EAASkmB,WAClB1T,EAAM5hB,EAAE0E,MACRgd,EAAQ1hB,EAAE4H,MACVga,EAAMuT,KACNn1B,EAAE4H,IAAM,UAAYutB,EAAc,IAAM1zB,EAAI,MAE9CuJ,EAAI9B,KAAKlJ,KAIf,OAAOgL,EAKT,SAASuqB,GAAa3G,GACpB,IAAIxY,EAAUwY,EAAGpR,SAASpH,QACtBA,IACFwY,EAAG4G,UAA+B,oBAAZpf,EAClBA,EAAQvW,KAAK+uB,GACbxY,GAIR,SAASqf,GAAgB7G,GACvB,IAAIpnB,EAASkuB,GAAc9G,EAAGpR,SAAS4R,OAAQR,GAC3CpnB,IACFulB,IAAgB,GAChBxqB,OAAOoO,KAAKnJ,GAAQE,SAAQ,SAAUE,GAYlC+lB,GAAkBiB,EAAIhnB,EAAKJ,EAAOI,OAGtCmlB,IAAgB,IAIpB,SAAS2I,GAAetG,EAAQR,GAC9B,GAAIQ,EAAQ,CAOV,IALA,IAAI5nB,EAASjF,OAAOygB,OAAO,MACvBrS,EAAOwY,GACPC,QAAQC,QAAQ+F,GAChB7sB,OAAOoO,KAAKye,GAEP3tB,EAAI,EAAGA,EAAIkP,EAAKhR,OAAQ8B,IAAK,CACpC,IAAImG,EAAM+I,EAAKlP,GAEf,GAAY,WAARmG,EAAJ,CACA,IAAI+tB,EAAavG,EAAOxnB,GAAKxE,KACzBwH,EAASgkB,EACb,MAAOhkB,EAAQ,CACb,GAAIA,EAAO4qB,WAAalS,EAAO1Y,EAAO4qB,UAAWG,GAAa,CAC5DnuB,EAAOI,GAAOgD,EAAO4qB,UAAUG,GAC/B,MAEF/qB,EAASA,EAAO4mB,QAElB,IAAK5mB,EACH,GAAI,YAAawkB,EAAOxnB,GAAM,CAC5B,IAAIguB,EAAiBxG,EAAOxnB,GAAKvD,QACjCmD,EAAOI,GAAiC,oBAAnBguB,EACjBA,EAAe/1B,KAAK+uB,GACpBgH,OACK,GAKf,OAAOpuB,GAWX,SAASquB,GACPzmB,EACAzK,GAEA,IAAKyK,IAAaA,EAASzP,OACzB,MAAO,GAGT,IADA,IAAIm2B,EAAQ,GACHr0B,EAAI,EAAG4iB,EAAIjV,EAASzP,OAAQ8B,EAAI4iB,EAAG5iB,IAAK,CAC/C,IAAIiqB,EAAQtc,EAAS3N,GACjBmD,EAAO8mB,EAAM9mB,KAOjB,GALIA,GAAQA,EAAKkJ,OAASlJ,EAAKkJ,MAAM6S,aAC5B/b,EAAKkJ,MAAM6S,KAIf+K,EAAM/mB,UAAYA,GAAW+mB,EAAMb,YAAclmB,IACpDC,GAAqB,MAAbA,EAAK+b,MAUZmV,EAAMzxB,UAAYyxB,EAAMzxB,QAAU,KAAK6E,KAAKwiB,OAT7C,CACA,IAAIxoB,EAAO0B,EAAK+b,KACZA,EAAQmV,EAAM5yB,KAAU4yB,EAAM5yB,GAAQ,IACxB,aAAdwoB,EAAMhnB,IACRic,EAAKzX,KAAKjJ,MAAM0gB,EAAM+K,EAAMtc,UAAY,IAExCuR,EAAKzX,KAAKwiB,IAOhB,IAAK,IAAIqK,KAAUD,EACbA,EAAMC,GAAQ1Q,MAAM2Q,YACfF,EAAMC,GAGjB,OAAOD,EAGT,SAASE,GAAcnK,GACrB,OAAQA,EAAKT,YAAcS,EAAKlB,cAA+B,MAAdkB,EAAK1e,KAKxD,SAAS8oB,GACPH,EACAI,EACAC,GAEA,IAAInrB,EACAorB,EAAiB7zB,OAAOoO,KAAKulB,GAAav2B,OAAS,EACnD02B,EAAWP,IAAUA,EAAMQ,SAAWF,EACtCxuB,EAAMkuB,GAASA,EAAMS,KACzB,GAAKT,EAEE,IAAIA,EAAMU,YAEf,OAAOV,EAAMU,YACR,GACLH,GACAF,GACAA,IAAc3U,GACd5Z,IAAQuuB,EAAUI,OACjBH,IACAD,EAAUM,WAIX,OAAON,EAGP,IAAK,IAAIhH,KADTnkB,EAAM,GACY8qB,EACZA,EAAM3G,IAAuB,MAAbA,EAAM,KACxBnkB,EAAImkB,GAASuH,GAAoBR,EAAa/G,EAAO2G,EAAM3G,UAnB/DnkB,EAAM,GAwBR,IAAK,IAAI2rB,KAAST,EACVS,KAAS3rB,IACbA,EAAI2rB,GAASC,GAAgBV,EAAaS,IAW9C,OANIb,GAASvzB,OAAOkrB,aAAaqI,KAC/B,EAAQU,YAAcxrB,GAExBoc,EAAIpc,EAAK,UAAWqrB,GACpBjP,EAAIpc,EAAK,OAAQpD,GACjBwf,EAAIpc,EAAK,aAAcorB,GAChBprB,EAGT,SAAS0rB,GAAoBR,EAAatuB,EAAKnI,GAC7C,IAAI+vB,EAAa,WACf,IAAIxkB,EAAM9K,UAAUP,OAASF,EAAGQ,MAAM,KAAMC,WAAaT,EAAG,IAI5D,OAHAuL,EAAMA,GAAsB,kBAARA,IAAqB7H,MAAM6a,QAAQhT,GACnD,CAACA,GACDgqB,GAAkBhqB,GACfA,IACU,IAAfA,EAAIrL,QACY,IAAfqL,EAAIrL,QAAgBqL,EAAI,GAAGogB,gBAC1BxrB,EACAoL,GAYN,OAPIvL,EAAGo3B,OACLt0B,OAAO0E,eAAeivB,EAAatuB,EAAK,CACtCV,IAAKsoB,EACLnI,YAAY,EACZjL,cAAc,IAGXoT,EAGT,SAASoH,GAAgBd,EAAOluB,GAC9B,OAAO,WAAc,OAAOkuB,EAAMluB,IAQpC,SAASkvB,GACPjrB,EACApH,GAEA,IAAIigB,EAAKjjB,EAAG4iB,EAAG1T,EAAM/I,EACrB,GAAIzE,MAAM6a,QAAQnS,IAAuB,kBAARA,EAE/B,IADA6Y,EAAM,IAAIvhB,MAAM0I,EAAIlM,QACf8B,EAAI,EAAG4iB,EAAIxY,EAAIlM,OAAQ8B,EAAI4iB,EAAG5iB,IACjCijB,EAAIjjB,GAAKgD,EAAOoH,EAAIpK,GAAIA,QAErB,GAAmB,kBAARoK,EAEhB,IADA6Y,EAAM,IAAIvhB,MAAM0I,GACXpK,EAAI,EAAGA,EAAIoK,EAAKpK,IACnBijB,EAAIjjB,GAAKgD,EAAOhD,EAAI,EAAGA,QAEpB,GAAIR,EAAS4K,GAClB,GAAIsd,IAAatd,EAAIsS,OAAOvE,UAAW,CACrC8K,EAAM,GACN,IAAI9K,EAAW/N,EAAIsS,OAAOvE,YACtBpS,EAASoS,EAAS/C,OACtB,OAAQrP,EAAOyD,KACbyZ,EAAIxb,KAAKzE,EAAO+C,EAAOG,MAAO+c,EAAI/kB,SAClC6H,EAASoS,EAAS/C,YAKpB,IAFAlG,EAAOpO,OAAOoO,KAAK9E,GACnB6Y,EAAM,IAAIvhB,MAAMwN,EAAKhR,QAChB8B,EAAI,EAAG4iB,EAAI1T,EAAKhR,OAAQ8B,EAAI4iB,EAAG5iB,IAClCmG,EAAM+I,EAAKlP,GACXijB,EAAIjjB,GAAKgD,EAAOoH,EAAIjE,GAAMA,EAAKnG,GAQrC,OAJKmgB,EAAM8C,KACTA,EAAM,IAER,EAAM4Q,UAAW,EACV5Q,EAQT,SAASqS,GACP7zB,EACA8zB,EACA9yB,EACA+yB,GAEA,IACIC,EADAC,EAAer2B,KAAKuR,aAAanP,GAEjCi0B,GACFjzB,EAAQA,GAAS,GACb+yB,IAOF/yB,EAAQygB,EAAOA,EAAO,GAAIsS,GAAa/yB,IAEzCgzB,EAAQC,EAAajzB,IAAU8yB,GAE/BE,EAAQp2B,KAAKoM,OAAOhK,IAAS8zB,EAG/B,IAAIv2B,EAASyD,GAASA,EAAMyc,KAC5B,OAAIlgB,EACKK,KAAK2T,eAAe,WAAY,CAAEkM,KAAMlgB,GAAUy2B,GAElDA,EASX,SAASE,GAAexN,GACtB,OAAOqG,GAAanvB,KAAK0c,SAAU,UAAWoM,GAAI,IAAS7E,EAK7D,SAASsS,GAAeC,EAAQC,GAC9B,OAAIp0B,MAAM6a,QAAQsZ,IACmB,IAA5BA,EAAO1mB,QAAQ2mB,GAEfD,IAAWC,EAStB,SAASC,GACPC,EACA7vB,EACA8vB,EACAC,EACAC,GAEA,IAAIC,EAAgB9R,EAAOS,SAAS5e,IAAQ8vB,EAC5C,OAAIE,GAAkBD,IAAiB5R,EAAOS,SAAS5e,GAC9CyvB,GAAcO,EAAgBD,GAC5BE,EACFR,GAAcQ,EAAeJ,GAC3BE,EACF1T,EAAU0T,KAAkB/vB,OAD9B,EAUT,SAASkwB,GACPlzB,EACAF,EACAiD,EACAowB,EACAC,GAEA,GAAIrwB,EACF,GAAK1G,EAAS0G,GAKP,CAIL,IAAIQ,EAHAhF,MAAM6a,QAAQrW,KAChBA,EAAQtH,EAASsH,IAGnB,IAAIswB,EAAO,SAAWrwB,GACpB,GACU,UAARA,GACQ,UAARA,GACAsb,EAAoBtb,GAEpBO,EAAOvD,MACF,CACL,IAAIR,EAAOQ,EAAKkJ,OAASlJ,EAAKkJ,MAAM1J,KACpC+D,EAAO4vB,GAAUhS,EAAOe,YAAYpiB,EAAKN,EAAMwD,GAC3ChD,EAAKszB,WAAatzB,EAAKszB,SAAW,IAClCtzB,EAAKkJ,QAAUlJ,EAAKkJ,MAAQ,IAElC,IAAIqqB,EAAexU,EAAS/b,GACxBwwB,EAAgBnU,EAAUrc,GAC9B,KAAMuwB,KAAgBhwB,MAAWiwB,KAAiBjwB,KAChDA,EAAKP,GAAOD,EAAMC,GAEdowB,GAAQ,CACV,IAAInzB,EAAKD,EAAKC,KAAOD,EAAKC,GAAK,IAC/BA,EAAI,UAAY+C,GAAQ,SAAUywB,GAChC1wB,EAAMC,GAAOywB,KAMrB,IAAK,IAAIzwB,KAAOD,EAAOswB,EAAMrwB,QAGjC,OAAOhD,EAQT,SAAS0zB,GACPztB,EACA0tB,GAEA,IAAIhV,EAASziB,KAAK03B,eAAiB13B,KAAK03B,aAAe,IACnDC,EAAOlV,EAAO1Y,GAGlB,OAAI4tB,IAASF,IAIbE,EAAOlV,EAAO1Y,GAAS/J,KAAK0c,SAASjB,gBAAgB1R,GAAOhL,KAC1DiB,KAAK43B,aACL,KACA53B,MAEF63B,GAAWF,EAAO,aAAe5tB,GAAQ,IARhC4tB,EAgBX,SAASG,GACPH,EACA5tB,EACAjD,GAGA,OADA+wB,GAAWF,EAAO,WAAa5tB,GAASjD,EAAO,IAAMA,EAAO,KAAM,GAC3D6wB,EAGT,SAASE,GACPF,EACA7wB,EACA0jB,GAEA,GAAInoB,MAAM6a,QAAQya,GAChB,IAAK,IAAIh3B,EAAI,EAAGA,EAAIg3B,EAAK94B,OAAQ8B,IAC3Bg3B,EAAKh3B,IAAyB,kBAAZg3B,EAAKh3B,IACzBo3B,GAAeJ,EAAKh3B,GAAKmG,EAAM,IAAMnG,EAAI6pB,QAI7CuN,GAAeJ,EAAM7wB,EAAK0jB,GAI9B,SAASuN,GAAgBhN,EAAMjkB,EAAK0jB,GAClCO,EAAKX,UAAW,EAChBW,EAAKjkB,IAAMA,EACXikB,EAAKP,OAASA,EAKhB,SAASwN,GAAqBl0B,EAAM+C,GAClC,GAAIA,EACF,GAAKua,EAAcva,GAKZ,CACL,IAAI9C,EAAKD,EAAKC,GAAKD,EAAKC,GAAK8f,EAAO,GAAI/f,EAAKC,IAAM,GACnD,IAAK,IAAI+C,KAAOD,EAAO,CACrB,IAAIiW,EAAW/Y,EAAG+C,GACdmxB,EAAOpxB,EAAMC,GACjB/C,EAAG+C,GAAOgW,EAAW,GAAG7b,OAAO6b,EAAUmb,GAAQA,QAIvD,OAAOn0B,EAKT,SAASo0B,GACPpF,EACA5oB,EAEAiuB,EACAC,GAEAluB,EAAMA,GAAO,CAAEsrB,SAAU2C,GACzB,IAAK,IAAIx3B,EAAI,EAAGA,EAAImyB,EAAIj0B,OAAQ8B,IAAK,CACnC,IAAIkf,EAAOiT,EAAInyB,GACX0B,MAAM6a,QAAQ2C,GAChBqY,GAAmBrY,EAAM3V,EAAKiuB,GACrBtY,IAELA,EAAKkW,QACPlW,EAAKlhB,GAAGo3B,OAAQ,GAElB7rB,EAAI2V,EAAK/Y,KAAO+Y,EAAKlhB,IAMzB,OAHIy5B,IACF,EAAM3C,KAAO2C,GAERluB,EAKT,SAASmuB,GAAiBC,EAASvyB,GACjC,IAAK,IAAIpF,EAAI,EAAGA,EAAIoF,EAAOlH,OAAQ8B,GAAK,EAAG,CACzC,IAAImG,EAAMf,EAAOpF,GACE,kBAARmG,GAAoBA,IAC7BwxB,EAAQvyB,EAAOpF,IAAMoF,EAAOpF,EAAI,IASpC,OAAO23B,EAMT,SAASC,GAAiB1xB,EAAO2xB,GAC/B,MAAwB,kBAAV3xB,EAAqB2xB,EAAS3xB,EAAQA,EAKtD,SAAS4xB,GAAsB94B,GAC7BA,EAAO+4B,GAAKZ,GACZn4B,EAAOg5B,GAAK9W,EACZliB,EAAOi5B,GAAKt3B,EACZ3B,EAAOk5B,GAAK7C,GACZr2B,EAAOm5B,GAAK7C,GACZt2B,EAAOo5B,GAAK7U,EACZvkB,EAAOq5B,GAAKpU,EACZjlB,EAAOs5B,GAAKzB,GACZ73B,EAAOu5B,GAAK5C,GACZ32B,EAAOw5B,GAAKzC,GACZ/2B,EAAOy5B,GAAKpC,GACZr3B,EAAO05B,GAAKrO,GACZrrB,EAAO25B,GAAKxO,GACZnrB,EAAO45B,GAAKrB,GACZv4B,EAAO65B,GAAKxB,GACZr4B,EAAO85B,GAAKpB,GACZ14B,EAAO+5B,GAAKnB,GAKd,SAASoB,GACP71B,EACAV,EACAkL,EACA8N,EACA+L,GAEA,IAKIyR,EALAC,EAAS75B,KAETwZ,EAAU2O,EAAK3O,QAIfgJ,EAAOpG,EAAQ,SACjBwd,EAAYn4B,OAAOygB,OAAO9F,GAE1Bwd,EAAUE,UAAY1d,IAKtBwd,EAAYxd,EAEZA,EAASA,EAAO0d,WAElB,IAAIC,EAAahZ,EAAOvH,EAAQwC,WAC5Bge,GAAqBD,EAEzB/5B,KAAK8D,KAAOA,EACZ9D,KAAKoD,MAAQA,EACbpD,KAAKsO,SAAWA,EAChBtO,KAAKoc,OAASA,EACdpc,KAAK+f,UAAYjc,EAAKC,IAAM2c,EAC5B1gB,KAAKi6B,WAAarF,GAAcpb,EAAQ8U,OAAQlS,GAChDpc,KAAKg1B,MAAQ,WAOX,OANK6E,EAAOztB,QACV+oB,GACErxB,EAAKo2B,YACLL,EAAOztB,OAAS2oB,GAAazmB,EAAU8N,IAGpCyd,EAAOztB,QAGhB3K,OAAO0E,eAAenG,KAAM,cAAe,CACzCumB,YAAY,EACZngB,IAAK,WACH,OAAO+uB,GAAqBrxB,EAAKo2B,YAAal6B,KAAKg1B,YAKnD+E,IAEF/5B,KAAK0c,SAAWlD,EAEhBxZ,KAAKoM,OAASpM,KAAKg1B,QACnBh1B,KAAKuR,aAAe4jB,GAAqBrxB,EAAKo2B,YAAal6B,KAAKoM,SAG9DoN,EAAQyC,SACVjc,KAAKm6B,GAAK,SAAUn7B,EAAGC,EAAGC,EAAGgP,GAC3B,IAAIgd,EAAQhlB,GAAc0zB,EAAW56B,EAAGC,EAAGC,EAAGgP,EAAG8rB,GAKjD,OAJI9O,IAAU7oB,MAAM6a,QAAQgO,KAC1BA,EAAMjB,UAAYzQ,EAAQyC,SAC1BiP,EAAMnB,UAAY3N,GAEb8O,GAGTlrB,KAAKm6B,GAAK,SAAUn7B,EAAGC,EAAGC,EAAGgP,GAAK,OAAOhI,GAAc0zB,EAAW56B,EAAGC,EAAGC,EAAGgP,EAAG8rB,IAMlF,SAASI,GACPjS,EACAuH,EACA5rB,EACA81B,EACAtrB,GAEA,IAAIkL,EAAU2O,EAAK3O,QACfpW,EAAQ,GACRqsB,EAAcjW,EAAQpW,MAC1B,GAAI0d,EAAM2O,GACR,IAAK,IAAI3oB,KAAO2oB,EACdrsB,EAAM0D,GAAO0oB,GAAa1oB,EAAK2oB,EAAaC,GAAahP,QAGvDI,EAAMhd,EAAKkJ,QAAUqtB,GAAWj3B,EAAOU,EAAKkJ,OAC5C8T,EAAMhd,EAAKV,QAAUi3B,GAAWj3B,EAAOU,EAAKV,OAGlD,IAAIk3B,EAAgB,IAAIX,GACtB71B,EACAV,EACAkL,EACAsrB,EACAzR,GAGE+C,EAAQ1R,EAAQ7V,OAAO5E,KAAK,KAAMu7B,EAAcH,GAAIG,GAExD,GAAIpP,aAAiBjW,GACnB,OAAOslB,GAA6BrP,EAAOpnB,EAAMw2B,EAAcle,OAAQ5C,EAAS8gB,GAC3E,GAAIj4B,MAAM6a,QAAQgO,GAAQ,CAG/B,IAFA,IAAIsP,EAAStG,GAAkBhJ,IAAU,GACrChhB,EAAM,IAAI7H,MAAMm4B,EAAO37B,QAClB8B,EAAI,EAAGA,EAAI65B,EAAO37B,OAAQ8B,IACjCuJ,EAAIvJ,GAAK45B,GAA6BC,EAAO75B,GAAImD,EAAMw2B,EAAcle,OAAQ5C,EAAS8gB,GAExF,OAAOpwB,GAIX,SAASqwB,GAA8BrP,EAAOpnB,EAAM81B,EAAWpgB,EAAS8gB,GAItE,IAAIG,EAAQxP,GAAWC,GASvB,OARAuP,EAAM1Q,UAAY6P,EAClBa,EAAMzQ,UAAYxQ,EAId1V,EAAK+b,QACN4a,EAAM32B,OAAS22B,EAAM32B,KAAO,KAAK+b,KAAO/b,EAAK+b,MAEzC4a,EAGT,SAASJ,GAAY5jB,EAAInU,GACvB,IAAK,IAAIwE,KAAOxE,EACdmU,EAAGoM,EAAS/b,IAAQxE,EAAKwE,GA7D7B2xB,GAAqBkB,GAAwBz4B,WA0E7C,IAAIw5B,GAAsB,CACxBC,KAAM,SAAezP,EAAO0P,GAC1B,GACE1P,EAAMhB,oBACLgB,EAAMhB,kBAAkBjY,cACzBiZ,EAAMpnB,KAAK+2B,UACX,CAEA,IAAIC,EAAc5P,EAClBwP,GAAoBK,SAASD,EAAaA,OACrC,CACL,IAAIlQ,EAAQM,EAAMhB,kBAAoB8Q,GACpC9P,EACA+P,IAEFrQ,EAAMsQ,OAAON,EAAY1P,EAAMvB,SAAM7qB,EAAW87B,KAIpDG,SAAU,SAAmBI,EAAUjQ,GACrC,IAAI1R,EAAU0R,EAAMtB,iBAChBgB,EAAQM,EAAMhB,kBAAoBiR,EAASjR,kBAC/CkR,GACExQ,EACApR,EAAQkW,UACRlW,EAAQuG,UACRmL,EACA1R,EAAQlL,WAIZ+sB,OAAQ,SAAiBnQ,GACvB,IAAIrnB,EAAUqnB,EAAMrnB,QAChBqmB,EAAoBgB,EAAMhB,kBACzBA,EAAkBoR,aACrBpR,EAAkBoR,YAAa,EAC/BC,GAASrR,EAAmB,YAE1BgB,EAAMpnB,KAAK+2B,YACTh3B,EAAQy3B,WAMVE,GAAwBtR,GAExBuR,GAAuBvR,GAAmB,KAKhDwR,QAAS,SAAkBxQ,GACzB,IAAIhB,EAAoBgB,EAAMhB,kBACzBA,EAAkBjY,eAChBiZ,EAAMpnB,KAAK+2B,UAGdc,GAAyBzR,GAAmB,GAF5CA,EAAkB0R,cAQtBC,GAAep6B,OAAOoO,KAAK6qB,IAE/B,SAASoB,GACP3T,EACArkB,EACAD,EACAyK,EACA1K,GAEA,IAAIgd,EAAQuH,GAAZ,CAIA,IAAI4T,EAAWl4B,EAAQ6Y,SAASqS,MAShC,GANI5uB,EAASgoB,KACXA,EAAO4T,EAASlY,OAAOsE,IAKL,oBAATA,EAAX,CAQA,IAAI0B,EACJ,GAAIjJ,EAAQuH,EAAK6T,OACfnS,EAAe1B,EACfA,EAAO8T,GAAsBpS,EAAckS,QAC9Bj9B,IAATqpB,GAIF,OAAO+T,GACLrS,EACA/lB,EACAD,EACAyK,EACA1K,GAKNE,EAAOA,GAAQ,GAIfq4B,GAA0BhU,GAGtBrH,EAAMhd,EAAKs4B,QACbC,GAAelU,EAAK3O,QAAS1V,GAI/B,IAAI4rB,EAAYmE,GAA0B/vB,EAAMqkB,EAAMvkB,GAGtD,GAAImd,EAAOoH,EAAK3O,QAAQrW,YACtB,OAAOi3B,GAA0BjS,EAAMuH,EAAW5rB,EAAMD,EAASyK,GAKnE,IAAIyR,EAAYjc,EAAKC,GAKrB,GAFAD,EAAKC,GAAKD,EAAKw4B,SAEXvb,EAAOoH,EAAK3O,QAAQ+iB,UAAW,CAKjC,IAAI1c,EAAO/b,EAAK+b,KAChB/b,EAAO,GACH+b,IACF/b,EAAK+b,KAAOA,GAKhB2c,GAAsB14B,GAGtB,IAAI1B,EAAO+lB,EAAK3O,QAAQpX,MAAQwB,EAC5BsnB,EAAQ,IAAIjW,GACb,iBAAoBkT,EAAQ,KAAK/lB,EAAQ,IAAMA,EAAQ,IACxD0B,OAAMhF,OAAWA,OAAWA,EAAW+E,EACvC,CAAEskB,KAAMA,EAAMuH,UAAWA,EAAW3P,UAAWA,EAAWnc,IAAKA,EAAK0K,SAAUA,GAC9Eub,GAGF,OAAOqB,IAGT,SAAS8P,GACP9P,EACA9O,GAEA,IAAI5C,EAAU,CACZijB,cAAc,EACdC,aAAcxR,EACd9O,OAAQA,GAGNugB,EAAiBzR,EAAMpnB,KAAK64B,eAKhC,OAJI7b,EAAM6b,KACRnjB,EAAQ7V,OAASg5B,EAAeh5B,OAChC6V,EAAQiC,gBAAkBkhB,EAAelhB,iBAEpC,IAAIyP,EAAMtB,iBAAiBzB,KAAK3O,GAGzC,SAASgjB,GAAuB14B,GAE9B,IADA,IAAIqqB,EAAQrqB,EAAKiY,OAASjY,EAAKiY,KAAO,IAC7Bpb,EAAI,EAAGA,EAAIk7B,GAAah9B,OAAQ8B,IAAK,CAC5C,IAAImG,EAAM+0B,GAAal7B,GACnBmc,EAAWqR,EAAMrnB,GACjB81B,EAAUlC,GAAoB5zB,GAC9BgW,IAAa8f,GAAa9f,GAAYA,EAAS+f,UACjD1O,EAAMrnB,GAAOgW,EAAWggB,GAAYF,EAAS9f,GAAY8f,IAK/D,SAASE,GAAaC,EAAIC,GACxB,IAAIpJ,EAAS,SAAU50B,EAAGC,GAExB89B,EAAG/9B,EAAGC,GACN+9B,EAAGh+B,EAAGC,IAGR,OADA20B,EAAOiJ,SAAU,EACVjJ,EAKT,SAASyI,GAAgB7iB,EAAS1V,GAChC,IAAI6rB,EAAQnW,EAAQ4iB,OAAS5iB,EAAQ4iB,MAAMzM,MAAS,QAChD2D,EAAS9Z,EAAQ4iB,OAAS5iB,EAAQ4iB,MAAM9I,OAAU,SACpDxvB,EAAKkJ,QAAUlJ,EAAKkJ,MAAQ,KAAK2iB,GAAQ7rB,EAAKs4B,MAAMv1B,MACtD,IAAI9C,EAAKD,EAAKC,KAAOD,EAAKC,GAAK,IAC3B+Y,EAAW/Y,EAAGuvB,GACd2J,EAAWn5B,EAAKs4B,MAAMa,SACtBnc,EAAMhE,IAENza,MAAM6a,QAAQJ,IACsB,IAAhCA,EAAShN,QAAQmtB,GACjBngB,IAAamgB,KAEjBl5B,EAAGuvB,GAAS,CAAC2J,GAAUh8B,OAAO6b,IAGhC/Y,EAAGuvB,GAAS2J,EAMhB,IAAIC,GAAmB,EACnBC,GAAmB,EAIvB,SAASj3B,GACPrC,EACAD,EACAE,EACAwK,EACA8uB,EACAC,GAUA,OARIh7B,MAAM6a,QAAQpZ,IAASmd,EAAYnd,MACrCs5B,EAAoB9uB,EACpBA,EAAWxK,EACXA,OAAOhF,GAELiiB,EAAOsc,KACTD,EAAoBD,IAEfG,GAAez5B,EAASD,EAAKE,EAAMwK,EAAU8uB,GAGtD,SAASE,GACPz5B,EACAD,EACAE,EACAwK,EACA8uB,GAEA,GAAItc,EAAMhd,IAASgd,EAAM,EAAO8K,QAM9B,OAAOd,KAMT,GAHIhK,EAAMhd,IAASgd,EAAMhd,EAAK6G,MAC5B/G,EAAME,EAAK6G,KAER/G,EAEH,OAAOknB,KA2BT,IAAII,EAAOpB,EAEL3B,GAdF9lB,MAAM6a,QAAQ5O,IACO,oBAAhBA,EAAS,KAEhBxK,EAAOA,GAAQ,GACfA,EAAKo2B,YAAc,CAAE32B,QAAS+K,EAAS,IACvCA,EAASzP,OAAS,GAEhBu+B,IAAsBD,GACxB7uB,EAAW4lB,GAAkB5lB,GACpB8uB,IAAsBF,KAC/B5uB,EAAW2lB,GAAwB3lB,IAGlB,kBAAR1K,IAETkmB,EAAMjmB,EAAQqY,QAAUrY,EAAQqY,OAAO4N,IAAO7E,EAAOa,gBAAgBliB,GASnEsnB,EAREjG,EAAOU,cAAc/hB,GAQf,IAAIqR,GACVgQ,EAAOc,qBAAqBniB,GAAME,EAAMwK,OACxCxP,OAAWA,EAAW+E,GAEbC,GAASA,EAAKy5B,MAAQzc,EAAMqH,EAAOgH,GAAatrB,EAAQ6Y,SAAU,aAAc9Y,IAOnF,IAAIqR,GACVrR,EAAKE,EAAMwK,OACXxP,OAAWA,EAAW+E,GAPhBi4B,GAAgB3T,EAAMrkB,EAAMD,EAASyK,EAAU1K,IAYzDsnB,EAAQ4Q,GAAgBl4B,EAAKE,EAAMD,EAASyK,GAE9C,OAAIjM,MAAM6a,QAAQgO,GACTA,EACEpK,EAAMoK,IACXpK,EAAMgJ,IAAO0T,GAAQtS,EAAOpB,GAC5BhJ,EAAMhd,IAAS25B,GAAqB35B,GACjConB,GAEAJ,KAIX,SAAS0S,GAAStS,EAAOpB,EAAI4T,GAO3B,GANAxS,EAAMpB,GAAKA,EACO,kBAAdoB,EAAMtnB,MAERkmB,OAAKhrB,EACL4+B,GAAQ,GAEN5c,EAAMoK,EAAM5c,UACd,IAAK,IAAI3N,EAAI,EAAG4iB,EAAI2H,EAAM5c,SAASzP,OAAQ8B,EAAI4iB,EAAG5iB,IAAK,CACrD,IAAIiqB,EAAQM,EAAM5c,SAAS3N,GACvBmgB,EAAM8J,EAAMhnB,OACdgd,EAAQgK,EAAMd,KAAQ/I,EAAO2c,IAAwB,QAAd9S,EAAMhnB,MAC7C45B,GAAQ5S,EAAOd,EAAI4T,IAS3B,SAASD,GAAsB35B,GACzB3D,EAAS2D,EAAK6J,QAChBykB,GAAStuB,EAAK6J,OAEZxN,EAAS2D,EAAKiJ,QAChBqlB,GAAStuB,EAAKiJ,OAMlB,SAAS4wB,GAAY7P,GACnBA,EAAG8P,OAAS,KACZ9P,EAAG4J,aAAe,KAClB,IAAIle,EAAUsU,EAAGpR,SACbmhB,EAAc/P,EAAG5R,OAAS1C,EAAQkjB,aAClCpC,EAAgBuD,GAAeA,EAAYh6B,QAC/CiqB,EAAG1hB,OAAS2oB,GAAavb,EAAQskB,gBAAiBxD,GAClDxM,EAAGvc,aAAemP,EAKlBoN,EAAGqM,GAAK,SAAUn7B,EAAGC,EAAGC,EAAGgP,GAAK,OAAOhI,GAAc4nB,EAAI9uB,EAAGC,EAAGC,EAAGgP,GAAG,IAGrE4f,EAAGna,eAAiB,SAAU3U,EAAGC,EAAGC,EAAGgP,GAAK,OAAOhI,GAAc4nB,EAAI9uB,EAAGC,EAAGC,EAAGgP,GAAG,IAIjF,IAAI6vB,EAAaF,GAAeA,EAAY/5B,KAW1C+oB,GAAkBiB,EAAI,SAAUiQ,GAAcA,EAAW/wB,OAAS0T,EAAa,MAAM,GACrFmM,GAAkBiB,EAAI,aAActU,EAAQwkB,kBAAoBtd,EAAa,MAAM,GAIvF,IAkQI/gB,GAlQAs+B,GAA2B,KAE/B,SAASC,GAAaC,GAEpB1F,GAAqB0F,EAAIj9B,WAEzBi9B,EAAIj9B,UAAUk9B,UAAY,SAAUz/B,GAClC,OAAOszB,GAAStzB,EAAIqB,OAGtBm+B,EAAIj9B,UAAUm9B,QAAU,WACtB,IAiBInT,EAjBA4C,EAAK9tB,KACLyT,EAAMqa,EAAGpR,SACT/Y,EAAS8P,EAAI9P,OACb+4B,EAAejpB,EAAIipB,aAEnBA,IACF5O,EAAGvc,aAAe4jB,GAChBuH,EAAa54B,KAAKo2B,YAClBpM,EAAG1hB,OACH0hB,EAAGvc,eAMPuc,EAAG5R,OAASwgB,EAGZ,IAIEuB,GAA2BnQ,EAC3B5C,EAAQvnB,EAAO5E,KAAK+uB,EAAG8J,aAAc9J,EAAGna,gBACxC,MAAOlJ,IACP6lB,GAAY7lB,GAAGqjB,EAAI,UAYjB5C,EAAQ4C,EAAG8P,OAEb,QACAK,GAA2B,KAmB7B,OAhBI57B,MAAM6a,QAAQgO,IAA2B,IAAjBA,EAAMrsB,SAChCqsB,EAAQA,EAAM,IAGVA,aAAiBjW,KAQrBiW,EAAQJ,MAGVI,EAAM9O,OAASsgB,EACRxR,GAMX,SAASoT,GAAYC,EAAMrmB,GAOzB,OALEqmB,EAAKC,YACJnW,IAA0C,WAA7BkW,EAAKlhB,OAAOohB,gBAE1BF,EAAOA,EAAKh7B,SAEPpD,EAASo+B,GACZrmB,EAAK2L,OAAO0a,GACZA,EAGN,SAASrC,GACPwC,EACA56B,EACAD,EACAyK,EACA1K,GAEA,IAAImnB,EAAOD,KAGX,OAFAC,EAAKlB,aAAe6U,EACpB3T,EAAKN,UAAY,CAAE3mB,KAAMA,EAAMD,QAASA,EAASyK,SAAUA,EAAU1K,IAAKA,GACnEmnB,EAGT,SAASkR,GACPyC,EACA3C,GAEA,GAAIhb,EAAO2d,EAAQ78B,QAAUif,EAAM4d,EAAQC,WACzC,OAAOD,EAAQC,UAGjB,GAAI7d,EAAM4d,EAAQE,UAChB,OAAOF,EAAQE,SAGjB,IAAIC,EAAQZ,GAMZ,GALIY,GAAS/d,EAAM4d,EAAQI,UAA8C,IAAnCJ,EAAQI,OAAOhvB,QAAQ+uB,IAE3DH,EAAQI,OAAO12B,KAAKy2B,GAGlB9d,EAAO2d,EAAQve,UAAYW,EAAM4d,EAAQK,aAC3C,OAAOL,EAAQK,YAGjB,GAAIF,IAAU/d,EAAM4d,EAAQI,QAAS,CACnC,IAAIA,EAASJ,EAAQI,OAAS,CAACD,GAC3BG,GAAO,EACPC,EAAe,KACfC,EAAe,KAElB,EAAQC,IAAI,kBAAkB,WAAc,OAAO9c,EAAOyc,EAAQD,MAEnE,IAAIO,EAAc,SAAUC,GAC1B,IAAK,IAAI1+B,EAAI,EAAG4iB,EAAIub,EAAOjgC,OAAQ8B,EAAI4iB,EAAG5iB,IACvCm+B,EAAOn+B,GAAI2+B,eAGVD,IACFP,EAAOjgC,OAAS,EACK,OAAjBogC,IACF1qB,aAAa0qB,GACbA,EAAe,MAEI,OAAjBC,IACF3qB,aAAa2qB,GACbA,EAAe,QAKjBzN,EAAU5M,GAAK,SAAU3a,GAE3Bw0B,EAAQE,SAAWN,GAAWp0B,EAAK6xB,GAG9BiD,EAGHF,EAAOjgC,OAAS,EAFhBugC,GAAY,MAMZG,EAAS1a,GAAK,SAAU2a,GAKtB1e,EAAM4d,EAAQC,aAChBD,EAAQ78B,OAAQ,EAChBu9B,GAAY,OAIZl1B,EAAMw0B,EAAQjN,EAAS8N,GA+C3B,OA7CIp/B,EAAS+J,KACPsX,EAAUtX,GAER0W,EAAQ8d,EAAQE,WAClB10B,EAAIuX,KAAKgQ,EAAS8N,GAEX/d,EAAUtX,EAAIkE,aACvBlE,EAAIkE,UAAUqT,KAAKgQ,EAAS8N,GAExBze,EAAM5W,EAAIrI,SACZ68B,EAAQC,UAAYL,GAAWp0B,EAAIrI,MAAOk6B,IAGxCjb,EAAM5W,EAAIiW,WACZue,EAAQK,YAAcT,GAAWp0B,EAAIiW,QAAS4b,GAC5B,IAAd7xB,EAAIuK,MACNiqB,EAAQve,SAAU,EAElB8e,EAAetqB,YAAW,WACxBsqB,EAAe,KACXre,EAAQ8d,EAAQE,WAAahe,EAAQ8d,EAAQ78B,SAC/C68B,EAAQve,SAAU,EAClBif,GAAY,MAEbl1B,EAAIuK,OAAS,MAIhBqM,EAAM5W,EAAIu1B,WACZP,EAAevqB,YAAW,WACxBuqB,EAAe,KACXte,EAAQ8d,EAAQE,WAClBW,EAGM,QAGPr1B,EAAIu1B,YAKbT,GAAO,EAEAN,EAAQve,QACXue,EAAQK,YACRL,EAAQE,UAMhB,SAASlU,GAAoBK,GAC3B,OAAOA,EAAKT,WAAaS,EAAKlB,aAKhC,SAAS6V,GAAwBpxB,GAC/B,GAAIjM,MAAM6a,QAAQ5O,GAChB,IAAK,IAAI3N,EAAI,EAAGA,EAAI2N,EAASzP,OAAQ8B,IAAK,CACxC,IAAIzB,EAAIoP,EAAS3N,GACjB,GAAImgB,EAAM5hB,KAAO4hB,EAAM5hB,EAAE0qB,mBAAqBc,GAAmBxrB,IAC/D,OAAOA,GAUf,SAASygC,GAAY7R,GACnBA,EAAG8R,QAAUn+B,OAAOygB,OAAO,MAC3B4L,EAAG+R,eAAgB,EAEnB,IAAI9f,EAAY+N,EAAGpR,SAASshB,iBACxBje,GACF+f,GAAyBhS,EAAI/N,GAMjC,SAASxD,GAAK+W,EAAO30B,GACnBgB,GAAOw/B,IAAI7L,EAAO30B,GAGpB,SAASohC,GAAUzM,EAAO30B,GACxBgB,GAAOqgC,KAAK1M,EAAO30B,GAGrB,SAASy0B,GAAmBE,EAAO30B,GACjC,IAAIshC,EAAUtgC,GACd,OAAO,SAASugC,IACd,IAAIh2B,EAAMvL,EAAGQ,MAAM,KAAMC,WACb,OAAR8K,GACF+1B,EAAQD,KAAK1M,EAAO4M,IAK1B,SAASJ,GACPhS,EACA/N,EACAogB,GAEAxgC,GAASmuB,EACTmF,GAAgBlT,EAAWogB,GAAgB,GAAI5jB,GAAKwjB,GAAU3M,GAAmBtF,GACjFnuB,QAASb,EAGX,SAASshC,GAAajC,GACpB,IAAIkC,EAAS,SACblC,EAAIj9B,UAAUi+B,IAAM,SAAU7L,EAAO30B,GACnC,IAAImvB,EAAK9tB,KACT,GAAIqC,MAAM6a,QAAQoW,GAChB,IAAK,IAAI3yB,EAAI,EAAG4iB,EAAI+P,EAAMz0B,OAAQ8B,EAAI4iB,EAAG5iB,IACvCmtB,EAAGqR,IAAI7L,EAAM3yB,GAAIhC,QAGlBmvB,EAAG8R,QAAQtM,KAAWxF,EAAG8R,QAAQtM,GAAS,KAAKlrB,KAAKzJ,GAGjD0hC,EAAO/hC,KAAKg1B,KACdxF,EAAG+R,eAAgB,GAGvB,OAAO/R,GAGTqQ,EAAIj9B,UAAUo/B,MAAQ,SAAUhN,EAAO30B,GACrC,IAAImvB,EAAK9tB,KACT,SAAS+D,IACP+pB,EAAGkS,KAAK1M,EAAOvvB,GACfpF,EAAGQ,MAAM2uB,EAAI1uB,WAIf,OAFA2E,EAAGpF,GAAKA,EACRmvB,EAAGqR,IAAI7L,EAAOvvB,GACP+pB,GAGTqQ,EAAIj9B,UAAU8+B,KAAO,SAAU1M,EAAO30B,GACpC,IAAImvB,EAAK9tB,KAET,IAAKZ,UAAUP,OAEb,OADAivB,EAAG8R,QAAUn+B,OAAOygB,OAAO,MACpB4L,EAGT,GAAIzrB,MAAM6a,QAAQoW,GAAQ,CACxB,IAAK,IAAIiN,EAAM,EAAGhd,EAAI+P,EAAMz0B,OAAQ0hC,EAAMhd,EAAGgd,IAC3CzS,EAAGkS,KAAK1M,EAAMiN,GAAM5hC,GAEtB,OAAOmvB,EAGT,IASIlZ,EATA4rB,EAAM1S,EAAG8R,QAAQtM,GACrB,IAAKkN,EACH,OAAO1S,EAET,IAAKnvB,EAEH,OADAmvB,EAAG8R,QAAQtM,GAAS,KACbxF,EAIT,IAAIntB,EAAI6/B,EAAI3hC,OACZ,MAAO8B,IAEL,GADAiU,EAAK4rB,EAAI7/B,GACLiU,IAAOjW,GAAMiW,EAAGjW,KAAOA,EAAI,CAC7B6hC,EAAIje,OAAO5hB,EAAG,GACd,MAGJ,OAAOmtB,GAGTqQ,EAAIj9B,UAAUu/B,MAAQ,SAAUnN,GAC9B,IAAIxF,EAAK9tB,KAaLwgC,EAAM1S,EAAG8R,QAAQtM,GACrB,GAAIkN,EAAK,CACPA,EAAMA,EAAI3hC,OAAS,EAAI6kB,EAAQ8c,GAAOA,EAGtC,IAFA,IAAI//B,EAAOijB,EAAQtkB,UAAW,GAC1BoxB,EAAO,sBAAyB8C,EAAQ,IACnC3yB,EAAI,EAAG4iB,EAAIid,EAAI3hC,OAAQ8B,EAAI4iB,EAAG5iB,IACrCmwB,GAAwB0P,EAAI7/B,GAAImtB,EAAIrtB,EAAMqtB,EAAI0C,GAGlD,OAAO1C,GAMX,IAAImN,GAAiB,KAGrB,SAASyF,GAAkB5S,GACzB,IAAI6S,EAAqB1F,GAEzB,OADAA,GAAiBnN,EACV,WACLmN,GAAiB0F,GAIrB,SAASC,GAAe9S,GACtB,IAAItU,EAAUsU,EAAGpR,SAGbN,EAAS5C,EAAQ4C,OACrB,GAAIA,IAAW5C,EAAQ+iB,SAAU,CAC/B,MAAOngB,EAAOM,SAAS6f,UAAYngB,EAAOsU,QACxCtU,EAASA,EAAOsU,QAElBtU,EAAOykB,UAAUz4B,KAAK0lB,GAGxBA,EAAG4C,QAAUtU,EACb0R,EAAGrR,MAAQL,EAASA,EAAOK,MAAQqR,EAEnCA,EAAG+S,UAAY,GACf/S,EAAG5b,MAAQ,GAEX4b,EAAGgT,SAAW,KACdhT,EAAGiT,UAAY,KACfjT,EAAGkT,iBAAkB,EACrBlT,EAAGwN,YAAa,EAChBxN,EAAG7b,cAAe,EAClB6b,EAAGmT,mBAAoB,EAGzB,SAASC,GAAgB/C,GACvBA,EAAIj9B,UAAUigC,QAAU,SAAUjW,EAAO0P,GACvC,IAAI9M,EAAK9tB,KACLohC,EAAStT,EAAGxb,IACZ+uB,EAAYvT,EAAG8P,OACf0D,EAAwBZ,GAAkB5S,GAC9CA,EAAG8P,OAAS1S,EAQV4C,EAAGxb,IALA+uB,EAKMvT,EAAGyT,UAAUF,EAAWnW,GAHxB4C,EAAGyT,UAAUzT,EAAGxb,IAAK4Y,EAAO0P,GAAW,GAKlD0G,IAEIF,IACFA,EAAOI,QAAU,MAEf1T,EAAGxb,MACLwb,EAAGxb,IAAIkvB,QAAU1T,GAGfA,EAAG5R,QAAU4R,EAAG4C,SAAW5C,EAAG5R,SAAW4R,EAAG4C,QAAQkN,SACtD9P,EAAG4C,QAAQpe,IAAMwb,EAAGxb,MAMxB6rB,EAAIj9B,UAAUo+B,aAAe,WAC3B,IAAIxR,EAAK9tB,KACL8tB,EAAGgT,UACLhT,EAAGgT,SAASxX,UAIhB6U,EAAIj9B,UAAU06B,SAAW,WACvB,IAAI9N,EAAK9tB,KACT,IAAI8tB,EAAGmT,kBAAP,CAGA1F,GAASzN,EAAI,iBACbA,EAAGmT,mBAAoB,EAEvB,IAAI7kB,EAAS0R,EAAG4C,SACZtU,GAAWA,EAAO6kB,mBAAsBnT,EAAGpR,SAAS6f,UACtDla,EAAOjG,EAAOykB,UAAW/S,GAGvBA,EAAGgT,UACLhT,EAAGgT,SAASW,WAEd,IAAI9gC,EAAImtB,EAAG4T,UAAU7iC,OACrB,MAAO8B,IACLmtB,EAAG4T,UAAU/gC,GAAG8gC,WAId3T,EAAG6T,MAAM/V,QACXkC,EAAG6T,MAAM/V,OAAOO,UAGlB2B,EAAG7b,cAAe,EAElB6b,EAAGyT,UAAUzT,EAAG8P,OAAQ,MAExBrC,GAASzN,EAAI,aAEbA,EAAGkS,OAEClS,EAAGxb,MACLwb,EAAGxb,IAAIkvB,QAAU,MAGf1T,EAAG5R,SACL4R,EAAG5R,OAAOE,OAAS,QAKzB,SAASwlB,GACP9T,EACA7pB,EACA22B,GAyBA,IAAIiH,EA2CJ,OAlEA/T,EAAGxb,IAAMrO,EACJ6pB,EAAGpR,SAAS/Y,SACfmqB,EAAGpR,SAAS/Y,OAASmnB,IAmBvByQ,GAASzN,EAAI,eAsBX+T,EAAkB,WAChB/T,EAAGqT,QAAQrT,EAAGuQ,UAAWzD,IAO7B,IAAIkH,GAAQhU,EAAI+T,EAAiB9d,EAAM,CACrCge,OAAQ,WACFjU,EAAGwN,aAAexN,EAAG7b,cACvBspB,GAASzN,EAAI,mBAGhB,GACH8M,GAAY,EAIK,MAAb9M,EAAG5R,SACL4R,EAAGwN,YAAa,EAChBC,GAASzN,EAAI,YAERA,EAGT,SAASsN,GACPtN,EACA4B,EACA3P,EACA8d,EACAmE,GAYA,IAAIC,EAAiBpE,EAAY/5B,KAAKo2B,YAClCgI,EAAiBpU,EAAGvc,aACpB4wB,KACDF,IAAmBA,EAAezM,SAClC0M,IAAmBxhB,IAAgBwhB,EAAe1M,SAClDyM,GAAkBnU,EAAGvc,aAAakkB,OAASwM,EAAexM,MAMzD2M,KACFJ,GACAlU,EAAGpR,SAASohB,iBACZqE,GAkBF,GAfArU,EAAGpR,SAASggB,aAAemB,EAC3B/P,EAAG5R,OAAS2hB,EAER/P,EAAG8P,SACL9P,EAAG8P,OAAOxhB,OAASyhB,GAErB/P,EAAGpR,SAASohB,gBAAkBkE,EAK9BlU,EAAGpc,OAASmsB,EAAY/5B,KAAKkJ,OAAS0T,EACtCoN,EAAG7W,WAAa8I,GAAaW,EAGzBgP,GAAa5B,EAAGpR,SAAStZ,MAAO,CAClC6oB,IAAgB,GAGhB,IAFA,IAAI7oB,EAAQ0qB,EAAGoC,OACXmS,EAAWvU,EAAGpR,SAAS4lB,WAAa,GAC/B3hC,EAAI,EAAGA,EAAI0hC,EAASxjC,OAAQ8B,IAAK,CACxC,IAAImG,EAAMu7B,EAAS1hC,GACf8uB,EAAc3B,EAAGpR,SAAStZ,MAC9BA,EAAM0D,GAAO0oB,GAAa1oB,EAAK2oB,EAAaC,EAAW5B,GAEzD7B,IAAgB,GAEhB6B,EAAGpR,SAASgT,UAAYA,EAI1B3P,EAAYA,GAAaW,EACzB,IAAIyf,EAAerS,EAAGpR,SAASshB,iBAC/BlQ,EAAGpR,SAASshB,iBAAmBje,EAC/B+f,GAAyBhS,EAAI/N,EAAWogB,GAGpCiC,IACFtU,EAAG1hB,OAAS2oB,GAAaiN,EAAgBnE,EAAYh6B,SACrDiqB,EAAGwR,gBAQP,SAASiD,GAAkBzU,GACzB,MAAOA,IAAOA,EAAKA,EAAG4C,SACpB,GAAI5C,EAAGiT,UAAa,OAAO,EAE7B,OAAO,EAGT,SAAStF,GAAwB3N,EAAI0U,GACnC,GAAIA,GAEF,GADA1U,EAAGkT,iBAAkB,EACjBuB,GAAiBzU,GACnB,YAEG,GAAIA,EAAGkT,gBACZ,OAEF,GAAIlT,EAAGiT,WAA8B,OAAjBjT,EAAGiT,UAAoB,CACzCjT,EAAGiT,WAAY,EACf,IAAK,IAAIpgC,EAAI,EAAGA,EAAImtB,EAAG+S,UAAUhiC,OAAQ8B,IACvC86B,GAAuB3N,EAAG+S,UAAUlgC,IAEtC46B,GAASzN,EAAI,cAIjB,SAAS6N,GAA0B7N,EAAI0U,GACrC,KAAIA,IACF1U,EAAGkT,iBAAkB,GACjBuB,GAAiBzU,OAIlBA,EAAGiT,UAAW,CACjBjT,EAAGiT,WAAY,EACf,IAAK,IAAIpgC,EAAI,EAAGA,EAAImtB,EAAG+S,UAAUhiC,OAAQ8B,IACvCg7B,GAAyB7N,EAAG+S,UAAUlgC,IAExC46B,GAASzN,EAAI,gBAIjB,SAASyN,GAAUzN,EAAI/R,GAErByN,KACA,IAAIiZ,EAAW3U,EAAGpR,SAASX,GACvByU,EAAOzU,EAAO,QAClB,GAAI0mB,EACF,IAAK,IAAI9hC,EAAI,EAAG+hC,EAAID,EAAS5jC,OAAQ8B,EAAI+hC,EAAG/hC,IAC1CmwB,GAAwB2R,EAAS9hC,GAAImtB,EAAI,KAAMA,EAAI0C,GAGnD1C,EAAG+R,eACL/R,EAAG2S,MAAM,QAAU1kB,GAErB0N,KAKF,IAEIkZ,GAAQ,GACRC,GAAoB,GACpBjgC,GAAM,GAENkgC,IAAU,EACVC,IAAW,EACX/4B,GAAQ,EAKZ,SAASg5B,KACPh5B,GAAQ44B,GAAM9jC,OAAS+jC,GAAkB/jC,OAAS,EAClD8D,GAAM,GAINkgC,GAAUC,IAAW,EAQvB,IAAIE,GAAwB,EAGxBC,GAASze,KAAK0e,IAQlB,GAAIpc,IAAcO,GAAM,CACtB,IAAI/B,GAAc9jB,OAAO8jB,YAEvBA,IAC2B,oBAApBA,GAAY4d,KACnBD,KAAWxwB,SAAS0wB,YAAY,SAASC,YAMzCH,GAAS,WAAc,OAAO3d,GAAY4d,QAO9C,SAASG,KAGP,IAAIC,EAASxa,EAcb,IAhBAka,GAAwBC,KACxBH,IAAW,EAWXH,GAAM37B,MAAK,SAAUhI,EAAGC,GAAK,OAAOD,EAAE8pB,GAAK7pB,EAAE6pB,MAIxC/e,GAAQ,EAAGA,GAAQ44B,GAAM9jC,OAAQkL,KACpCu5B,EAAUX,GAAM54B,IACZu5B,EAAQvB,QACVuB,EAAQvB,SAEVjZ,EAAKwa,EAAQxa,GACbnmB,GAAImmB,GAAM,KACVwa,EAAQC,MAmBV,IAAIC,EAAiBZ,GAAkBxiC,QACnCqjC,EAAed,GAAMviC,QAEzB2iC,KAGAW,GAAmBF,GACnBG,GAAiBF,GAIbpe,IAAYJ,EAAOI,UACrBA,GAASue,KAAK,SAIlB,SAASD,GAAkBhB,GACzB,IAAIhiC,EAAIgiC,EAAM9jC,OACd,MAAO8B,IAAK,CACV,IAAI2iC,EAAUX,EAAMhiC,GAChBmtB,EAAKwV,EAAQxV,GACbA,EAAGgT,WAAawC,GAAWxV,EAAGwN,aAAexN,EAAG7b,cAClDspB,GAASzN,EAAI,YASnB,SAAS0N,GAAyB1N,GAGhCA,EAAGiT,WAAY,EACf6B,GAAkBx6B,KAAK0lB,GAGzB,SAAS4V,GAAoBf,GAC3B,IAAK,IAAIhiC,EAAI,EAAGA,EAAIgiC,EAAM9jC,OAAQ8B,IAChCgiC,EAAMhiC,GAAGogC,WAAY,EACrBtF,GAAuBkH,EAAMhiC,IAAI,GASrC,SAASkjC,GAAcP,GACrB,IAAIxa,EAAKwa,EAAQxa,GACjB,GAAe,MAAXnmB,GAAImmB,GAAa,CAEnB,GADAnmB,GAAImmB,IAAM,EACLga,GAEE,CAGL,IAAIniC,EAAIgiC,GAAM9jC,OAAS,EACvB,MAAO8B,EAAIoJ,IAAS44B,GAAMhiC,GAAGmoB,GAAKwa,EAAQxa,GACxCnoB,IAEFgiC,GAAMpgB,OAAO5hB,EAAI,EAAG,EAAG2iC,QARvBX,GAAMv6B,KAAKk7B,GAWRT,KACHA,IAAU,EAMV5Q,GAASoR,MASf,IAAIS,GAAQ,EAORhC,GAAU,SACZhU,EACAiW,EACAnvB,EACA4E,EACAwqB,GAEAhkC,KAAK8tB,GAAKA,EACNkW,IACFlW,EAAGgT,SAAW9gC,MAEhB8tB,EAAG4T,UAAUt5B,KAAKpI,MAEdwZ,GACFxZ,KAAKikC,OAASzqB,EAAQyqB,KACtBjkC,KAAKkkC,OAAS1qB,EAAQ0qB,KACtBlkC,KAAKmkC,OAAS3qB,EAAQ2qB,KACtBnkC,KAAKg/B,OAASxlB,EAAQwlB,KACtBh/B,KAAK+hC,OAASvoB,EAAQuoB,QAEtB/hC,KAAKikC,KAAOjkC,KAAKkkC,KAAOlkC,KAAKmkC,KAAOnkC,KAAKg/B,MAAO,EAElDh/B,KAAK4U,GAAKA,EACV5U,KAAK8oB,KAAOgb,GACZ9jC,KAAK6d,QAAS,EACd7d,KAAKokC,MAAQpkC,KAAKmkC,KAClBnkC,KAAKqkC,KAAO,GACZrkC,KAAKskC,QAAU,GACftkC,KAAKukC,OAAS,IAAInc,GAClBpoB,KAAKwkC,UAAY,IAAIpc,GACrBpoB,KAAKykC,WAED,GAEmB,oBAAZV,EACT/jC,KAAKitB,OAAS8W,GAEd/jC,KAAKitB,OAASvG,EAAUqd,GACnB/jC,KAAKitB,SACRjtB,KAAKitB,OAASlJ,IASlB/jB,KAAK6G,MAAQ7G,KAAKmkC,UACdrlC,EACAkB,KAAKoG,OAMX07B,GAAQ5gC,UAAUkF,IAAM,WAEtB,IAAIS,EADJ2iB,GAAWxpB,MAEX,IAAI8tB,EAAK9tB,KAAK8tB,GACd,IACEjnB,EAAQ7G,KAAKitB,OAAOluB,KAAK+uB,EAAIA,GAC7B,MAAOrjB,IACP,IAAIzK,KAAKkkC,KAGP,MAAMz5B,GAFN6lB,GAAY7lB,GAAGqjB,EAAK,uBAA2B9tB,KAAe,WAAI,KAIpE,QAGIA,KAAKikC,MACP7R,GAASvrB,GAEX4iB,KACAzpB,KAAK0kC,cAEP,OAAO79B,GAMTi7B,GAAQ5gC,UAAUkoB,OAAS,SAAiB0C,GAC1C,IAAIhD,EAAKgD,EAAIhD,GACR9oB,KAAKwkC,UAAU7hC,IAAImmB,KACtB9oB,KAAKwkC,UAAUjoB,IAAIuM,GACnB9oB,KAAKskC,QAAQl8B,KAAK0jB,GACb9rB,KAAKukC,OAAO5hC,IAAImmB,IACnBgD,EAAI9C,OAAOhpB,QAQjB8hC,GAAQ5gC,UAAUwjC,YAAc,WAC9B,IAAI/jC,EAAIX,KAAKqkC,KAAKxlC,OAClB,MAAO8B,IAAK,CACV,IAAImrB,EAAM9rB,KAAKqkC,KAAK1jC,GACfX,KAAKwkC,UAAU7hC,IAAImpB,EAAIhD,KAC1BgD,EAAI5C,UAAUlpB,MAGlB,IAAI2kC,EAAM3kC,KAAKukC,OACfvkC,KAAKukC,OAASvkC,KAAKwkC,UACnBxkC,KAAKwkC,UAAYG,EACjB3kC,KAAKwkC,UAAU9b,QACfic,EAAM3kC,KAAKqkC,KACXrkC,KAAKqkC,KAAOrkC,KAAKskC,QACjBtkC,KAAKskC,QAAUK,EACf3kC,KAAKskC,QAAQzlC,OAAS,GAOxBijC,GAAQ5gC,UAAUooB,OAAS,WAErBtpB,KAAKmkC,KACPnkC,KAAKokC,OAAQ,EACJpkC,KAAKg/B,KACdh/B,KAAKujC,MAELM,GAAa7jC,OAQjB8hC,GAAQ5gC,UAAUqiC,IAAM,WACtB,GAAIvjC,KAAK6d,OAAQ,CACf,IAAIhX,EAAQ7G,KAAKoG,MACjB,GACES,IAAU7G,KAAK6G,OAIf1G,EAAS0G,IACT7G,KAAKikC,KACL,CAEA,IAAIW,EAAW5kC,KAAK6G,MAEpB,GADA7G,KAAK6G,MAAQA,EACT7G,KAAKkkC,KACP,IACElkC,KAAK4U,GAAG7V,KAAKiB,KAAK8tB,GAAIjnB,EAAO+9B,GAC7B,MAAOn6B,IACP6lB,GAAY7lB,GAAGzK,KAAK8tB,GAAK,yBAA6B9tB,KAAe,WAAI,UAG3EA,KAAK4U,GAAG7V,KAAKiB,KAAK8tB,GAAIjnB,EAAO+9B,MAUrC9C,GAAQ5gC,UAAU2jC,SAAW,WAC3B7kC,KAAK6G,MAAQ7G,KAAKoG,MAClBpG,KAAKokC,OAAQ,GAMftC,GAAQ5gC,UAAUioB,OAAS,WACzB,IAAIxoB,EAAIX,KAAKqkC,KAAKxlC,OAClB,MAAO8B,IACLX,KAAKqkC,KAAK1jC,GAAGwoB,UAOjB2Y,GAAQ5gC,UAAUugC,SAAW,WAC3B,GAAIzhC,KAAK6d,OAAQ,CAIV7d,KAAK8tB,GAAGmT,mBACX5e,EAAOriB,KAAK8tB,GAAG4T,UAAW1hC,MAE5B,IAAIW,EAAIX,KAAKqkC,KAAKxlC,OAClB,MAAO8B,IACLX,KAAKqkC,KAAK1jC,GAAGuoB,UAAUlpB,MAEzBA,KAAK6d,QAAS,IAMlB,IAAIinB,GAA2B,CAC7Bve,YAAY,EACZjL,cAAc,EACdlV,IAAK2d,EACL0E,IAAK1E,GAGP,SAASgS,GAAOp2B,EAAQolC,EAAWj+B,GACjCg+B,GAAyB1+B,IAAM,WAC7B,OAAOpG,KAAK+kC,GAAWj+B,IAEzBg+B,GAAyBrc,IAAM,SAAsB1d,GACnD/K,KAAK+kC,GAAWj+B,GAAOiE,GAEzBtJ,OAAO0E,eAAexG,EAAQmH,EAAKg+B,IAGrC,SAASE,GAAWlX,GAClBA,EAAG4T,UAAY,GACf,IAAI9Z,EAAOkG,EAAGpR,SACVkL,EAAKxkB,OAAS6hC,GAAUnX,EAAIlG,EAAKxkB,OACjCwkB,EAAK3b,SAAWi5B,GAAYpX,EAAIlG,EAAK3b,SACrC2b,EAAK9jB,KACPqhC,GAASrX,GAETrB,GAAQqB,EAAG6T,MAAQ,IAAI,GAErB/Z,EAAKjc,UAAYy5B,GAAatX,EAAIlG,EAAKjc,UACvCic,EAAKpW,OAASoW,EAAKpW,QAAUkW,IAC/B2d,GAAUvX,EAAIlG,EAAKpW,OAIvB,SAASyzB,GAAWnX,EAAIwX,GACtB,IAAI5V,EAAY5B,EAAGpR,SAASgT,WAAa,GACrCtsB,EAAQ0qB,EAAGoC,OAAS,GAGpBrgB,EAAOie,EAAGpR,SAAS4lB,UAAY,GAC/BiD,GAAUzX,EAAG4C,QAEZ6U,GACHtZ,IAAgB,GAElB,IAAIkL,EAAO,SAAWrwB,GACpB+I,EAAKzH,KAAKtB,GACV,IAAID,EAAQ2oB,GAAa1oB,EAAKw+B,EAAc5V,EAAW5B,GAuBrDjB,GAAkBzpB,EAAO0D,EAAKD,GAK1BC,KAAOgnB,GACXiI,GAAMjI,EAAI,SAAUhnB,IAIxB,IAAK,IAAIA,KAAOw+B,EAAcnO,EAAMrwB,GACpCmlB,IAAgB,GAGlB,SAASkZ,GAAUrX,GACjB,IAAIhqB,EAAOgqB,EAAGpR,SAAS5Y,KACvBA,EAAOgqB,EAAG6T,MAAwB,oBAAT79B,EACrB0hC,GAAQ1hC,EAAMgqB,GACdhqB,GAAQ,GACPsd,EAActd,KACjBA,EAAO,IAQT,IAAI+L,EAAOpO,OAAOoO,KAAK/L,GACnBV,EAAQ0qB,EAAGpR,SAAStZ,MAEpBzC,GADUmtB,EAAGpR,SAASzQ,QAClB4D,EAAKhR,QACb,MAAO8B,IAAK,CACV,IAAImG,EAAM+I,EAAKlP,GACX,EAQAyC,GAASof,EAAOpf,EAAO0D,IAMfsf,EAAWtf,IACrBivB,GAAMjI,EAAI,QAAShnB,GAIvB2lB,GAAQ3oB,GAAM,GAGhB,SAAS0hC,GAAS1hC,EAAMgqB,GAEtBtE,KACA,IACE,OAAO1lB,EAAK/E,KAAK+uB,EAAIA,GACrB,MAAOrjB,IAEP,OADA6lB,GAAY7lB,GAAGqjB,EAAI,UACZ,GACP,QACArE,MAIJ,IAAIgc,GAAyB,CAAEtB,MAAM,GAErC,SAASiB,GAActX,EAAIniB,GAEzB,IAAI+5B,EAAW5X,EAAG6X,kBAAoBlkC,OAAOygB,OAAO,MAEhD0jB,EAAQ9d,KAEZ,IAAK,IAAIhhB,KAAO6E,EAAU,CACxB,IAAIk6B,EAAUl6B,EAAS7E,GACnBmmB,EAA4B,oBAAZ4Y,EAAyBA,EAAUA,EAAQz/B,IAC3D,EAOCw/B,IAEHF,EAAS5+B,GAAO,IAAIg7B,GAClBhU,EACAb,GAAUlJ,EACVA,EACA0hB,KAOE3+B,KAAOgnB,GACXgY,GAAehY,EAAIhnB,EAAK++B,IAW9B,SAASC,GACPnmC,EACAmH,EACA++B,GAEA,IAAIE,GAAeje,KACI,oBAAZ+d,GACTf,GAAyB1+B,IAAM2/B,EAC3BC,GAAqBl/B,GACrBm/B,GAAoBJ,GACxBf,GAAyBrc,IAAM1E,IAE/B+gB,GAAyB1+B,IAAMy/B,EAAQz/B,IACnC2/B,IAAiC,IAAlBF,EAAQnjB,MACrBsjB,GAAqBl/B,GACrBm/B,GAAoBJ,EAAQz/B,KAC9B2d,EACJ+gB,GAAyBrc,IAAMod,EAAQpd,KAAO1E,GAWhDtiB,OAAO0E,eAAexG,EAAQmH,EAAKg+B,IAGrC,SAASkB,GAAsBl/B,GAC7B,OAAO,WACL,IAAIw8B,EAAUtjC,KAAK2lC,mBAAqB3lC,KAAK2lC,kBAAkB7+B,GAC/D,GAAIw8B,EAOF,OANIA,EAAQc,OACVd,EAAQuB,WAENhc,GAAIlpB,QACN2jC,EAAQna,SAEHma,EAAQz8B,OAKrB,SAASo/B,GAAoBtnC,GAC3B,OAAO,WACL,OAAOA,EAAGI,KAAKiB,KAAMA,OAIzB,SAASklC,GAAapX,EAAI7hB,GACZ6hB,EAAGpR,SAAStZ,MACxB,IAAK,IAAI0D,KAAOmF,EAsBd6hB,EAAGhnB,GAA+B,oBAAjBmF,EAAQnF,GAAsBid,EAAOjjB,EAAKmL,EAAQnF,GAAMgnB,GAI7E,SAASuX,GAAWvX,EAAItc,GACtB,IAAK,IAAI1K,KAAO0K,EAAO,CACrB,IAAIsC,EAAUtC,EAAM1K,GACpB,GAAIzE,MAAM6a,QAAQpJ,GAChB,IAAK,IAAInT,EAAI,EAAGA,EAAImT,EAAQjV,OAAQ8B,IAClCulC,GAAcpY,EAAIhnB,EAAKgN,EAAQnT,SAGjCulC,GAAcpY,EAAIhnB,EAAKgN,IAK7B,SAASoyB,GACPpY,EACAiW,EACAjwB,EACA0F,GASA,OAPI4H,EAActN,KAChB0F,EAAU1F,EACVA,EAAUA,EAAQA,SAEG,kBAAZA,IACTA,EAAUga,EAAGha,IAERga,EAAGqY,OAAOpC,EAASjwB,EAAS0F,GAGrC,SAAS4sB,GAAYjI,GAInB,IAAIkI,EAAU,CACd,IAAc,WAAc,OAAOrmC,KAAK2hC,QACpC2E,EAAW,CACf,IAAe,WAAc,OAAOtmC,KAAKkwB,SAazCzuB,OAAO0E,eAAeg4B,EAAIj9B,UAAW,QAASmlC,GAC9C5kC,OAAO0E,eAAeg4B,EAAIj9B,UAAW,SAAUolC,GAE/CnI,EAAIj9B,UAAUqlC,KAAO9d,GACrB0V,EAAIj9B,UAAUslC,QAAUlZ,GAExB6Q,EAAIj9B,UAAUilC,OAAS,SACrBpC,EACAnvB,EACA4E,GAEA,IAAIsU,EAAK9tB,KACT,GAAIohB,EAAcxM,GAChB,OAAOsxB,GAAcpY,EAAIiW,EAASnvB,EAAI4E,GAExCA,EAAUA,GAAW,GACrBA,EAAQ0qB,MAAO,EACf,IAAIZ,EAAU,IAAIxB,GAAQhU,EAAIiW,EAASnvB,EAAI4E,GAC3C,GAAIA,EAAQitB,UACV,IACE7xB,EAAG7V,KAAK+uB,EAAIwV,EAAQz8B,OACpB,MAAOhF,GACPyuB,GAAYzuB,EAAOisB,EAAK,mCAAuCwV,EAAkB,WAAI,KAGzF,OAAO,WACLA,EAAQ7B,aAOd,IAAIiF,GAAQ,EAEZ,SAASC,GAAWxI,GAClBA,EAAIj9B,UAAU0lC,MAAQ,SAAUptB,GAC9B,IAAIsU,EAAK9tB,KAET8tB,EAAG+Y,KAAOH,KAWV5Y,EAAGlB,QAAS,EAERpT,GAAWA,EAAQijB,aAIrBqK,GAAsBhZ,EAAItU,GAE1BsU,EAAGpR,SAAWoS,GACZqN,GAA0BrO,EAAG3rB,aAC7BqX,GAAW,GACXsU,GAOFA,EAAG8J,aAAe9J,EAGpBA,EAAGiZ,MAAQjZ,EACX8S,GAAc9S,GACd6R,GAAW7R,GACX6P,GAAW7P,GACXyN,GAASzN,EAAI,gBACb6G,GAAe7G,GACfkX,GAAUlX,GACV2G,GAAY3G,GACZyN,GAASzN,EAAI,WASTA,EAAGpR,SAASzY,IACd6pB,EAAGoN,OAAOpN,EAAGpR,SAASzY,KAK5B,SAAS6iC,GAAuBhZ,EAAItU,GAClC,IAAIoO,EAAOkG,EAAGpR,SAAWjb,OAAOygB,OAAO4L,EAAG3rB,YAAYqX,SAElDqkB,EAAcrkB,EAAQkjB,aAC1B9U,EAAKxL,OAAS5C,EAAQ4C,OACtBwL,EAAK8U,aAAemB,EAEpB,IAAImJ,EAAwBnJ,EAAYjU,iBACxChC,EAAK8H,UAAYsX,EAAsBtX,UACvC9H,EAAKoW,iBAAmBgJ,EAAsBjnB,UAC9C6H,EAAKkW,gBAAkBkJ,EAAsB14B,SAC7CsZ,EAAKqf,cAAgBD,EAAsBpjC,IAEvC4V,EAAQ7V,SACVikB,EAAKjkB,OAAS6V,EAAQ7V,OACtBikB,EAAKnM,gBAAkBjC,EAAQiC,iBAInC,SAAS0gB,GAA2BhU,GAClC,IAAI3O,EAAU2O,EAAK3O,QACnB,GAAI2O,EAAK+e,MAAO,CACd,IAAIC,EAAehL,GAA0BhU,EAAK+e,OAC9CE,EAAqBjf,EAAKgf,aAC9B,GAAIA,IAAiBC,EAAoB,CAGvCjf,EAAKgf,aAAeA,EAEpB,IAAIE,EAAkBC,GAAuBnf,GAEzCkf,GACFxjB,EAAOsE,EAAKof,cAAeF,GAE7B7tB,EAAU2O,EAAK3O,QAAUsV,GAAaqY,EAAchf,EAAKof,eACrD/tB,EAAQpX,OACVoX,EAAQguB,WAAWhuB,EAAQpX,MAAQ+lB,IAIzC,OAAO3O,EAGT,SAAS8tB,GAAwBnf,GAC/B,IAAIsf,EACAC,EAASvf,EAAK3O,QACdmuB,EAASxf,EAAKyf,cAClB,IAAK,IAAI9gC,KAAO4gC,EACVA,EAAO5gC,KAAS6gC,EAAO7gC,KACpB2gC,IAAYA,EAAW,IAC5BA,EAAS3gC,GAAO4gC,EAAO5gC,IAG3B,OAAO2gC,EAGT,SAAStJ,GAAK3kB,GAMZxZ,KAAK4mC,MAAMptB,GAWb,SAASquB,GAAS1J,GAChBA,EAAI2J,IAAM,SAAUC,GAClB,IAAIC,EAAoBhoC,KAAKioC,oBAAsBjoC,KAAKioC,kBAAoB,IAC5E,GAAID,EAAiBl4B,QAAQi4B,IAAW,EACtC,OAAO/nC,KAIT,IAAIS,EAAOijB,EAAQtkB,UAAW,GAQ9B,OAPAqB,EAAKynC,QAAQloC,MACiB,oBAAnB+nC,EAAOI,QAChBJ,EAAOI,QAAQhpC,MAAM4oC,EAAQtnC,GACF,oBAAXsnC,GAChBA,EAAO5oC,MAAM,KAAMsB,GAErBunC,EAAiB5/B,KAAK2/B,GACf/nC,MAMX,SAASooC,GAAajK,GACpBA,EAAIkK,MAAQ,SAAUA,GAEpB,OADAroC,KAAKwZ,QAAUsV,GAAa9uB,KAAKwZ,QAAS6uB,GACnCroC,MAMX,SAASsoC,GAAYnK,GAMnBA,EAAInC,IAAM,EACV,IAAIA,EAAM,EAKVmC,EAAIta,OAAS,SAAU0jB,GACrBA,EAAgBA,GAAiB,GACjC,IAAIgB,EAAQvoC,KACRwoC,EAAUD,EAAMvM,IAChByM,EAAclB,EAAcmB,QAAUnB,EAAcmB,MAAQ,IAChE,GAAID,EAAYD,GACd,OAAOC,EAAYD,GAGrB,IAAIpmC,EAAOmlC,EAAcnlC,MAAQmmC,EAAM/uB,QAAQpX,KAK/C,IAAIumC,EAAM,SAAuBnvB,GAC/BxZ,KAAK4mC,MAAMptB,IA6Cb,OA3CAmvB,EAAIznC,UAAYO,OAAOygB,OAAOqmB,EAAMrnC,WACpCynC,EAAIznC,UAAUiB,YAAcwmC,EAC5BA,EAAI3M,IAAMA,IACV2M,EAAInvB,QAAUsV,GACZyZ,EAAM/uB,QACN+tB,GAEFoB,EAAI,SAAWJ,EAKXI,EAAInvB,QAAQpW,OACdwlC,GAAYD,GAEVA,EAAInvB,QAAQ7N,UACdk9B,GAAeF,GAIjBA,EAAI9kB,OAAS0kB,EAAM1kB,OACnB8kB,EAAIN,MAAQE,EAAMF,MAClBM,EAAIb,IAAMS,EAAMT,IAIhB/iB,EAAYne,SAAQ,SAAUtD,GAC5BqlC,EAAIrlC,GAAQilC,EAAMjlC,MAGhBlB,IACFumC,EAAInvB,QAAQguB,WAAWplC,GAAQumC,GAMjCA,EAAIxB,aAAeoB,EAAM/uB,QACzBmvB,EAAIpB,cAAgBA,EACpBoB,EAAIf,cAAgB/jB,EAAO,GAAI8kB,EAAInvB,SAGnCivB,EAAYD,GAAWG,EAChBA,GAIX,SAASC,GAAaE,GACpB,IAAI1lC,EAAQ0lC,EAAKtvB,QAAQpW,MACzB,IAAK,IAAI0D,KAAO1D,EACd2yB,GAAM+S,EAAK5nC,UAAW,SAAU4F,GAIpC,SAAS+hC,GAAgBC,GACvB,IAAIn9B,EAAWm9B,EAAKtvB,QAAQ7N,SAC5B,IAAK,IAAI7E,KAAO6E,EACdm6B,GAAegD,EAAK5nC,UAAW4F,EAAK6E,EAAS7E,IAMjD,SAASiiC,GAAoB5K,GAI3BpZ,EAAYne,SAAQ,SAAUtD,GAC5B66B,EAAI76B,GAAQ,SACVwlB,EACAkgB,GAEA,OAAKA,GAOU,cAAT1lC,GAAwB8d,EAAc4nB,KACxCA,EAAW5mC,KAAO4mC,EAAW5mC,MAAQ0mB,EACrCkgB,EAAahpC,KAAKwZ,QAAQuV,MAAMlL,OAAOmlB,IAE5B,cAAT1lC,GAA8C,oBAAf0lC,IACjCA,EAAa,CAAEloC,KAAMkoC,EAAY1f,OAAQ0f,IAE3ChpC,KAAKwZ,QAAQlW,EAAO,KAAKwlB,GAAMkgB,EACxBA,GAdAhpC,KAAKwZ,QAAQlW,EAAO,KAAKwlB,OAwBxC,SAASmgB,GAAkBrhB,GACzB,OAAOA,IAASA,EAAKO,KAAK3O,QAAQpX,MAAQwlB,EAAKhkB,KAGjD,SAASslC,GAASC,EAAS/mC,GACzB,OAAIC,MAAM6a,QAAQisB,GACTA,EAAQr5B,QAAQ1N,IAAS,EACJ,kBAAZ+mC,EACTA,EAAQrgC,MAAM,KAAKgH,QAAQ1N,IAAS,IAClCyF,EAASshC,IACXA,EAAQ7qC,KAAK8D,GAMxB,SAASgnC,GAAYC,EAAmBC,GACtC,IAAI5mB,EAAQ2mB,EAAkB3mB,MAC1B7S,EAAOw5B,EAAkBx5B,KACzB+tB,EAASyL,EAAkBzL,OAC/B,IAAK,IAAI92B,KAAO4b,EAAO,CACrB,IAAI6mB,EAAa7mB,EAAM5b,GACvB,GAAIyiC,EAAY,CACd,IAAInnC,EAAO6mC,GAAiBM,EAAW3f,kBACnCxnB,IAASknC,EAAOlnC,IAClBonC,GAAgB9mB,EAAO5b,EAAK+I,EAAM+tB,KAM1C,SAAS4L,GACP9mB,EACA5b,EACA+I,EACA45B,GAEA,IAAIC,EAAYhnB,EAAM5b,IAClB4iC,GAAeD,GAAWC,EAAU9lC,MAAQ6lC,EAAQ7lC,KACtD8lC,EAAUxf,kBAAkB0R,WAE9BlZ,EAAM5b,GAAO,KACbub,EAAOxS,EAAM/I,GA/Mf6/B,GAAUxI,IACViI,GAAWjI,IACXiC,GAAYjC,IACZ+C,GAAe/C,IACfD,GAAYC,IA8MZ,IAAIwL,GAAe,CAAClrC,OAAQgK,OAAQpG,OAEhCunC,GAAY,CACdxnC,KAAM,aACNm6B,UAAU,EAEVn5B,MAAO,CACL2Q,QAAS41B,GACT1xB,QAAS0xB,GACTzwB,IAAK,CAACza,OAAQgN,SAGhBgG,QAAS,WACPzR,KAAK0iB,MAAQjhB,OAAOygB,OAAO,MAC3BliB,KAAK6P,KAAO,IAGdg6B,UAAW,WACT,IAAK,IAAI/iC,KAAO9G,KAAK0iB,MACnB8mB,GAAgBxpC,KAAK0iB,MAAO5b,EAAK9G,KAAK6P,OAI1Ci6B,QAAS,WACP,IAAIjQ,EAAS75B,KAEbA,KAAKmmC,OAAO,WAAW,SAAUp7B,GAC/Bq+B,GAAWvP,GAAQ,SAAUz3B,GAAQ,OAAO8mC,GAAQn+B,EAAK3I,SAE3DpC,KAAKmmC,OAAO,WAAW,SAAUp7B,GAC/Bq+B,GAAWvP,GAAQ,SAAUz3B,GAAQ,OAAQ8mC,GAAQn+B,EAAK3I,UAI9DuB,OAAQ,WACN,IAAIkc,EAAO7f,KAAKoM,OAAO7I,QACnB2nB,EAAQwU,GAAuB7f,GAC/B+J,EAAmBsB,GAASA,EAAMtB,iBACtC,GAAIA,EAAkB,CAEpB,IAAIxnB,EAAO6mC,GAAiBrf,GACxBnW,EAAMzT,KACN+T,EAAUN,EAAIM,QACdkE,EAAUxE,EAAIwE,QAClB,GAEGlE,KAAa3R,IAAS8mC,GAAQn1B,EAAS3R,KAEvC6V,GAAW7V,GAAQ8mC,GAAQjxB,EAAS7V,GAErC,OAAO8oB,EAGT,IAAI6e,EAAQ/pC,KACR0iB,EAAQqnB,EAAMrnB,MACd7S,EAAOk6B,EAAMl6B,KACb/I,EAAmB,MAAbokB,EAAMpkB,IAGZ8iB,EAAiBzB,KAAK6T,KAAOpS,EAAiBhmB,IAAO,KAAQgmB,EAAoB,IAAK,IACtFsB,EAAMpkB,IACN4b,EAAM5b,IACRokB,EAAMhB,kBAAoBxH,EAAM5b,GAAKojB,kBAErC7H,EAAOxS,EAAM/I,GACb+I,EAAKzH,KAAKtB,KAEV4b,EAAM5b,GAAOokB,EACbrb,EAAKzH,KAAKtB,GAEN9G,KAAKkZ,KAAOrJ,EAAKhR,OAAS6V,SAAS1U,KAAKkZ,MAC1CswB,GAAgB9mB,EAAO7S,EAAK,GAAIA,EAAM7P,KAAK49B,SAI/C1S,EAAMpnB,KAAK+2B,WAAY,EAEzB,OAAO3P,GAAUrL,GAAQA,EAAK,KAI9BmqB,GAAoB,CACtBJ,UAAWA,IAKb,SAASK,GAAe9L,GAEtB,IAAI+L,EAAY,CAChB,IAAgB,WAAc,OAAOjlB,IAQrCxjB,OAAO0E,eAAeg4B,EAAK,SAAU+L,GAKrC/L,EAAIgM,KAAO,CACTxhB,KAAMA,GACN9E,OAAQA,EACRiL,aAAcA,GACdsb,eAAgBvd,IAGlBsR,EAAI1V,IAAMA,GACV0V,EAAIkM,OAAS/c,GACb6Q,EAAIlM,SAAWA,GAGfkM,EAAImM,WAAa,SAAUppB,GAEzB,OADAuL,GAAQvL,GACDA,GAGTid,EAAI3kB,QAAU/X,OAAOygB,OAAO,MAC5B6C,EAAYne,SAAQ,SAAUtD,GAC5B66B,EAAI3kB,QAAQlW,EAAO,KAAO7B,OAAOygB,OAAO,SAK1Cic,EAAI3kB,QAAQuV,MAAQoP,EAEpBta,EAAOsa,EAAI3kB,QAAQguB,WAAYwC,IAE/BnC,GAAQ1J,GACRiK,GAAYjK,GACZmK,GAAWnK,GACX4K,GAAmB5K,GAGrB8L,GAAc9L,IAEd18B,OAAO0E,eAAeg4B,GAAIj9B,UAAW,YAAa,CAChDkF,IAAK0hB,KAGPrmB,OAAO0E,eAAeg4B,GAAIj9B,UAAW,cAAe,CAClDkF,IAAK,WAEH,OAAOpG,KAAKkc,QAAUlc,KAAKkc,OAAOC,cAKtC1a,OAAO0E,eAAeg4B,GAAK,0BAA2B,CACpDt3B,MAAO8yB,KAGTwE,GAAIoM,QAAU,SAMd,IAAI3kB,GAAiB7D,EAAQ,eAGzByoB,GAAczoB,EAAQ,yCACtBiE,GAAc,SAAUpiB,EAAKN,EAAMmnC,GACrC,MACY,UAATA,GAAoBD,GAAY5mC,IAAkB,WAATN,GAChC,aAATmnC,GAA+B,WAAR7mC,GACd,YAAT6mC,GAA8B,UAAR7mC,GACb,UAAT6mC,GAA4B,UAAR7mC,GAIrB8mC,GAAmB3oB,EAAQ,wCAE3B4oB,GAA8B5oB,EAAQ,sCAEtC6oB,GAAyB,SAAU9jC,EAAKD,GAC1C,OAAOgkC,GAAiBhkC,IAAoB,UAAVA,EAC9B,QAEQ,oBAARC,GAA6B6jC,GAA4B9jC,GACvDA,EACA,QAGJikC,GAAgB/oB,EAClB,wYAQEgpB,GAAU,+BAEVC,GAAU,SAAU5oC,GACtB,MAA0B,MAAnBA,EAAK6gB,OAAO,IAAmC,UAArB7gB,EAAKhC,MAAM,EAAG,IAG7C6qC,GAAe,SAAU7oC,GAC3B,OAAO4oC,GAAQ5oC,GAAQA,EAAKhC,MAAM,EAAGgC,EAAKvD,QAAU,IAGlDgsC,GAAmB,SAAU9/B,GAC/B,OAAc,MAAPA,IAAuB,IAARA,GAKxB,SAASmgC,GAAkBhgB,GACzB,IAAIpnB,EAAOonB,EAAMpnB,KACbqnC,EAAajgB,EACbkgB,EAAYlgB,EAChB,MAAOpK,EAAMsqB,EAAUlhB,mBACrBkhB,EAAYA,EAAUlhB,kBAAkB0T,OACpCwN,GAAaA,EAAUtnC,OACzBA,EAAOunC,GAAeD,EAAUtnC,KAAMA,IAG1C,MAAOgd,EAAMqqB,EAAaA,EAAW/uB,QAC/B+uB,GAAcA,EAAWrnC,OAC3BA,EAAOunC,GAAevnC,EAAMqnC,EAAWrnC,OAG3C,OAAOwnC,GAAYxnC,EAAKgJ,YAAahJ,EAAKiJ,OAG5C,SAASs+B,GAAgBzgB,EAAOxO,GAC9B,MAAO,CACLtP,YAAa7L,GAAO2pB,EAAM9d,YAAasP,EAAOtP,aAC9CC,MAAO+T,EAAM8J,EAAM7d,OACf,CAAC6d,EAAM7d,MAAOqP,EAAOrP,OACrBqP,EAAOrP,OAIf,SAASu+B,GACPx+B,EACAy+B,GAEA,OAAIzqB,EAAMhU,IAAgBgU,EAAMyqB,GACvBtqC,GAAO6L,EAAa0+B,GAAeD,IAGrC,GAGT,SAAStqC,GAAQjC,EAAGC,GAClB,OAAOD,EAAIC,EAAKD,EAAI,IAAMC,EAAKD,EAAKC,GAAK,GAG3C,SAASusC,GAAgB3kC,GACvB,OAAIxE,MAAM6a,QAAQrW,GACT4kC,GAAe5kC,GAEpB1G,EAAS0G,GACJ6kC,GAAgB7kC,GAEJ,kBAAVA,EACFA,EAGF,GAGT,SAAS4kC,GAAgB5kC,GAGvB,IAFA,IACI8kC,EADAzhC,EAAM,GAEDvJ,EAAI,EAAG4iB,EAAI1c,EAAMhI,OAAQ8B,EAAI4iB,EAAG5iB,IACnCmgB,EAAM6qB,EAAcH,GAAe3kC,EAAMlG,MAAwB,KAAhBgrC,IAC/CzhC,IAAOA,GAAO,KAClBA,GAAOyhC,GAGX,OAAOzhC,EAGT,SAASwhC,GAAiB7kC,GACxB,IAAIqD,EAAM,GACV,IAAK,IAAIpD,KAAOD,EACVA,EAAMC,KACJoD,IAAOA,GAAO,KAClBA,GAAOpD,GAGX,OAAOoD,EAKT,IAAI0hC,GAAe,CACjBC,IAAK,6BACLC,KAAM,sCAGJC,GAAYhqB,EACd,snBAeEiqB,GAAQjqB,EACV,kNAGA,GAGE4D,GAAgB,SAAU/hB,GAC5B,OAAOmoC,GAAUnoC,IAAQooC,GAAMpoC,IAGjC,SAASkiB,GAAiBliB,GACxB,OAAIooC,GAAMpoC,GACD,MAIG,SAARA,EACK,YADT,EAKF,IAAIqoC,GAAsBxqC,OAAOygB,OAAO,MACxC,SAAS2D,GAAkBjiB,GAEzB,IAAKkjB,EACH,OAAO,EAET,GAAInB,GAAc/hB,GAChB,OAAO,EAIT,GAFAA,EAAMA,EAAIue,cAEsB,MAA5B8pB,GAAoBroC,GACtB,OAAOqoC,GAAoBroC,GAE7B,IAAIK,EAAKwO,SAASvM,cAActC,GAChC,OAAIA,EAAIkM,QAAQ,MAAQ,EAEdm8B,GAAoBroC,GAC1BK,EAAG9B,cAAgBX,OAAO0qC,oBAC1BjoC,EAAG9B,cAAgBX,OAAO2qC,YAGpBF,GAAoBroC,GAAO,qBAAqBtF,KAAK2F,EAAG3C,YAIpE,IAAI8qC,GAAkBrqB,EAAQ,6CAO9B,SAAS5D,GAAOla,GACd,GAAkB,kBAAPA,EAAiB,CAC1B,IAAIooC,EAAW55B,SAAS65B,cAAcroC,GACtC,OAAKooC,GAII55B,SAASvM,cAAc,OAIhC,OAAOjC,EAMX,SAASsoC,GAAiBC,EAASthB,GACjC,IAAIvB,EAAMlX,SAASvM,cAAcsmC,GACjC,MAAgB,WAAZA,GAIAthB,EAAMpnB,MAAQonB,EAAMpnB,KAAKkJ,YAAuClO,IAA9BosB,EAAMpnB,KAAKkJ,MAAMy/B,UACrD9iB,EAAI+iB,aAAa,WAAY,YAJtB/iB,EASX,SAASgjB,GAAiBC,EAAWJ,GACnC,OAAO/5B,SAASk6B,gBAAgBf,GAAagB,GAAYJ,GAG3D,SAASza,GAAgB1lB,GACvB,OAAOoG,SAASsf,eAAe1lB,GAGjC,SAASwgC,GAAexgC,GACtB,OAAOoG,SAASo6B,cAAcxgC,GAGhC,SAASygC,GAAc3B,EAAY4B,EAASC,GAC1C7B,EAAW2B,aAAaC,EAASC,GAGnC,SAASC,GAAaliB,EAAMH,GAC1BG,EAAKkiB,YAAYriB,GAGnB,SAASsiB,GAAaniB,EAAMH,GAC1BG,EAAKmiB,YAAYtiB,GAGnB,SAASugB,GAAYpgB,GACnB,OAAOA,EAAKogB,WAGd,SAASgC,GAAapiB,GACpB,OAAOA,EAAKoiB,YAGd,SAASX,GAASzhB,GAChB,OAAOA,EAAKyhB,QAGd,SAASY,GAAgBriB,EAAM1e,GAC7B0e,EAAKsiB,YAAchhC,EAGrB,SAASihC,GAAeviB,EAAMnP,GAC5BmP,EAAK2hB,aAAa9wB,EAAS,IAG7B,IAAI2xB,GAAuB9rC,OAAOkf,OAAO,CACvCza,cAAeqmC,GACfI,gBAAiBA,GACjB5a,eAAgBA,GAChB8a,cAAeA,GACfC,aAAcA,GACdG,YAAaA,GACbC,YAAaA,GACb/B,WAAYA,GACZgC,YAAaA,GACbX,QAASA,GACTY,eAAgBA,GAChBE,cAAeA,KAKb75B,GAAM,CACRyO,OAAQ,SAAiBY,EAAGoI,GAC1BsiB,GAAYtiB,IAEd5B,OAAQ,SAAiB6R,EAAUjQ,GAC7BiQ,EAASr3B,KAAK2P,MAAQyX,EAAMpnB,KAAK2P,MACnC+5B,GAAYrS,GAAU,GACtBqS,GAAYtiB,KAGhBwQ,QAAS,SAAkBxQ,GACzBsiB,GAAYtiB,GAAO,KAIvB,SAASsiB,GAAatiB,EAAOuiB,GAC3B,IAAI3mC,EAAMokB,EAAMpnB,KAAK2P,IACrB,GAAKqN,EAAMha,GAAX,CAEA,IAAIgnB,EAAK5C,EAAMrnB,QACX4P,EAAMyX,EAAMhB,mBAAqBgB,EAAMvB,IACvC+jB,EAAO5f,EAAG5b,MACVu7B,EACEprC,MAAM6a,QAAQwwB,EAAK5mC,IACrBub,EAAOqrB,EAAK5mC,GAAM2M,GACTi6B,EAAK5mC,KAAS2M,IACvBi6B,EAAK5mC,QAAOhI,GAGVosB,EAAMpnB,KAAK6pC,SACRtrC,MAAM6a,QAAQwwB,EAAK5mC,IAEb4mC,EAAK5mC,GAAKgJ,QAAQ2D,GAAO,GAElCi6B,EAAK5mC,GAAKsB,KAAKqL,GAHfi6B,EAAK5mC,GAAO,CAAC2M,GAMfi6B,EAAK5mC,GAAO2M,GAiBlB,IAAIm6B,GAAY,IAAI34B,GAAM,GAAI,GAAI,IAE9BkZ,GAAQ,CAAC,SAAU,WAAY,SAAU,SAAU,WAEvD,SAAS0f,GAAW7uC,EAAGC,GACrB,OACED,EAAE8H,MAAQ7H,EAAE6H,MAER9H,EAAE4E,MAAQ3E,EAAE2E,KACZ5E,EAAEsrB,YAAcrrB,EAAEqrB,WAClBxJ,EAAM9hB,EAAE8E,QAAUgd,EAAM7hB,EAAE6E,OAC1BgqC,GAAc9uC,EAAGC,IAEjB8hB,EAAO/hB,EAAE0rB,qBACT1rB,EAAE6qB,eAAiB5qB,EAAE4qB,cACrBjJ,EAAQ3hB,EAAE4qB,aAAahoB,QAM/B,SAASisC,GAAe9uC,EAAGC,GACzB,GAAc,UAAVD,EAAE4E,IAAmB,OAAO,EAChC,IAAIjD,EACAotC,EAAQjtB,EAAMngB,EAAI3B,EAAE8E,OAASgd,EAAMngB,EAAIA,EAAEqM,QAAUrM,EAAE2C,KACrD0qC,EAAQltB,EAAMngB,EAAI1B,EAAE6E,OAASgd,EAAMngB,EAAIA,EAAEqM,QAAUrM,EAAE2C,KACzD,OAAOyqC,IAAUC,GAAS5B,GAAgB2B,IAAU3B,GAAgB4B,GAGtE,SAASC,GAAmB3/B,EAAU4/B,EAAUC,GAC9C,IAAIxtC,EAAGmG,EACHmb,EAAM,GACV,IAAKthB,EAAIutC,EAAUvtC,GAAKwtC,IAAUxtC,EAChCmG,EAAMwH,EAAS3N,GAAGmG,IACdga,EAAMha,KAAQmb,EAAInb,GAAOnG,GAE/B,OAAOshB,EAGT,SAASmsB,GAAqBC,GAC5B,IAAI1tC,EAAG+hC,EACHlC,EAAM,GAEN8N,EAAUD,EAAQC,QAClBf,EAAUc,EAAQd,QAEtB,IAAK5sC,EAAI,EAAGA,EAAIwtB,GAAMtvB,SAAU8B,EAE9B,IADA6/B,EAAIrS,GAAMxtB,IAAM,GACX+hC,EAAI,EAAGA,EAAI4L,EAAQzvC,SAAU6jC,EAC5B5hB,EAAMwtB,EAAQ5L,GAAGvU,GAAMxtB,MACzB6/B,EAAIrS,GAAMxtB,IAAIyH,KAAKkmC,EAAQ5L,GAAGvU,GAAMxtB,KAK1C,SAAS4tC,EAAa5kB,GACpB,OAAO,IAAI1U,GAAMs4B,EAAQf,QAAQ7iB,GAAKxH,cAAe,GAAI,QAAIrjB,EAAW6qB,GAG1E,SAAS6kB,EAAYC,EAAU1uB,GAC7B,SAASoT,IACuB,MAAxBA,EAAUpT,WACd2uB,EAAWD,GAIf,OADAtb,EAAUpT,UAAYA,EACfoT,EAGT,SAASub,EAAYzqC,GACnB,IAAImY,EAASmxB,EAAQpC,WAAWlnC,GAE5B6c,EAAM1E,IACRmxB,EAAQN,YAAY7wB,EAAQnY,GAsBhC,SAAS0qC,EACPzjB,EACA0jB,EACAC,EACAC,EACAC,EACAC,EACAjlC,GAYA,GAVI+W,EAAMoK,EAAMvB,MAAQ7I,EAAMkuB,KAM5B9jB,EAAQ8jB,EAAWjlC,GAASkhB,GAAWC,IAGzCA,EAAMb,cAAgB0kB,GAClBjT,EAAgB5Q,EAAO0jB,EAAoBC,EAAWC,GAA1D,CAIA,IAAIhrC,EAAOonB,EAAMpnB,KACbwK,EAAW4c,EAAM5c,SACjB1K,EAAMsnB,EAAMtnB,IACZkd,EAAMld,IAeRsnB,EAAMvB,IAAMuB,EAAMpB,GACdyjB,EAAQZ,gBAAgBzhB,EAAMpB,GAAIlmB,GAClC2pC,EAAQrnC,cAActC,EAAKsnB,GAC/B+jB,EAAS/jB,GAIPgkB,EAAehkB,EAAO5c,EAAUsgC,GAC5B9tB,EAAMhd,IACRqrC,EAAkBjkB,EAAO0jB,GAE3BvT,EAAOwT,EAAW3jB,EAAMvB,IAAKmlB,IAMtB/tB,EAAOmK,EAAMZ,YACtBY,EAAMvB,IAAM4jB,EAAQV,cAAc3hB,EAAM7e,MACxCgvB,EAAOwT,EAAW3jB,EAAMvB,IAAKmlB,KAE7B5jB,EAAMvB,IAAM4jB,EAAQxb,eAAe7G,EAAM7e,MACzCgvB,EAAOwT,EAAW3jB,EAAMvB,IAAKmlB,KAIjC,SAAShT,EAAiB5Q,EAAO0jB,EAAoBC,EAAWC,GAC9D,IAAInuC,EAAIuqB,EAAMpnB,KACd,GAAIgd,EAAMngB,GAAI,CACZ,IAAIyuC,EAAgBtuB,EAAMoK,EAAMhB,oBAAsBvpB,EAAEk6B,UAQxD,GAPI/Z,EAAMngB,EAAIA,EAAEob,OAAS+E,EAAMngB,EAAIA,EAAEg6B,OACnCh6B,EAAEuqB,GAAO,GAMPpK,EAAMoK,EAAMhB,mBAMd,OALAmlB,EAAcnkB,EAAO0jB,GACrBvT,EAAOwT,EAAW3jB,EAAMvB,IAAKmlB,GACzB/tB,EAAOquB,IACTE,EAAoBpkB,EAAO0jB,EAAoBC,EAAWC,IAErD,GAKb,SAASO,EAAenkB,EAAO0jB,GACzB9tB,EAAMoK,EAAMpnB,KAAKyrC,iBACnBX,EAAmBxmC,KAAKjJ,MAAMyvC,EAAoB1jB,EAAMpnB,KAAKyrC,eAC7DrkB,EAAMpnB,KAAKyrC,cAAgB,MAE7BrkB,EAAMvB,IAAMuB,EAAMhB,kBAAkB5X,IAChCk9B,EAAYtkB,IACdikB,EAAkBjkB,EAAO0jB,GACzBK,EAAS/jB,KAITsiB,GAAYtiB,GAEZ0jB,EAAmBxmC,KAAK8iB,IAI5B,SAASokB,EAAqBpkB,EAAO0jB,EAAoBC,EAAWC,GAClE,IAAInuC,EAKA8uC,EAAYvkB,EAChB,MAAOukB,EAAUvlB,kBAEf,GADAulB,EAAYA,EAAUvlB,kBAAkB0T,OACpC9c,EAAMngB,EAAI8uC,EAAU3rC,OAASgd,EAAMngB,EAAIA,EAAE8D,YAAa,CACxD,IAAK9D,EAAI,EAAGA,EAAI6/B,EAAIkP,SAAS7wC,SAAU8B,EACrC6/B,EAAIkP,SAAS/uC,GAAGitC,GAAW6B,GAE7Bb,EAAmBxmC,KAAKqnC,GACxB,MAKJpU,EAAOwT,EAAW3jB,EAAMvB,IAAKmlB,GAG/B,SAASzT,EAAQjf,EAAQuN,EAAKgmB,GACxB7uB,EAAM1E,KACJ0E,EAAM6uB,GACJpC,EAAQpC,WAAWwE,KAAYvzB,GACjCmxB,EAAQT,aAAa1wB,EAAQuN,EAAKgmB,GAGpCpC,EAAQL,YAAY9wB,EAAQuN,IAKlC,SAASulB,EAAgBhkB,EAAO5c,EAAUsgC,GACxC,GAAIvsC,MAAM6a,QAAQ5O,GAAW,CACvB,EAGJ,IAAK,IAAI3N,EAAI,EAAGA,EAAI2N,EAASzP,SAAU8B,EACrCguC,EAAUrgC,EAAS3N,GAAIiuC,EAAoB1jB,EAAMvB,IAAK,MAAM,EAAMrb,EAAU3N,QAErEsgB,EAAYiK,EAAM7e,OAC3BkhC,EAAQL,YAAYhiB,EAAMvB,IAAK4jB,EAAQxb,eAAetzB,OAAOysB,EAAM7e,QAIvE,SAASmjC,EAAatkB,GACpB,MAAOA,EAAMhB,kBACXgB,EAAQA,EAAMhB,kBAAkB0T,OAElC,OAAO9c,EAAMoK,EAAMtnB,KAGrB,SAASurC,EAAmBjkB,EAAO0jB,GACjC,IAAK,IAAIrO,EAAM,EAAGA,EAAMC,EAAIte,OAAOrjB,SAAU0hC,EAC3CC,EAAIte,OAAOqe,GAAKqN,GAAW1iB,GAE7BvqB,EAAIuqB,EAAMpnB,KAAKiY,KACX+E,EAAMngB,KACJmgB,EAAMngB,EAAEuhB,SAAWvhB,EAAEuhB,OAAO0rB,GAAW1iB,GACvCpK,EAAMngB,EAAE06B,SAAWuT,EAAmBxmC,KAAK8iB,IAOnD,SAAS+jB,EAAU/jB,GACjB,IAAIvqB,EACJ,GAAImgB,EAAMngB,EAAIuqB,EAAMjB,WAClBsjB,EAAQD,cAAcpiB,EAAMvB,IAAKhpB,OAC5B,CACL,IAAIivC,EAAW1kB,EACf,MAAO0kB,EACD9uB,EAAMngB,EAAIivC,EAAS/rC,UAAYid,EAAMngB,EAAIA,EAAE+b,SAAST,WACtDsxB,EAAQD,cAAcpiB,EAAMvB,IAAKhpB,GAEnCivC,EAAWA,EAASxzB,OAIpB0E,EAAMngB,EAAIs6B,KACZt6B,IAAMuqB,EAAMrnB,SACZlD,IAAMuqB,EAAMnB,WACZjJ,EAAMngB,EAAIA,EAAE+b,SAAST,WAErBsxB,EAAQD,cAAcpiB,EAAMvB,IAAKhpB,GAIrC,SAASkvC,EAAWhB,EAAWC,EAAQtU,EAAQsV,EAAU3B,EAAQS,GAC/D,KAAOkB,GAAY3B,IAAU2B,EAC3BnB,EAAUnU,EAAOsV,GAAWlB,EAAoBC,EAAWC,GAAQ,EAAOtU,EAAQsV,GAItF,SAASC,EAAmB7kB,GAC1B,IAAIvqB,EAAG+hC,EACH5+B,EAAOonB,EAAMpnB,KACjB,GAAIgd,EAAMhd,GAER,IADIgd,EAAMngB,EAAImD,EAAKiY,OAAS+E,EAAMngB,EAAIA,EAAE+6B,UAAY/6B,EAAEuqB,GACjDvqB,EAAI,EAAGA,EAAI6/B,EAAI9E,QAAQ78B,SAAU8B,EAAK6/B,EAAI9E,QAAQ/6B,GAAGuqB,GAE5D,GAAIpK,EAAMngB,EAAIuqB,EAAM5c,UAClB,IAAKo0B,EAAI,EAAGA,EAAIxX,EAAM5c,SAASzP,SAAU6jC,EACvCqN,EAAkB7kB,EAAM5c,SAASo0B,IAKvC,SAASsN,EAAcxV,EAAQsV,EAAU3B,GACvC,KAAO2B,GAAY3B,IAAU2B,EAAU,CACrC,IAAIG,EAAKzV,EAAOsV,GACZhvB,EAAMmvB,KACJnvB,EAAMmvB,EAAGrsC,MACXssC,EAA0BD,GAC1BF,EAAkBE,IAElBvB,EAAWuB,EAAGtmB,OAMtB,SAASumB,EAA2BhlB,EAAOilB,GACzC,GAAIrvB,EAAMqvB,IAAOrvB,EAAMoK,EAAMpnB,MAAO,CAClC,IAAInD,EACAof,EAAYygB,EAAIne,OAAOxjB,OAAS,EAapC,IAZIiiB,EAAMqvB,GAGRA,EAAGpwB,WAAaA,EAGhBowB,EAAK3B,EAAWtjB,EAAMvB,IAAK5J,GAGzBe,EAAMngB,EAAIuqB,EAAMhB,oBAAsBpJ,EAAMngB,EAAIA,EAAEi9B,SAAW9c,EAAMngB,EAAEmD,OACvEosC,EAA0BvvC,EAAGwvC,GAE1BxvC,EAAI,EAAGA,EAAI6/B,EAAIne,OAAOxjB,SAAU8B,EACnC6/B,EAAIne,OAAO1hB,GAAGuqB,EAAOilB,GAEnBrvB,EAAMngB,EAAIuqB,EAAMpnB,KAAKiY,OAAS+E,EAAMngB,EAAIA,EAAE0hB,QAC5C1hB,EAAEuqB,EAAOilB,GAETA,SAGFzB,EAAWxjB,EAAMvB,KAIrB,SAASymB,EAAgBvB,EAAWwB,EAAOC,EAAO1B,EAAoB2B,GACpE,IAQIC,EAAaC,EAAUC,EAAa5B,EARpC6B,EAAc,EACdC,EAAc,EACdC,EAAYR,EAAMxxC,OAAS,EAC3BiyC,EAAgBT,EAAM,GACtBU,EAAcV,EAAMQ,GACpBG,EAAYV,EAAMzxC,OAAS,EAC3BoyC,EAAgBX,EAAM,GACtBY,EAAcZ,EAAMU,GAMpBG,GAAWZ,EAMf,MAAOI,GAAeE,GAAaD,GAAeI,EAC5CpwB,EAAQkwB,GACVA,EAAgBT,IAAQM,GACf/vB,EAAQmwB,GACjBA,EAAcV,IAAQQ,GACbhD,GAAUiD,EAAeG,IAClCG,EAAWN,EAAeG,EAAerC,EAAoB0B,EAAOM,GACpEE,EAAgBT,IAAQM,GACxBM,EAAgBX,IAAQM,IACf/C,GAAUkD,EAAaG,IAChCE,EAAWL,EAAaG,EAAatC,EAAoB0B,EAAOU,GAChED,EAAcV,IAAQQ,GACtBK,EAAcZ,IAAQU,IACbnD,GAAUiD,EAAeI,IAClCE,EAAWN,EAAeI,EAAatC,EAAoB0B,EAAOU,GAClEG,GAAW5D,EAAQT,aAAa+B,EAAWiC,EAAcnnB,IAAK4jB,EAAQJ,YAAY4D,EAAYpnB,MAC9FmnB,EAAgBT,IAAQM,GACxBO,EAAcZ,IAAQU,IACbnD,GAAUkD,EAAaE,IAChCG,EAAWL,EAAaE,EAAerC,EAAoB0B,EAAOM,GAClEO,GAAW5D,EAAQT,aAAa+B,EAAWkC,EAAYpnB,IAAKmnB,EAAcnnB,KAC1EonB,EAAcV,IAAQQ,GACtBI,EAAgBX,IAAQM,KAEpBhwB,EAAQ4vB,KAAgBA,EAAcvC,GAAkBoC,EAAOM,EAAaE,IAChFJ,EAAW3vB,EAAMmwB,EAAcnqC,KAC3B0pC,EAAYS,EAAcnqC,KAC1BuqC,EAAaJ,EAAeZ,EAAOM,EAAaE,GAChDjwB,EAAQ6vB,GACV9B,EAAUsC,EAAerC,EAAoBC,EAAWiC,EAAcnnB,KAAK,EAAO2mB,EAAOM,IAEzFF,EAAcL,EAAMI,GAChB5C,GAAU6C,EAAaO,IACzBG,EAAWV,EAAaO,EAAerC,EAAoB0B,EAAOM,GAClEP,EAAMI,QAAY3xC,EAClBqyC,GAAW5D,EAAQT,aAAa+B,EAAW6B,EAAY/mB,IAAKmnB,EAAcnnB,MAG1EglB,EAAUsC,EAAerC,EAAoBC,EAAWiC,EAAcnnB,KAAK,EAAO2mB,EAAOM,IAG7FK,EAAgBX,IAAQM,IAGxBD,EAAcE,GAChB/B,EAASluB,EAAQ0vB,EAAMU,EAAY,IAAM,KAAOV,EAAMU,EAAY,GAAGrnB,IACrEkmB,EAAUhB,EAAWC,EAAQwB,EAAOM,EAAaI,EAAWpC,IACnDgC,EAAcI,GACvBhB,EAAaK,EAAOM,EAAaE,GAsBrC,SAASQ,EAActmB,EAAMslB,EAAO1sB,EAAO2tB,GACzC,IAAK,IAAI3wC,EAAIgjB,EAAOhjB,EAAI2wC,EAAK3wC,IAAK,CAChC,IAAIzB,EAAImxC,EAAM1vC,GACd,GAAImgB,EAAM5hB,IAAM2uC,GAAU9iB,EAAM7rB,GAAM,OAAOyB,GAIjD,SAASywC,EACPjW,EACAjQ,EACA0jB,EACAI,EACAjlC,EACAwmC,GAEA,GAAIpV,IAAajQ,EAAjB,CAIIpK,EAAMoK,EAAMvB,MAAQ7I,EAAMkuB,KAE5B9jB,EAAQ8jB,EAAWjlC,GAASkhB,GAAWC,IAGzC,IAAIvB,EAAMuB,EAAMvB,IAAMwR,EAASxR,IAE/B,GAAI5I,EAAOoa,EAASzQ,oBACd5J,EAAMoK,EAAMrB,aAAa+U,UAC3B2S,EAAQpW,EAASxR,IAAKuB,EAAO0jB,GAE7B1jB,EAAMR,oBAAqB,OAS/B,GAAI3J,EAAOmK,EAAMd,WACfrJ,EAAOoa,EAAS/Q,WAChBc,EAAMpkB,MAAQq0B,EAASr0B,MACtBia,EAAOmK,EAAMX,WAAaxJ,EAAOmK,EAAMV,SAExCU,EAAMhB,kBAAoBiR,EAASjR,sBALrC,CASA,IAAIvpB,EACAmD,EAAOonB,EAAMpnB,KACbgd,EAAMhd,IAASgd,EAAMngB,EAAImD,EAAKiY,OAAS+E,EAAMngB,EAAIA,EAAEo6B,WACrDp6B,EAAEw6B,EAAUjQ,GAGd,IAAImlB,EAAQlV,EAAS7sB,SACjB2hC,EAAK/kB,EAAM5c,SACf,GAAIwS,EAAMhd,IAAS0rC,EAAYtkB,GAAQ,CACrC,IAAKvqB,EAAI,EAAGA,EAAI6/B,EAAIlX,OAAOzqB,SAAU8B,EAAK6/B,EAAIlX,OAAO3oB,GAAGw6B,EAAUjQ,GAC9DpK,EAAMngB,EAAImD,EAAKiY,OAAS+E,EAAMngB,EAAIA,EAAE2oB,SAAW3oB,EAAEw6B,EAAUjQ,GAE7DtK,EAAQsK,EAAM7e,MACZyU,EAAMuvB,IAAUvvB,EAAMmvB,GACpBI,IAAUJ,GAAMG,EAAezmB,EAAK0mB,EAAOJ,EAAIrB,EAAoB2B,GAC9DzvB,EAAMmvB,IAIXnvB,EAAMqa,EAAS9uB,OAASkhC,EAAQH,eAAezjB,EAAK,IACxDkmB,EAAUlmB,EAAK,KAAMsmB,EAAI,EAAGA,EAAGpxC,OAAS,EAAG+vC,IAClC9tB,EAAMuvB,GACfL,EAAaK,EAAO,EAAGA,EAAMxxC,OAAS,GAC7BiiB,EAAMqa,EAAS9uB,OACxBkhC,EAAQH,eAAezjB,EAAK,IAErBwR,EAAS9uB,OAAS6e,EAAM7e,MACjCkhC,EAAQH,eAAezjB,EAAKuB,EAAM7e,MAEhCyU,EAAMhd,IACJgd,EAAMngB,EAAImD,EAAKiY,OAAS+E,EAAMngB,EAAIA,EAAE6wC,YAAc7wC,EAAEw6B,EAAUjQ,KAItE,SAASumB,EAAkBvmB,EAAOyX,EAAO+O,GAGvC,GAAI3wB,EAAO2wB,IAAY5wB,EAAMoK,EAAM9O,QACjC8O,EAAM9O,OAAOtY,KAAKyrC,cAAgB5M,OAElC,IAAK,IAAIhiC,EAAI,EAAGA,EAAIgiC,EAAM9jC,SAAU8B,EAClCgiC,EAAMhiC,GAAGmD,KAAKiY,KAAKsf,OAAOsH,EAAMhiC,IAKtC,IAKIgxC,EAAmB5vB,EAAQ,2CAG/B,SAASwvB,EAAS5nB,EAAKuB,EAAO0jB,EAAoBgD,GAChD,IAAIjxC,EACAiD,EAAMsnB,EAAMtnB,IACZE,EAAOonB,EAAMpnB,KACbwK,EAAW4c,EAAM5c,SAIrB,GAHAsjC,EAASA,GAAW9tC,GAAQA,EAAKy5B,IACjCrS,EAAMvB,IAAMA,EAER5I,EAAOmK,EAAMZ,YAAcxJ,EAAMoK,EAAMrB,cAEzC,OADAqB,EAAMR,oBAAqB,GACpB,EAQT,GAAI5J,EAAMhd,KACJgd,EAAMngB,EAAImD,EAAKiY,OAAS+E,EAAMngB,EAAIA,EAAEg6B,OAASh6B,EAAEuqB,GAAO,GACtDpK,EAAMngB,EAAIuqB,EAAMhB,oBAGlB,OADAmlB,EAAcnkB,EAAO0jB,IACd,EAGX,GAAI9tB,EAAMld,GAAM,CACd,GAAIkd,EAAMxS,GAER,GAAKqb,EAAIkoB,gBAIP,GAAI/wB,EAAMngB,EAAImD,IAASgd,EAAMngB,EAAIA,EAAEy2B,WAAatW,EAAMngB,EAAIA,EAAEmxC,YAC1D,GAAInxC,IAAMgpB,EAAImoB,UAWZ,OAAO,MAEJ,CAIL,IAFA,IAAIC,GAAgB,EAChB3G,EAAYzhB,EAAIqoB,WACXzR,EAAM,EAAGA,EAAMjyB,EAASzP,OAAQ0hC,IAAO,CAC9C,IAAK6K,IAAcmG,EAAQnG,EAAW98B,EAASiyB,GAAMqO,EAAoBgD,GAAS,CAChFG,GAAgB,EAChB,MAEF3G,EAAYA,EAAU+B,YAIxB,IAAK4E,GAAiB3G,EAUpB,OAAO,OAxCX8D,EAAehkB,EAAO5c,EAAUsgC,GA6CpC,GAAI9tB,EAAMhd,GAAO,CACf,IAAImuC,GAAa,EACjB,IAAK,IAAInrC,KAAOhD,EACd,IAAK6tC,EAAiB7qC,GAAM,CAC1BmrC,GAAa,EACb9C,EAAkBjkB,EAAO0jB,GACzB,OAGCqD,GAAcnuC,EAAK,UAEtBsuB,GAAStuB,EAAK,gBAGT6lB,EAAI7lB,OAASonB,EAAM7e,OAC5Bsd,EAAI7lB,KAAOonB,EAAM7e,MAEnB,OAAO,EAcT,OAAO,SAAgB8uB,EAAUjQ,EAAO0P,EAAW2V,GACjD,IAAI3vB,EAAQsK,GAAZ,CAKA,IAAIgnB,GAAiB,EACjBtD,EAAqB,GAEzB,GAAIhuB,EAAQua,GAEV+W,GAAiB,EACjBvD,EAAUzjB,EAAO0jB,OACZ,CACL,IAAIuD,EAAgBrxB,EAAMqa,EAASiX,UACnC,IAAKD,GAAiBtE,GAAU1S,EAAUjQ,GAExCkmB,EAAWjW,EAAUjQ,EAAO0jB,EAAoB,KAAM,KAAM2B,OACvD,CACL,GAAI4B,EAAe,CAQjB,GAJ0B,IAAtBhX,EAASiX,UAAkBjX,EAASkX,aAAavtB,KACnDqW,EAASmX,gBAAgBxtB,GACzB8V,GAAY,GAEV7Z,EAAO6Z,IACL2W,EAAQpW,EAAUjQ,EAAO0jB,GAE3B,OADA6C,EAAiBvmB,EAAO0jB,GAAoB,GACrCzT,EAaXA,EAAWoT,EAAYpT,GAIzB,IAAIoX,EAASpX,EAASxR,IAClBklB,EAAYtB,EAAQpC,WAAWoH,GAcnC,GAXA5D,EACEzjB,EACA0jB,EAIA2D,EAAOC,SAAW,KAAO3D,EACzBtB,EAAQJ,YAAYoF,IAIlBzxB,EAAMoK,EAAM9O,QAAS,CACvB,IAAIwzB,EAAW1kB,EAAM9O,OACjBq2B,EAAYjD,EAAYtkB,GAC5B,MAAO0kB,EAAU,CACf,IAAK,IAAIjvC,EAAI,EAAGA,EAAI6/B,EAAI9E,QAAQ78B,SAAU8B,EACxC6/B,EAAI9E,QAAQ/6B,GAAGivC,GAGjB,GADAA,EAASjmB,IAAMuB,EAAMvB,IACjB8oB,EAAW,CACb,IAAK,IAAIlS,EAAM,EAAGA,EAAMC,EAAIte,OAAOrjB,SAAU0hC,EAC3CC,EAAIte,OAAOqe,GAAKqN,GAAWgC,GAK7B,IAAIvU,EAASuU,EAAS9rC,KAAKiY,KAAKsf,OAChC,GAAIA,EAAOzH,OAET,IAAK,IAAI8e,EAAM,EAAGA,EAAMrX,EAAOvI,IAAIj0B,OAAQ6zC,IACzCrX,EAAOvI,IAAI4f,UAIflF,GAAYoC,GAEdA,EAAWA,EAASxzB,QAKpB0E,EAAM+tB,GACRmB,EAAa,CAAC7U,GAAW,EAAG,GACnBra,EAAMqa,EAASv3B,MACxBmsC,EAAkB5U,IAMxB,OADAsW,EAAiBvmB,EAAO0jB,EAAoBsD,GACrChnB,EAAMvB,IAnGP7I,EAAMqa,IAAa4U,EAAkB5U,IAyG/C,IAAI9qB,GAAa,CACf6R,OAAQywB,GACRrpB,OAAQqpB,GACRjX,QAAS,SAA2BxQ,GAClCynB,GAAiBznB,EAAO0iB,MAI5B,SAAS+E,GAAkBxX,EAAUjQ,IAC/BiQ,EAASr3B,KAAKuM,YAAc6a,EAAMpnB,KAAKuM,aACzC8wB,GAAQhG,EAAUjQ,GAItB,SAASiW,GAAShG,EAAUjQ,GAC1B,IAQIpkB,EAAK8rC,EAAQC,EARbC,EAAW3X,IAAayS,GACxBmF,EAAY7nB,IAAU0iB,GACtBoF,EAAUC,GAAsB9X,EAASr3B,KAAKuM,WAAY8qB,EAASt3B,SACnEqvC,EAAUD,GAAsB/nB,EAAMpnB,KAAKuM,WAAY6a,EAAMrnB,SAE7DsvC,EAAiB,GACjBC,EAAoB,GAGxB,IAAKtsC,KAAOosC,EACVN,EAASI,EAAQlsC,GACjB+rC,EAAMK,EAAQpsC,GACT8rC,GAQHC,EAAIjO,SAAWgO,EAAO/rC,MACtBgsC,EAAIQ,OAAST,EAAOU,IACpBC,GAAWV,EAAK,SAAU3nB,EAAOiQ,GAC7B0X,EAAIvsB,KAAOusB,EAAIvsB,IAAIktB,kBACrBJ,EAAkBhrC,KAAKyqC,KAVzBU,GAAWV,EAAK,OAAQ3nB,EAAOiQ,GAC3B0X,EAAIvsB,KAAOusB,EAAIvsB,IAAIoF,UACrBynB,EAAe/qC,KAAKyqC,IAa1B,GAAIM,EAAet0C,OAAQ,CACzB,IAAI40C,EAAa,WACf,IAAK,IAAI9yC,EAAI,EAAGA,EAAIwyC,EAAet0C,OAAQ8B,IACzC4yC,GAAWJ,EAAexyC,GAAI,WAAYuqB,EAAOiQ,IAGjD2X,EACFtf,GAAetI,EAAO,SAAUuoB,GAEhCA,IAYJ,GARIL,EAAkBv0C,QACpB20B,GAAetI,EAAO,aAAa,WACjC,IAAK,IAAIvqB,EAAI,EAAGA,EAAIyyC,EAAkBv0C,OAAQ8B,IAC5C4yC,GAAWH,EAAkBzyC,GAAI,mBAAoBuqB,EAAOiQ,OAK7D2X,EACH,IAAKhsC,KAAOksC,EACLE,EAAQpsC,IAEXysC,GAAWP,EAAQlsC,GAAM,SAAUq0B,EAAUA,EAAU4X,GAM/D,IAAIW,GAAiBjyC,OAAOygB,OAAO,MAEnC,SAAS+wB,GACPrkB,EACAd,GAEA,IAKIntB,EAAGkyC,EALH3oC,EAAMzI,OAAOygB,OAAO,MACxB,IAAK0M,EAEH,OAAO1kB,EAGT,IAAKvJ,EAAI,EAAGA,EAAIiuB,EAAK/vB,OAAQ8B,IAC3BkyC,EAAMjkB,EAAKjuB,GACNkyC,EAAIc,YAEPd,EAAIc,UAAYD,IAElBxpC,EAAI0pC,GAAcf,IAAQA,EAC1BA,EAAIvsB,IAAM6I,GAAarB,EAAGpR,SAAU,aAAcm2B,EAAIzwC,MAAM,GAG9D,OAAO8H,EAGT,SAAS0pC,GAAef,GACtB,OAAOA,EAAIgB,SAAahB,EAAQ,KAAI,IAAOpxC,OAAOoO,KAAKgjC,EAAIc,WAAa,IAAI9yC,KAAK,KAGnF,SAAS0yC,GAAYV,EAAK92B,EAAMmP,EAAOiQ,EAAU4X,GAC/C,IAAIp0C,EAAKk0C,EAAIvsB,KAAOusB,EAAIvsB,IAAIvK,GAC5B,GAAIpd,EACF,IACEA,EAAGusB,EAAMvB,IAAKkpB,EAAK3nB,EAAOiQ,EAAU4X,GACpC,MAAOtoC,IACP6lB,GAAY7lB,GAAGygB,EAAMrnB,QAAU,aAAgBgvC,EAAQ,KAAI,IAAM92B,EAAO,UAK9E,IAAI+3B,GAAc,CAChBrgC,GACApD,IAKF,SAAS0jC,GAAa5Y,EAAUjQ,GAC9B,IAAItD,EAAOsD,EAAMtB,iBACjB,KAAI9I,EAAM8G,KAA4C,IAAnCA,EAAKO,KAAK3O,QAAQw6B,iBAGjCpzB,EAAQua,EAASr3B,KAAKkJ,SAAU4T,EAAQsK,EAAMpnB,KAAKkJ,QAAvD,CAGA,IAAIlG,EAAK2pB,EAAK4C,EACV1J,EAAMuB,EAAMvB,IACZsqB,EAAW9Y,EAASr3B,KAAKkJ,OAAS,GAClCA,EAAQke,EAAMpnB,KAAKkJ,OAAS,GAMhC,IAAKlG,KAJDga,EAAM9T,EAAM4e,UACd5e,EAAQke,EAAMpnB,KAAKkJ,MAAQ6W,EAAO,GAAI7W,IAG5BA,EACVyjB,EAAMzjB,EAAMlG,GACZusB,EAAM4gB,EAASntC,GACXusB,IAAQ5C,GACVyjB,GAAQvqB,EAAK7iB,EAAK2pB,GAStB,IAAK3pB,KAHAugB,IAAQE,KAAWva,EAAMnG,QAAUotC,EAASptC,OAC/CqtC,GAAQvqB,EAAK,QAAS3c,EAAMnG,OAElBotC,EACNrzB,EAAQ5T,EAAMlG,MACZkkC,GAAQlkC,GACV6iB,EAAIwqB,kBAAkBpJ,GAASE,GAAankC,IAClC4jC,GAAiB5jC,IAC3B6iB,EAAI2oB,gBAAgBxrC,KAM5B,SAASotC,GAASjwC,EAAI6C,EAAKD,GACrB5C,EAAGuoC,QAAQ18B,QAAQ,MAAQ,EAC7BskC,GAAYnwC,EAAI6C,EAAKD,GACZikC,GAAchkC,GAGnB+jC,GAAiBhkC,GACnB5C,EAAGquC,gBAAgBxrC,IAInBD,EAAgB,oBAARC,GAA4C,UAAf7C,EAAGuoC,QACpC,OACA1lC,EACJ7C,EAAGyoC,aAAa5lC,EAAKD,IAEd6jC,GAAiB5jC,GAC1B7C,EAAGyoC,aAAa5lC,EAAK8jC,GAAuB9jC,EAAKD,IACxCmkC,GAAQlkC,GACb+jC,GAAiBhkC,GACnB5C,EAAGkwC,kBAAkBpJ,GAASE,GAAankC,IAE3C7C,EAAGowC,eAAetJ,GAASjkC,EAAKD,GAGlCutC,GAAYnwC,EAAI6C,EAAKD,GAIzB,SAASutC,GAAanwC,EAAI6C,EAAKD,GAC7B,GAAIgkC,GAAiBhkC,GACnB5C,EAAGquC,gBAAgBxrC,OACd,CAKL,GACEugB,KAASC,IACM,aAAfrjB,EAAGuoC,SACK,gBAAR1lC,GAAmC,KAAVD,IAAiB5C,EAAGqwC,OAC7C,CACA,IAAIC,EAAU,SAAU9pC,GACtBA,EAAE+pC,2BACFvwC,EAAGwwC,oBAAoB,QAASF,IAElCtwC,EAAG4jB,iBAAiB,QAAS0sB,GAE7BtwC,EAAGqwC,QAAS,EAEdrwC,EAAGyoC,aAAa5lC,EAAKD,IAIzB,IAAImG,GAAQ,CACVkV,OAAQ6xB,GACRzqB,OAAQyqB,IAKV,SAASW,GAAavZ,EAAUjQ,GAC9B,IAAIjnB,EAAKinB,EAAMvB,IACX7lB,EAAOonB,EAAMpnB,KACb6wC,EAAUxZ,EAASr3B,KACvB,KACE8c,EAAQ9c,EAAKgJ,cACb8T,EAAQ9c,EAAKiJ,SACX6T,EAAQ+zB,IACN/zB,EAAQ+zB,EAAQ7nC,cAChB8T,EAAQ+zB,EAAQ5nC,SALtB,CAYA,IAAI6nC,EAAM1J,GAAiBhgB,GAGvB2pB,EAAkB5wC,EAAG6wC,mBACrBh0B,EAAM+zB,KACRD,EAAM3zC,GAAO2zC,EAAKpJ,GAAeqJ,KAI/BD,IAAQ3wC,EAAG8wC,aACb9wC,EAAGyoC,aAAa,QAASkI,GACzB3wC,EAAG8wC,WAAaH,IAIpB,IAyCII,GAzCAC,GAAQ,CACV/yB,OAAQwyB,GACRprB,OAAQorB,IAaNQ,GAAc,MACdC,GAAuB,MAQ3B,SAASC,GAAiBrxC,GAExB,GAAI+c,EAAM/c,EAAGmxC,KAAe,CAE1B,IAAI5hB,EAAQjM,GAAO,SAAW,QAC9BtjB,EAAGuvB,GAAS,GAAGryB,OAAO8C,EAAGmxC,IAAcnxC,EAAGuvB,IAAU,WAC7CvvB,EAAGmxC,IAKRp0B,EAAM/c,EAAGoxC,OACXpxC,EAAGsxC,OAAS,GAAGp0C,OAAO8C,EAAGoxC,IAAuBpxC,EAAGsxC,QAAU,WACtDtxC,EAAGoxC,KAMd,SAASG,GAAqBhiB,EAAOxf,EAAS8c,GAC5C,IAAIqP,EAAU+U,GACd,OAAO,SAAS9U,IACd,IAAIh2B,EAAM4J,EAAQ3U,MAAM,KAAMC,WAClB,OAAR8K,GACFqrC,GAASjiB,EAAO4M,EAAatP,EAASqP,IAQ5C,IAAIuV,GAAkBrkB,MAAsB1J,IAAQhc,OAAOgc,GAAK,KAAO,IAEvE,SAASguB,GACPrzC,EACA0R,EACA8c,EACA+B,GAQA,GAAI6iB,GAAiB,CACnB,IAAIE,EAAoB1S,GACpBxX,EAAW1X,EACfA,EAAU0X,EAASmqB,SAAW,SAAUlrC,GACtC,GAIEA,EAAE9K,SAAW8K,EAAEmrC,eAEfnrC,EAAE24B,WAAasS,GAIfjrC,EAAE24B,WAAa,GAIf34B,EAAE9K,OAAOk2C,gBAAkBpjC,SAE3B,OAAO+Y,EAASrsB,MAAMa,KAAMZ,YAIlC41C,GAASntB,iBACPzlB,EACA0R,EACA6T,GACI,CAAEiJ,QAASA,EAAS+B,QAASA,GAC7B/B,GAIR,SAAS2kB,GACPnzC,EACA0R,EACA8c,EACAqP,IAECA,GAAW+U,IAAUP,oBACpBryC,EACA0R,EAAQ6hC,UAAY7hC,EACpB8c,GAIJ,SAASklB,GAAoB3a,EAAUjQ,GACrC,IAAItK,EAAQua,EAASr3B,KAAKC,MAAO6c,EAAQsK,EAAMpnB,KAAKC,IAApD,CAGA,IAAIA,EAAKmnB,EAAMpnB,KAAKC,IAAM,GACtBmvB,EAAQiI,EAASr3B,KAAKC,IAAM,GAChCixC,GAAW9pB,EAAMvB,IACjByrB,GAAgBrxC,GAChBkvB,GAAgBlvB,EAAImvB,EAAOuiB,GAAOF,GAAUD,GAAqBpqB,EAAMrnB,SACvEmxC,QAAWl2C,GAGb,IAOIi3C,GAPAC,GAAS,CACX9zB,OAAQ4zB,GACRxsB,OAAQwsB,IAOV,SAASG,GAAgB9a,EAAUjQ,GACjC,IAAItK,EAAQua,EAASr3B,KAAKszB,YAAaxW,EAAQsK,EAAMpnB,KAAKszB,UAA1D,CAGA,IAAItwB,EAAK2pB,EACL9G,EAAMuB,EAAMvB,IACZusB,EAAW/a,EAASr3B,KAAKszB,UAAY,GACrCh0B,EAAQ8nB,EAAMpnB,KAAKszB,UAAY,GAMnC,IAAKtwB,KAJDga,EAAM1d,EAAMwoB,UACdxoB,EAAQ8nB,EAAMpnB,KAAKszB,SAAWvT,EAAO,GAAIzgB,IAG/B8yC,EACJpvC,KAAO1D,IACXumB,EAAI7iB,GAAO,IAIf,IAAKA,KAAO1D,EAAO,CAKjB,GAJAqtB,EAAMrtB,EAAM0D,GAIA,gBAARA,GAAiC,cAARA,EAAqB,CAEhD,GADIokB,EAAM5c,WAAY4c,EAAM5c,SAASzP,OAAS,GAC1C4xB,IAAQylB,EAASpvC,GAAQ,SAGC,IAA1B6iB,EAAIwsB,WAAWt3C,QACjB8qB,EAAIsjB,YAAYtjB,EAAIwsB,WAAW,IAInC,GAAY,UAARrvC,GAAmC,aAAhB6iB,EAAI6iB,QAAwB,CAGjD7iB,EAAIysB,OAAS3lB,EAEb,IAAI4lB,EAASz1B,EAAQ6P,GAAO,GAAKhyB,OAAOgyB,GACpC6lB,GAAkB3sB,EAAK0sB,KACzB1sB,EAAI9iB,MAAQwvC,QAET,GAAY,cAARvvC,GAAuBklC,GAAMriB,EAAI6iB,UAAY5rB,EAAQ+I,EAAImoB,WAAY,CAE9EiE,GAAeA,IAAgBtjC,SAASvM,cAAc,OACtD6vC,GAAajE,UAAY,QAAUrhB,EAAM,SACzC,IAAIob,EAAMkK,GAAa/D,WACvB,MAAOroB,EAAIqoB,WACTroB,EAAIsjB,YAAYtjB,EAAIqoB,YAEtB,MAAOnG,EAAImG,WACTroB,EAAIujB,YAAYrB,EAAImG,iBAEjB,GAKLvhB,IAAQylB,EAASpvC,GAIjB,IACE6iB,EAAI7iB,GAAO2pB,EACX,MAAOhmB,QAQf,SAAS6rC,GAAmB3sB,EAAK4sB,GAC/B,OAAS5sB,EAAI6sB,YACK,WAAhB7sB,EAAI6iB,SACJiK,GAAqB9sB,EAAK4sB,IAC1BG,GAAqB/sB,EAAK4sB,IAI9B,SAASE,GAAsB9sB,EAAK4sB,GAGlC,IAAII,GAAa,EAGjB,IAAMA,EAAalkC,SAASmkC,gBAAkBjtB,EAAO,MAAOlf,KAC5D,OAAOksC,GAAchtB,EAAI9iB,QAAU0vC,EAGrC,SAASG,GAAsB/sB,EAAK0D,GAClC,IAAIxmB,EAAQ8iB,EAAI9iB,MACZ8sC,EAAYhqB,EAAIktB,YACpB,GAAI/1B,EAAM6yB,GAAY,CACpB,GAAIA,EAAUmD,OACZ,OAAOj1B,EAAShb,KAAWgb,EAASwL,GAEtC,GAAIsmB,EAAUoD,KACZ,OAAOlwC,EAAMkwC,SAAW1pB,EAAO0pB,OAGnC,OAAOlwC,IAAUwmB,EAGnB,IAAI+J,GAAW,CACblV,OAAQ+zB,GACR3sB,OAAQ2sB,IAKNe,GAAiBv0B,GAAO,SAAUw0B,GACpC,IAAI/sC,EAAM,GACNgtC,EAAgB,gBAChBC,EAAoB,QAOxB,OANAF,EAAQnuC,MAAMouC,GAAetwC,SAAQ,SAAU0b,GAC7C,GAAIA,EAAM,CACR,IAAIqiB,EAAMriB,EAAKxZ,MAAMquC,GACrBxS,EAAI9lC,OAAS,IAAMqL,EAAIy6B,EAAI,GAAGoS,QAAUpS,EAAI,GAAGoS,YAG5C7sC,KAIT,SAASktC,GAAoBtzC,GAC3B,IAAI6J,EAAQ0pC,GAAsBvzC,EAAK6J,OAGvC,OAAO7J,EAAKwzC,YACRzzB,EAAO/f,EAAKwzC,YAAa3pC,GACzBA,EAIN,SAAS0pC,GAAuBE,GAC9B,OAAIl1C,MAAM6a,QAAQq6B,GACTh4C,EAASg4C,GAEU,kBAAjBA,EACFP,GAAeO,GAEjBA,EAOT,SAASC,GAAUtsB,EAAOusB,GACxB,IACIC,EADAxtC,EAAM,GAGV,GAAIutC,EAAY,CACd,IAAIrM,EAAYlgB,EAChB,MAAOkgB,EAAUlhB,kBACfkhB,EAAYA,EAAUlhB,kBAAkB0T,OAEtCwN,GAAaA,EAAUtnC,OACtB4zC,EAAYN,GAAmBhM,EAAUtnC,QAE1C+f,EAAO3Z,EAAKwtC,IAKbA,EAAYN,GAAmBlsB,EAAMpnB,QACxC+f,EAAO3Z,EAAKwtC,GAGd,IAAIvM,EAAajgB,EACjB,MAAQigB,EAAaA,EAAW/uB,OAC1B+uB,EAAWrnC,OAAS4zC,EAAYN,GAAmBjM,EAAWrnC,QAChE+f,EAAO3Z,EAAKwtC,GAGhB,OAAOxtC,EAKT,IAyBIytC,GAzBAC,GAAW,MACXC,GAAc,iBACdC,GAAU,SAAU7zC,EAAI7B,EAAM2I,GAEhC,GAAI6sC,GAASt5C,KAAK8D,GAChB6B,EAAG0J,MAAMoqC,YAAY31C,EAAM2I,QACtB,GAAI8sC,GAAYv5C,KAAKyM,GAC1B9G,EAAG0J,MAAMoqC,YAAY50B,EAAU/gB,GAAO2I,EAAI4L,QAAQkhC,GAAa,IAAK,iBAC/D,CACL,IAAIG,EAAiBt4B,GAAUtd,GAC/B,GAAIC,MAAM6a,QAAQnS,GAIhB,IAAK,IAAIpK,EAAI,EAAG8qB,EAAM1gB,EAAIlM,OAAQ8B,EAAI8qB,EAAK9qB,IACzCsD,EAAG0J,MAAMqqC,GAAkBjtC,EAAIpK,QAGjCsD,EAAG0J,MAAMqqC,GAAkBjtC,IAK7BktC,GAAc,CAAC,SAAU,MAAO,MAGhCv4B,GAAY+C,GAAO,SAAUkN,GAG/B,GAFAgoB,GAAaA,IAAcllC,SAASvM,cAAc,OAAOyH,MACzDgiB,EAAO9M,EAAS8M,GACH,WAATA,GAAsBA,KAAQgoB,GAChC,OAAOhoB,EAGT,IADA,IAAIuoB,EAAUvoB,EAAK1M,OAAO,GAAGF,cAAgB4M,EAAKvvB,MAAM,GAC/CO,EAAI,EAAGA,EAAIs3C,GAAYp5C,OAAQ8B,IAAK,CAC3C,IAAIyB,EAAO61C,GAAYt3C,GAAKu3C,EAC5B,GAAI91C,KAAQu1C,GACV,OAAOv1C,MAKb,SAAS+1C,GAAahd,EAAUjQ,GAC9B,IAAIpnB,EAAOonB,EAAMpnB,KACb6wC,EAAUxZ,EAASr3B,KAEvB,KAAI8c,EAAQ9c,EAAKwzC,cAAgB12B,EAAQ9c,EAAK6J,QAC5CiT,EAAQ+zB,EAAQ2C,cAAgB12B,EAAQ+zB,EAAQhnC,QADlD,CAMA,IAAI8iB,EAAKruB,EACL6B,EAAKinB,EAAMvB,IACXyuB,EAAiBzD,EAAQ2C,YACzBe,EAAkB1D,EAAQ2D,iBAAmB3D,EAAQhnC,OAAS,GAG9D4qC,EAAWH,GAAkBC,EAE7B1qC,EAAQ0pC,GAAsBnsB,EAAMpnB,KAAK6J,QAAU,GAKvDud,EAAMpnB,KAAKw0C,gBAAkBx3B,EAAMnT,EAAMie,QACrC/H,EAAO,GAAIlW,GACXA,EAEJ,IAAI6qC,EAAWhB,GAAStsB,GAAO,GAE/B,IAAK9oB,KAAQm2C,EACP33B,EAAQ43B,EAASp2C,KACnB01C,GAAQ7zC,EAAI7B,EAAM,IAGtB,IAAKA,KAAQo2C,EACX/nB,EAAM+nB,EAASp2C,GACXquB,IAAQ8nB,EAASn2C,IAEnB01C,GAAQ7zC,EAAI7B,EAAa,MAAPquB,EAAc,GAAKA,IAK3C,IAAI9iB,GAAQ,CACVuU,OAAQi2B,GACR7uB,OAAQ6uB,IAKNM,GAAe,MAMnB,SAASC,GAAUz0C,EAAI2wC,GAErB,GAAKA,IAASA,EAAMA,EAAImC,QAKxB,GAAI9yC,EAAG00C,UACD/D,EAAI9kC,QAAQ,MAAQ,EACtB8kC,EAAI9rC,MAAM2vC,IAAc7xC,SAAQ,SAAU1H,GAAK,OAAO+E,EAAG00C,UAAUp8B,IAAIrd,MAEvE+E,EAAG00C,UAAUp8B,IAAIq4B,OAEd,CACL,IAAInkB,EAAM,KAAOxsB,EAAG20C,aAAa,UAAY,IAAM,IAC/CnoB,EAAI3gB,QAAQ,IAAM8kC,EAAM,KAAO,GACjC3wC,EAAGyoC,aAAa,SAAUjc,EAAMmkB,GAAKmC,SAS3C,SAAS8B,GAAa50C,EAAI2wC,GAExB,GAAKA,IAASA,EAAMA,EAAImC,QAKxB,GAAI9yC,EAAG00C,UACD/D,EAAI9kC,QAAQ,MAAQ,EACtB8kC,EAAI9rC,MAAM2vC,IAAc7xC,SAAQ,SAAU1H,GAAK,OAAO+E,EAAG00C,UAAUt2B,OAAOnjB,MAE1E+E,EAAG00C,UAAUt2B,OAAOuyB,GAEjB3wC,EAAG00C,UAAU95C,QAChBoF,EAAGquC,gBAAgB,aAEhB,CACL,IAAI7hB,EAAM,KAAOxsB,EAAG20C,aAAa,UAAY,IAAM,IAC/CE,EAAM,IAAMlE,EAAM,IACtB,MAAOnkB,EAAI3gB,QAAQgpC,IAAQ,EACzBroB,EAAMA,EAAI9Z,QAAQmiC,EAAK,KAEzBroB,EAAMA,EAAIsmB,OACNtmB,EACFxsB,EAAGyoC,aAAa,QAASjc,GAEzBxsB,EAAGquC,gBAAgB,UAOzB,SAASyG,GAAmBlqB,GAC1B,GAAKA,EAAL,CAIA,GAAsB,kBAAXA,EAAqB,CAC9B,IAAI3kB,EAAM,GAKV,OAJmB,IAAf2kB,EAAOmqB,KACTn1B,EAAO3Z,EAAK+uC,GAAkBpqB,EAAOzsB,MAAQ,MAE/CyhB,EAAO3Z,EAAK2kB,GACL3kB,EACF,MAAsB,kBAAX2kB,EACToqB,GAAkBpqB,QADpB,GAKT,IAAIoqB,GAAoBx2B,GAAO,SAAUrgB,GACvC,MAAO,CACL82C,WAAa92C,EAAO,SACpB+2C,aAAe/2C,EAAO,YACtBg3C,iBAAmBh3C,EAAO,gBAC1Bi3C,WAAaj3C,EAAO,SACpBk3C,aAAel3C,EAAO,YACtBm3C,iBAAmBn3C,EAAO,oBAI1Bo3C,GAAgB1yB,IAAcQ,GAC9BmyB,GAAa,aACbC,GAAY,YAGZC,GAAiB,aACjBC,GAAqB,gBACrBC,GAAgB,YAChBC,GAAoB,eACpBN,UAE6B16C,IAA3B0C,OAAOu4C,sBACwBj7C,IAAjC0C,OAAOw4C,wBAEPL,GAAiB,mBACjBC,GAAqB,4BAEO96C,IAA1B0C,OAAOy4C,qBACuBn7C,IAAhC0C,OAAO04C,uBAEPL,GAAgB,kBAChBC,GAAoB,uBAKxB,IAAIK,GAAMrzB,EACNtlB,OAAOuD,sBACLvD,OAAOuD,sBAAsBjE,KAAKU,QAClCmT,WACyB,SAAUhW,GAAM,OAAOA,KAEtD,SAASy7C,GAAWz7C,GAClBw7C,IAAI,WACFA,GAAIx7C,MAIR,SAAS07C,GAAoBp2C,EAAI2wC,GAC/B,IAAI0F,EAAoBr2C,EAAG6wC,qBAAuB7wC,EAAG6wC,mBAAqB,IACtEwF,EAAkBxqC,QAAQ8kC,GAAO,IACnC0F,EAAkBlyC,KAAKwsC,GACvB8D,GAASz0C,EAAI2wC,IAIjB,SAAS2F,GAAuBt2C,EAAI2wC,GAC9B3wC,EAAG6wC,oBACLzyB,EAAOpe,EAAG6wC,mBAAoBF,GAEhCiE,GAAY50C,EAAI2wC,GAGlB,SAAS4F,GACPv2C,EACAw2C,EACA7lC,GAEA,IAAInB,EAAMinC,GAAkBz2C,EAAIw2C,GAC5Bn3C,EAAOmQ,EAAInQ,KACXm8B,EAAUhsB,EAAIgsB,QACdkb,EAAYlnC,EAAIknC,UACpB,IAAKr3C,EAAQ,OAAOsR,IACpB,IAAI0e,EAAQhwB,IAASm2C,GAAaG,GAAqBE,GACnDc,EAAQ,EACRtJ,EAAM,WACRrtC,EAAGwwC,oBAAoBnhB,EAAOunB,GAC9BjmC,KAEEimC,EAAQ,SAAUpwC,GAChBA,EAAE9K,SAAWsE,KACT22C,GAASD,GACbrJ,KAIN38B,YAAW,WACLimC,EAAQD,GACVrJ,MAED7R,EAAU,GACbx7B,EAAG4jB,iBAAiByL,EAAOunB,GAG7B,IAAIC,GAAc,yBAElB,SAASJ,GAAmBz2C,EAAIw2C,GAC9B,IASIn3C,EATA4T,EAAS1V,OAAOu5C,iBAAiB92C,GAEjC+2C,GAAoB9jC,EAAOyiC,GAAiB,UAAY,IAAI7wC,MAAM,MAClEmyC,GAAuB/jC,EAAOyiC,GAAiB,aAAe,IAAI7wC,MAAM,MACxEoyC,EAAoBC,GAAWH,EAAkBC,GACjDG,GAAmBlkC,EAAO2iC,GAAgB,UAAY,IAAI/wC,MAAM,MAChEuyC,GAAsBnkC,EAAO2iC,GAAgB,aAAe,IAAI/wC,MAAM,MACtEwyC,EAAmBH,GAAWC,EAAiBC,GAG/C5b,EAAU,EACVkb,EAAY,EAEZF,IAAiBhB,GACfyB,EAAoB,IACtB53C,EAAOm2C,GACPha,EAAUyb,EACVP,EAAYM,EAAoBp8C,QAEzB47C,IAAiBf,GACtB4B,EAAmB,IACrBh4C,EAAOo2C,GACPja,EAAU6b,EACVX,EAAYU,EAAmBx8C,SAGjC4gC,EAAUn3B,KAAK4Q,IAAIgiC,EAAmBI,GACtCh4C,EAAOm8B,EAAU,EACbyb,EAAoBI,EAClB7B,GACAC,GACF,KACJiB,EAAYr3C,EACRA,IAASm2C,GACPwB,EAAoBp8C,OACpBw8C,EAAmBx8C,OACrB,GAEN,IAAI08C,EACFj4C,IAASm2C,IACTqB,GAAYx8C,KAAK4Y,EAAOyiC,GAAiB,aAC3C,MAAO,CACLr2C,KAAMA,EACNm8B,QAASA,EACTkb,UAAWA,EACXY,aAAcA,GAIlB,SAASJ,GAAYK,EAAQC,GAE3B,MAAOD,EAAO38C,OAAS48C,EAAU58C,OAC/B28C,EAASA,EAAOv6C,OAAOu6C,GAGzB,OAAOlzC,KAAK4Q,IAAI/Z,MAAM,KAAMs8C,EAAUx5B,KAAI,SAAU/T,EAAGvN,GACrD,OAAO+6C,GAAKxtC,GAAKwtC,GAAKF,EAAO76C,QAQjC,SAAS+6C,GAAMC,GACb,OAAkD,IAA3ClwC,OAAOkwC,EAAEv7C,MAAM,GAAI,GAAGuW,QAAQ,IAAK,MAK5C,SAAS/R,GAAOsmB,EAAO0wB,GACrB,IAAI33C,EAAKinB,EAAMvB,IAGX7I,EAAM7c,EAAGuuC,YACXvuC,EAAGuuC,SAASqJ,WAAY,EACxB53C,EAAGuuC,YAGL,IAAI1uC,EAAOi1C,GAAkB7tB,EAAMpnB,KAAKW,YACxC,IAAImc,EAAQ9c,KAKRgd,EAAM7c,EAAG63C,WAA6B,IAAhB73C,EAAGmuC,SAA7B,CAIA,IAAI4G,EAAMl1C,EAAKk1C,IACX11C,EAAOQ,EAAKR,KACZ41C,EAAap1C,EAAKo1C,WAClBC,EAAer1C,EAAKq1C,aACpBC,EAAmBt1C,EAAKs1C,iBACxB2C,EAAcj4C,EAAKi4C,YACnBC,EAAgBl4C,EAAKk4C,cACrBC,EAAoBn4C,EAAKm4C,kBACzBj4C,EAAcF,EAAKE,YACnBY,EAAQd,EAAKc,MACbI,EAAalB,EAAKkB,WAClBC,EAAiBnB,EAAKmB,eACtBi3C,EAAep4C,EAAKo4C,aACpBtoC,EAAS9P,EAAK8P,OACduoC,EAAcr4C,EAAKq4C,YACnBC,EAAkBt4C,EAAKs4C,gBACvBC,EAAWv4C,EAAKu4C,SAMhBx4C,EAAUo3B,GACVqhB,EAAiBrhB,GAAe/e,OACpC,MAAOogC,GAAkBA,EAAelgC,OACtCvY,EAAUy4C,EAAez4C,QACzBy4C,EAAiBA,EAAelgC,OAGlC,IAAImgC,GAAY14C,EAAQy3B,aAAepQ,EAAMb,aAE7C,IAAIkyB,GAAa3oC,GAAqB,KAAXA,EAA3B,CAIA,IAAI4oC,EAAaD,GAAYR,EACzBA,EACA7C,EACA9iC,EAAcmmC,GAAYN,EAC1BA,EACA7C,EACAqD,EAAUF,GAAYP,EACtBA,EACA7C,EAEAuD,EAAkBH,GACjBL,GACDl4C,EACA24C,EAAYJ,GACO,oBAAX3oC,EAAwBA,EAChChP,EACAg4C,EAAiBL,GAChBJ,GACDn3C,EACA63C,EAAqBN,GACpBH,GACDn3C,EAEA63C,EAAwBj7B,EAC1B1hB,EAASk8C,GACLA,EAASz3C,MACTy3C,GAGF,EAIJ,IAAIU,GAAqB,IAAR/D,IAAkB1xB,GAC/B01B,EAAmBC,GAAuBN,GAE1C/nC,EAAK3Q,EAAG63C,SAAWj3B,GAAK,WACtBk4B,IACFxC,GAAsBt2C,EAAIw4C,GAC1BlC,GAAsBt2C,EAAImS,IAExBxB,EAAGinC,WACDkB,GACFxC,GAAsBt2C,EAAIu4C,GAE5BK,GAAsBA,EAAmB54C,IAEzC24C,GAAkBA,EAAe34C,GAEnCA,EAAG63C,SAAW,QAGX5wB,EAAMpnB,KAAK4O,MAEd8gB,GAAetI,EAAO,UAAU,WAC9B,IAAI9O,EAASnY,EAAGknC,WACZ+R,EAAc9gC,GAAUA,EAAO+gC,UAAY/gC,EAAO+gC,SAASjyB,EAAMpkB,KACjEo2C,GACFA,EAAYt5C,MAAQsnB,EAAMtnB,KAC1Bs5C,EAAYvzB,IAAI6oB,UAEhB0K,EAAYvzB,IAAI6oB,WAElBmK,GAAaA,EAAU14C,EAAI2Q,MAK/B8nC,GAAmBA,EAAgBz4C,GAC/B84C,IACF1C,GAAmBp2C,EAAIu4C,GACvBnC,GAAmBp2C,EAAImS,GACvBgkC,IAAU,WACRG,GAAsBt2C,EAAIu4C,GACrB5nC,EAAGinC,YACNxB,GAAmBp2C,EAAIw4C,GAClBO,IACCI,GAAgBN,GAClBnoC,WAAWC,EAAIkoC,GAEftC,GAAmBv2C,EAAIX,EAAMsR,SAOnCsW,EAAMpnB,KAAK4O,OACbkpC,GAAiBA,IACjBe,GAAaA,EAAU14C,EAAI2Q,IAGxBmoC,GAAeC,GAClBpoC,MAIJ,SAAS1P,GAAOgmB,EAAOilB,GACrB,IAAIlsC,EAAKinB,EAAMvB,IAGX7I,EAAM7c,EAAG63C,YACX73C,EAAG63C,SAASD,WAAY,EACxB53C,EAAG63C,YAGL,IAAIh4C,EAAOi1C,GAAkB7tB,EAAMpnB,KAAKW,YACxC,GAAImc,EAAQ9c,IAAyB,IAAhBG,EAAGmuC,SACtB,OAAOjC,IAIT,IAAIrvB,EAAM7c,EAAGuuC,UAAb,CAIA,IAAIwG,EAAMl1C,EAAKk1C,IACX11C,EAAOQ,EAAKR,KACZ+1C,EAAav1C,EAAKu1C,WAClBC,EAAex1C,EAAKw1C,aACpBC,EAAmBz1C,EAAKy1C,iBACxB8D,EAAcv5C,EAAKu5C,YACnBn4C,EAAQpB,EAAKoB,MACbC,EAAarB,EAAKqB,WAClBC,EAAiBtB,EAAKsB,eACtBk4C,EAAax5C,EAAKw5C,WAClBjB,EAAWv4C,EAAKu4C,SAEhBU,GAAqB,IAAR/D,IAAkB1xB,GAC/B01B,EAAmBC,GAAuB/3C,GAE1Cq4C,EAAwB17B,EAC1B1hB,EAASk8C,GACLA,EAASn3C,MACTm3C,GAGF,EAIJ,IAAIznC,EAAK3Q,EAAGuuC,SAAW3tB,GAAK,WACtB5gB,EAAGknC,YAAclnC,EAAGknC,WAAWgS,WACjCl5C,EAAGknC,WAAWgS,SAASjyB,EAAMpkB,KAAO,MAElCi2C,IACFxC,GAAsBt2C,EAAIq1C,GAC1BiB,GAAsBt2C,EAAIs1C,IAExB3kC,EAAGinC,WACDkB,GACFxC,GAAsBt2C,EAAIo1C,GAE5Bj0C,GAAkBA,EAAenB,KAEjCksC,IACAhrC,GAAcA,EAAWlB,IAE3BA,EAAGuuC,SAAW,QAGZ8K,EACFA,EAAWE,GAEXA,IAGF,SAASA,IAEH5oC,EAAGinC,aAIF3wB,EAAMpnB,KAAK4O,MAAQzO,EAAGknC,cACxBlnC,EAAGknC,WAAWgS,WAAal5C,EAAGknC,WAAWgS,SAAW,KAAMjyB,EAAS,KAAKA,GAE3EmyB,GAAeA,EAAYp5C,GACvB84C,IACF1C,GAAmBp2C,EAAIo1C,GACvBgB,GAAmBp2C,EAAIs1C,GACvBa,IAAU,WACRG,GAAsBt2C,EAAIo1C,GACrBzkC,EAAGinC,YACNxB,GAAmBp2C,EAAIq1C,GAClB0D,IACCI,GAAgBG,GAClB5oC,WAAWC,EAAI2oC,GAEf/C,GAAmBv2C,EAAIX,EAAMsR,SAMvC1P,GAASA,EAAMjB,EAAI2Q,GACdmoC,GAAeC,GAClBpoC,MAsBN,SAASwoC,GAAiBryC,GACxB,MAAsB,kBAARA,IAAqB+W,MAAM/W,GAS3C,SAASkyC,GAAwBt+C,GAC/B,GAAIiiB,EAAQjiB,GACV,OAAO,EAET,IAAI8+C,EAAa9+C,EAAGm0B,IACpB,OAAIhS,EAAM28B,GAEDR,GACL56C,MAAM6a,QAAQugC,GACVA,EAAW,GACXA,IAGE9+C,EAAG6kB,SAAW7kB,EAAGE,QAAU,EAIvC,SAAS6+C,GAAQ56B,EAAGoI,IACM,IAApBA,EAAMpnB,KAAK4O,MACb9N,GAAMsmB,GAIV,IAAIzmB,GAAaqiB,EAAY,CAC3B5E,OAAQw7B,GACRhO,SAAUgO,GACVr7B,OAAQ,SAAoB6I,EAAOilB,IAET,IAApBjlB,EAAMpnB,KAAK4O,KACbxN,GAAMgmB,EAAOilB,GAEbA,MAGF,GAEAwN,GAAkB,CACpB3wC,GACAioC,GACAe,GACA5e,GACAzpB,GACAlJ,IAOE6pC,GAAUqP,GAAgB18C,OAAO6yC,IAEjC8J,GAAQxP,GAAoB,CAAEb,QAASA,GAASe,QAASA,KAQzDhnB,IAEF7U,SAASoV,iBAAiB,mBAAmB,WAC3C,IAAI5jB,EAAKwO,SAASmkC,cACd3yC,GAAMA,EAAG45C,QACXC,GAAQ75C,EAAI,YAKlB,IAAI85C,GAAY,CACdryB,SAAU,SAAmBznB,EAAI+5C,EAAS9yB,EAAOiQ,GAC7B,WAAdjQ,EAAMtnB,KAEJu3B,EAASxR,MAAQwR,EAASxR,IAAIs0B,UAChCzqB,GAAetI,EAAO,aAAa,WACjC6yB,GAAUvK,iBAAiBvvC,EAAI+5C,EAAS9yB,MAG1CgzB,GAAYj6C,EAAI+5C,EAAS9yB,EAAMrnB,SAEjCI,EAAGg6C,UAAY,GAAGh8B,IAAIljB,KAAKkF,EAAGuV,QAAS2kC,MAChB,aAAdjzB,EAAMtnB,KAAsBwoC,GAAgBnoC,EAAGX,SACxDW,EAAG4yC,YAAcmH,EAAQrK,UACpBqK,EAAQrK,UAAUxP,OACrBlgC,EAAG4jB,iBAAiB,mBAAoBu2B,IACxCn6C,EAAG4jB,iBAAiB,iBAAkBw2B,IAKtCp6C,EAAG4jB,iBAAiB,SAAUw2B,IAE1B/2B,KACFrjB,EAAG45C,QAAS,MAMpBrK,iBAAkB,SAA2BvvC,EAAI+5C,EAAS9yB,GACxD,GAAkB,WAAdA,EAAMtnB,IAAkB,CAC1Bs6C,GAAYj6C,EAAI+5C,EAAS9yB,EAAMrnB,SAK/B,IAAIy6C,EAAcr6C,EAAGg6C,UACjBM,EAAat6C,EAAGg6C,UAAY,GAAGh8B,IAAIljB,KAAKkF,EAAGuV,QAAS2kC,IACxD,GAAII,EAAWzzC,MAAK,SAAU/I,EAAGpB,GAAK,OAAQujB,EAAWniB,EAAGu8C,EAAY39C,OAAS,CAG/E,IAAI69C,EAAYv6C,EAAGwoC,SACfuR,EAAQn3C,MAAMiE,MAAK,SAAU+V,GAAK,OAAO49B,GAAoB59B,EAAG09B,MAChEP,EAAQn3C,QAAUm3C,EAAQpZ,UAAY6Z,GAAoBT,EAAQn3C,MAAO03C,GACzEC,GACFV,GAAQ75C,EAAI,cAOtB,SAASi6C,GAAaj6C,EAAI+5C,EAASlwB,GACjC4wB,GAAoBz6C,EAAI+5C,EAASlwB,IAE7BzG,IAAQE,KACV5S,YAAW,WACT+pC,GAAoBz6C,EAAI+5C,EAASlwB,KAChC,GAIP,SAAS4wB,GAAqBz6C,EAAI+5C,EAASlwB,GACzC,IAAIjnB,EAAQm3C,EAAQn3C,MAChB83C,EAAa16C,EAAGwoC,SACpB,IAAIkS,GAAet8C,MAAM6a,QAAQrW,GAAjC,CASA,IADA,IAAIwlC,EAAUuS,EACLj+C,EAAI,EAAG4iB,EAAItf,EAAGuV,QAAQ3a,OAAQ8B,EAAI4iB,EAAG5iB,IAE5C,GADAi+C,EAAS36C,EAAGuV,QAAQ7Y,GAChBg+C,EACFtS,EAAWznB,EAAa/d,EAAOs3C,GAASS,KAAY,EAChDA,EAAOvS,WAAaA,IACtBuS,EAAOvS,SAAWA,QAGpB,GAAInoB,EAAWi6B,GAASS,GAAS/3C,GAI/B,YAHI5C,EAAG46C,gBAAkBl+C,IACvBsD,EAAG46C,cAAgBl+C,IAMtBg+C,IACH16C,EAAG46C,eAAiB,IAIxB,SAASJ,GAAqB53C,EAAO2S,GACnC,OAAOA,EAAQ+K,OAAM,SAAUxiB,GAAK,OAAQmiB,EAAWniB,EAAG8E,MAG5D,SAASs3C,GAAUS,GACjB,MAAO,WAAYA,EACfA,EAAOxI,OACPwI,EAAO/3C,MAGb,SAASu3C,GAAoB3zC,GAC3BA,EAAE9K,OAAO62C,WAAY,EAGvB,SAAS6H,GAAkB5zC,GAEpBA,EAAE9K,OAAO62C,YACd/rC,EAAE9K,OAAO62C,WAAY,EACrBsH,GAAQrzC,EAAE9K,OAAQ,UAGpB,SAASm+C,GAAS75C,EAAIX,GACpB,IAAImH,EAAIgI,SAAS0wB,YAAY,cAC7B14B,EAAEq0C,UAAUx7C,GAAM,GAAM,GACxBW,EAAG86C,cAAct0C,GAMnB,SAASu0C,GAAY9zB,GACnB,OAAOA,EAAMhB,mBAAuBgB,EAAMpnB,MAASonB,EAAMpnB,KAAKW,WAE1DymB,EADA8zB,GAAW9zB,EAAMhB,kBAAkB0T,QAIzC,IAAIlrB,GAAO,CACT5R,KAAM,SAAemD,EAAIwP,EAAKyX,GAC5B,IAAIrkB,EAAQ4M,EAAI5M,MAEhBqkB,EAAQ8zB,GAAW9zB,GACnB,IAAI+zB,EAAgB/zB,EAAMpnB,MAAQonB,EAAMpnB,KAAKW,WACzCy6C,EAAkBj7C,EAAGk7C,mBACF,SAArBl7C,EAAG0J,MAAMyxC,QAAqB,GAAKn7C,EAAG0J,MAAMyxC,QAC1Cv4C,GAASo4C,GACX/zB,EAAMpnB,KAAK4O,MAAO,EAClB9N,GAAMsmB,GAAO,WACXjnB,EAAG0J,MAAMyxC,QAAUF,MAGrBj7C,EAAG0J,MAAMyxC,QAAUv4C,EAAQq4C,EAAkB,QAIjD51B,OAAQ,SAAiBrlB,EAAIwP,EAAKyX,GAChC,IAAIrkB,EAAQ4M,EAAI5M,MACZ+9B,EAAWnxB,EAAImxB,SAGnB,IAAK/9B,KAAW+9B,EAAhB,CACA1Z,EAAQ8zB,GAAW9zB,GACnB,IAAI+zB,EAAgB/zB,EAAMpnB,MAAQonB,EAAMpnB,KAAKW,WACzCw6C,GACF/zB,EAAMpnB,KAAK4O,MAAO,EACd7L,EACFjC,GAAMsmB,GAAO,WACXjnB,EAAG0J,MAAMyxC,QAAUn7C,EAAGk7C,sBAGxBj6C,GAAMgmB,GAAO,WACXjnB,EAAG0J,MAAMyxC,QAAU,WAIvBn7C,EAAG0J,MAAMyxC,QAAUv4C,EAAQ5C,EAAGk7C,mBAAqB,SAIvDrtC,OAAQ,SACN7N,EACA+5C,EACA9yB,EACAiQ,EACA4X,GAEKA,IACH9uC,EAAG0J,MAAMyxC,QAAUn7C,EAAGk7C,sBAKxBE,GAAqB,CACvBjjB,MAAO2hB,GACPrrC,KAAMA,IAKJ4sC,GAAkB,CACpBl9C,KAAM3D,OACNmV,OAAQ9H,QACRktC,IAAKltC,QACLpI,KAAMjF,OACN6E,KAAM7E,OACNy6C,WAAYz6C,OACZ46C,WAAY56C,OACZ06C,aAAc16C,OACd66C,aAAc76C,OACd26C,iBAAkB36C,OAClB86C,iBAAkB96C,OAClBs9C,YAAat9C,OACbw9C,kBAAmBx9C,OACnBu9C,cAAev9C,OACf49C,SAAU,CAAC5wC,OAAQhN,OAAQgD,SAK7B,SAAS89C,GAAcr0B,GACrB,IAAIs0B,EAAct0B,GAASA,EAAMtB,iBACjC,OAAI41B,GAAeA,EAAYr3B,KAAK3O,QAAQ+iB,SACnCgjB,GAAa7f,GAAuB8f,EAAYlxC,WAEhD4c,EAIX,SAASu0B,GAAuBlhB,GAC9B,IAAIz6B,EAAO,GACP0V,EAAU+kB,EAAK7hB,SAEnB,IAAK,IAAI5V,KAAO0S,EAAQkW,UACtB5rB,EAAKgD,GAAOy3B,EAAKz3B,GAInB,IAAIiZ,EAAYvG,EAAQwkB,iBACxB,IAAK,IAAI3P,KAAStO,EAChBjc,EAAK+e,EAASwL,IAAUtO,EAAUsO,GAEpC,OAAOvqB,EAGT,SAAS47C,GAAax7C,EAAGy7C,GACvB,GAAI,iBAAiBrhD,KAAKqhD,EAAS/7C,KACjC,OAAOM,EAAE,aAAc,CACrBd,MAAOu8C,EAAS/1B,iBAAiB8F,YAKvC,SAASkwB,GAAqB10B,GAC5B,MAAQA,EAAQA,EAAM9O,OACpB,GAAI8O,EAAMpnB,KAAKW,WACb,OAAO,EAKb,SAASo7C,GAAaj1B,EAAOk1B,GAC3B,OAAOA,EAASh5C,MAAQ8jB,EAAM9jB,KAAOg5C,EAASl8C,MAAQgnB,EAAMhnB,IAG9D,IAAIm8C,GAAgB,SAAU7gD,GAAK,OAAOA,EAAE0E,KAAO8mB,GAAmBxrB,IAElE8gD,GAAmB,SAAU9xC,GAAK,MAAkB,SAAXA,EAAE9L,MAE3C69C,GAAa,CACf79C,KAAM,aACNgB,MAAOk8C,GACP/iB,UAAU,EAEV54B,OAAQ,SAAiBO,GACvB,IAAI21B,EAAS75B,KAETsO,EAAWtO,KAAKoM,OAAO7I,QAC3B,GAAK+K,IAKLA,EAAWA,EAASg7B,OAAOyW,IAEtBzxC,EAASzP,QAAd,CAKI,EAQJ,IAAI6E,EAAO1D,KAAK0D,KAGZ,EASJ,IAAIi8C,EAAWrxC,EAAS,GAIxB,GAAIsxC,GAAoB5/C,KAAKkc,QAC3B,OAAOyjC,EAKT,IAAI/0B,EAAQ20B,GAAaI,GAEzB,IAAK/0B,EACH,OAAO+0B,EAGT,GAAI3/C,KAAKkgD,SACP,OAAOR,GAAYx7C,EAAGy7C,GAMxB,IAAI72B,EAAK,gBAAmB9oB,KAAS,KAAI,IACzC4qB,EAAM9jB,IAAmB,MAAb8jB,EAAM9jB,IACd8jB,EAAMN,UACJxB,EAAK,UACLA,EAAK8B,EAAMhnB,IACbqd,EAAY2J,EAAM9jB,KACmB,IAAlCrI,OAAOmsB,EAAM9jB,KAAKgJ,QAAQgZ,GAAY8B,EAAM9jB,IAAMgiB,EAAK8B,EAAM9jB,IAC9D8jB,EAAM9jB,IAEZ,IAAIhD,GAAQ8mB,EAAM9mB,OAAS8mB,EAAM9mB,KAAO,KAAKW,WAAag7C,GAAsBz/C,MAC5EmgD,EAAcngD,KAAK49B,OACnBkiB,EAAWP,GAAaY,GAQ5B,GAJIv1B,EAAM9mB,KAAKuM,YAAcua,EAAM9mB,KAAKuM,WAAWvF,KAAKk1C,MACtDp1B,EAAM9mB,KAAK4O,MAAO,GAIlBotC,GACAA,EAASh8C,OACR+7C,GAAYj1B,EAAOk1B,KACnBp1B,GAAmBo1B,MAElBA,EAAS51B,oBAAqB41B,EAAS51B,kBAAkB0T,OAAOtT,WAClE,CAGA,IAAIqqB,EAAUmL,EAASh8C,KAAKW,WAAaof,EAAO,GAAI/f,GAEpD,GAAa,WAATJ,EAOF,OALA1D,KAAKkgD,UAAW,EAChB1sB,GAAemhB,EAAS,cAAc,WACpC9a,EAAOqmB,UAAW,EAClBrmB,EAAOyF,kBAEFogB,GAAYx7C,EAAGy7C,GACjB,GAAa,WAATj8C,EAAmB,CAC5B,GAAIgnB,GAAmBE,GACrB,OAAOu1B,EAET,IAAIC,EACA5C,EAAe,WAAc4C,KACjC5sB,GAAe1vB,EAAM,aAAc05C,GACnChqB,GAAe1vB,EAAM,iBAAkB05C,GACvChqB,GAAemhB,EAAS,cAAc,SAAUzvC,GAASk7C,EAAel7C,MAI5E,OAAOy6C,KAMPv8C,GAAQygB,EAAO,CACjBjgB,IAAKnF,OACL4hD,UAAW5hD,QACV6gD,WAEIl8C,GAAMM,KAEb,IAAI48C,GAAkB,CACpBl9C,MAAOA,GAEPwO,YAAa,WACX,IAAIioB,EAAS75B,KAETspB,EAAStpB,KAAKmhC,QAClBnhC,KAAKmhC,QAAU,SAAUjW,EAAO0P,GAC9B,IAAI0G,EAAwBZ,GAAkB7G,GAE9CA,EAAO0H,UACL1H,EAAO+D,OACP/D,EAAO0mB,MACP,GACA,GAEF1mB,EAAO+D,OAAS/D,EAAO0mB,KACvBjf,IACAhY,EAAOvqB,KAAK86B,EAAQ3O,EAAO0P,KAI/Bj3B,OAAQ,SAAiBO,GAQvB,IAPA,IAAIN,EAAM5D,KAAK4D,KAAO5D,KAAKkc,OAAOpY,KAAKF,KAAO,OAC1Cqe,EAAMxgB,OAAOygB,OAAO,MACpBs+B,EAAexgD,KAAKwgD,aAAexgD,KAAKsO,SACxCmyC,EAAczgD,KAAKoM,OAAO7I,SAAW,GACrC+K,EAAWtO,KAAKsO,SAAW,GAC3BoyC,EAAiBjB,GAAsBz/C,MAElCW,EAAI,EAAGA,EAAI8/C,EAAY5hD,OAAQ8B,IAAK,CAC3C,IAAIzB,EAAIuhD,EAAY9/C,GACpB,GAAIzB,EAAE0E,IACJ,GAAa,MAAT1E,EAAE4H,KAAoD,IAArCrI,OAAOS,EAAE4H,KAAKgJ,QAAQ,WACzCxB,EAASlG,KAAKlJ,GACd+iB,EAAI/iB,EAAE4H,KAAO5H,GACXA,EAAE4E,OAAS5E,EAAE4E,KAAO,KAAKW,WAAai8C,QAS9C,GAAIF,EAAc,CAGhB,IAFA,IAAID,EAAO,GACPI,EAAU,GACLpgB,EAAM,EAAGA,EAAMigB,EAAa3hD,OAAQ0hC,IAAO,CAClD,IAAIqgB,EAAMJ,EAAajgB,GACvBqgB,EAAI98C,KAAKW,WAAai8C,EACtBE,EAAI98C,KAAK+8C,IAAMD,EAAIj3B,IAAIm3B,wBACnB7+B,EAAI2+B,EAAI95C,KACVy5C,EAAKn4C,KAAKw4C,GAEVD,EAAQv4C,KAAKw4C,GAGjB5gD,KAAKugD,KAAOr8C,EAAEN,EAAK,KAAM28C,GACzBvgD,KAAK2gD,QAAUA,EAGjB,OAAOz8C,EAAEN,EAAK,KAAM0K,IAGtByyC,QAAS,WACP,IAAIzyC,EAAWtO,KAAKwgD,aAChBH,EAAYrgD,KAAKqgD,YAAergD,KAAKoC,MAAQ,KAAO,QACnDkM,EAASzP,QAAWmB,KAAKghD,QAAQ1yC,EAAS,GAAGqb,IAAK02B,KAMvD/xC,EAAS1H,QAAQq6C,IACjB3yC,EAAS1H,QAAQs6C,IACjB5yC,EAAS1H,QAAQu6C,IAKjBnhD,KAAKohD,QAAU3uC,SAAS4uC,KAAKC,aAE7BhzC,EAAS1H,SAAQ,SAAU1H,GACzB,GAAIA,EAAE4E,KAAKy9C,MAAO,CAChB,IAAIt9C,EAAK/E,EAAEyqB,IACPgyB,EAAI13C,EAAG0J,MACX0sC,GAAmBp2C,EAAIo8C,GACvB1E,EAAE6F,UAAY7F,EAAE8F,gBAAkB9F,EAAE+F,mBAAqB,GACzDz9C,EAAG4jB,iBAAiB+xB,GAAoB31C,EAAG09C,QAAU,SAAS/sC,EAAInK,GAC5DA,GAAKA,EAAE9K,SAAWsE,GAGjBwG,IAAK,aAAanM,KAAKmM,EAAEm3C,gBAC5B39C,EAAGwwC,oBAAoBmF,GAAoBhlC,GAC3C3Q,EAAG09C,QAAU,KACbpH,GAAsBt2C,EAAIo8C,YAOpCp0C,QAAS,CACP+0C,QAAS,SAAkB/8C,EAAIo8C,GAE7B,IAAK7G,GACH,OAAO,EAGT,GAAIx5C,KAAK6hD,SACP,OAAO7hD,KAAK6hD,SAOd,IAAIpnB,EAAQx2B,EAAG69C,YACX79C,EAAG6wC,oBACL7wC,EAAG6wC,mBAAmBluC,SAAQ,SAAUguC,GAAOiE,GAAYpe,EAAOma,MAEpE8D,GAASje,EAAO4lB,GAChB5lB,EAAM9sB,MAAMyxC,QAAU,OACtBp/C,KAAKsS,IAAI46B,YAAYzS,GACrB,IAAIjK,EAAOkqB,GAAkBjgB,GAE7B,OADAz6B,KAAKsS,IAAI26B,YAAYxS,GACbz6B,KAAK6hD,SAAWrxB,EAAK+qB,gBAKnC,SAAS0F,GAAgB/hD,GAEnBA,EAAEyqB,IAAIg4B,SACRziD,EAAEyqB,IAAIg4B,UAGJziD,EAAEyqB,IAAImyB,UACR58C,EAAEyqB,IAAImyB,WAIV,SAASoF,GAAgBhiD,GACvBA,EAAE4E,KAAKi+C,OAAS7iD,EAAEyqB,IAAIm3B,wBAGxB,SAASK,GAAkBjiD,GACzB,IAAI8iD,EAAS9iD,EAAE4E,KAAK+8C,IAChBkB,EAAS7iD,EAAE4E,KAAKi+C,OAChBE,EAAKD,EAAOz2C,KAAOw2C,EAAOx2C,KAC1B22C,EAAKF,EAAO9hC,IAAM6hC,EAAO7hC,IAC7B,GAAI+hC,GAAMC,EAAI,CACZhjD,EAAE4E,KAAKy9C,OAAQ,EACf,IAAI5F,EAAIz8C,EAAEyqB,IAAIhc,MACdguC,EAAE6F,UAAY7F,EAAE8F,gBAAkB,aAAeQ,EAAK,MAAQC,EAAK,MACnEvG,EAAE+F,mBAAqB,MAI3B,IAAIS,GAAqB,CACvBlC,WAAYA,GACZK,gBAAiBA,IAMnBniB,GAAIlZ,OAAOe,YAAcA,GACzBmY,GAAIlZ,OAAOU,cAAgBA,GAC3BwY,GAAIlZ,OAAOW,eAAiBA,GAC5BuY,GAAIlZ,OAAOa,gBAAkBA,GAC7BqY,GAAIlZ,OAAOY,iBAAmBA,GAG9BhC,EAAOsa,GAAI3kB,QAAQnJ,WAAYgvC,IAC/Bx7B,EAAOsa,GAAI3kB,QAAQguB,WAAY2a,IAG/BhkB,GAAIj9B,UAAUqgC,UAAYza,EAAY82B,GAAQ75B,EAG9Coa,GAAIj9B,UAAUg6B,OAAS,SACrBj3B,EACA22B,GAGA,OADA32B,EAAKA,GAAM6iB,EAAY3I,GAAMla,QAAMnF,EAC5B8iC,GAAe5hC,KAAMiE,EAAI22B,IAK9B9T,GACFnS,YAAW,WACLsQ,EAAOI,UACLA,IACFA,GAASue,KAAK,OAAQzF,MAsBzB,GAKU,Y,6CClwQf,IAAI9+B,EAAI,EAAQ,QACZsL,EAAK,EAAQ,QAIjBtL,EAAE,CAAEM,OAAQ,SAAUqG,MAAM,GAAQ,CAClC2E,GAAIA,K,oCCJN,EAAQ,QACR,IA4CIy3C,EA5CA/iD,EAAI,EAAQ,QACZkD,EAAc,EAAQ,QACtB8/C,EAAiB,EAAQ,QACzBjzC,EAAS,EAAQ,QACjByb,EAAmB,EAAQ,QAC3BzR,EAAW,EAAQ,QACnBkpC,EAAa,EAAQ,QACrB3/C,EAAM,EAAQ,QACd4/C,EAAS,EAAQ,QACjBC,EAAY,EAAQ,QACpBC,EAAS,EAAQ,QAAiCA,OAClDC,EAAU,EAAQ,QAClBC,EAAiB,EAAQ,QACzBC,EAAwB,EAAQ,QAChCC,EAAsB,EAAQ,QAE9BC,EAAY1zC,EAAO5I,IACnBU,EAAkB07C,EAAsB17C,gBACxC67C,EAA+BH,EAAsBI,SACrDC,EAAmBJ,EAAoBp6B,IACvCy6B,EAAsBL,EAAoBM,UAAU,OACpD7hC,EAAQhZ,KAAKgZ,MACb8hC,EAAM96C,KAAK86C,IAEXC,EAAoB,oBACpBC,EAAiB,iBACjBC,EAAe,eACfC,EAAe,eAEfC,EAAQ,WACRC,EAAe,gBACfC,EAAQ,KACRC,EAAY,WACZC,EAAM,WACNC,EAAM,QACNC,EAAM,gBAENC,EAA4B,wCAE5BC,EAA8C,uCAE9CC,EAA2C,yCAE3CC,EAAmB,wBAGnBC,EAAY,SAAU79C,EAAK89C,GAC7B,IAAI39C,EAAQ49C,EAAYv6C,EACxB,GAAuB,KAAnBs6C,EAAMphC,OAAO,GAAW,CAC1B,GAAsC,KAAlCohC,EAAMphC,OAAOohC,EAAMxlD,OAAS,GAAW,OAAO0kD,EAElD,GADA78C,EAAS69C,EAAUF,EAAMjkD,MAAM,GAAI,KAC9BsG,EAAQ,OAAO68C,EACpBh9C,EAAIa,KAAOV,OAEN,GAAK89C,EAAUj+C,GAQf,CAEL,GADA89C,EAAQ3B,EAAQ2B,GACZL,EAA0B1lD,KAAK+lD,GAAQ,OAAOd,EAElD,GADA78C,EAAS+9C,EAAUJ,GACJ,OAAX39C,EAAiB,OAAO68C,EAC5Bh9C,EAAIa,KAAOV,MAbe,CAC1B,GAAIu9C,EAA4C3lD,KAAK+lD,GAAQ,OAAOd,EAGpE,IAFA78C,EAAS,GACT49C,EAAa9B,EAAU6B,GAClBt6C,EAAQ,EAAGA,EAAQu6C,EAAWzlD,OAAQkL,IACzCrD,GAAUg+C,EAAcJ,EAAWv6C,GAAQ46C,GAE7Cp+C,EAAIa,KAAOV,IAUX+9C,EAAY,SAAUJ,GACxB,IACIO,EAAaC,EAAS96C,EAAO+6C,EAAMC,EAAOjO,EAAQkO,EADlDC,EAAQZ,EAAMv7C,MAAM,KAMxB,GAJIm8C,EAAMpmD,QAAqC,IAA3BomD,EAAMA,EAAMpmD,OAAS,IACvComD,EAAMv7B,MAERk7B,EAAcK,EAAMpmD,OAChB+lD,EAAc,EAAG,OAAOP,EAE5B,IADAQ,EAAU,GACL96C,EAAQ,EAAGA,EAAQ66C,EAAa76C,IAAS,CAE5C,GADA+6C,EAAOG,EAAMl7C,GACD,IAAR+6C,EAAY,OAAOT,EAMvB,GALAU,EAAQ,GACJD,EAAKjmD,OAAS,GAAuB,KAAlBimD,EAAK7hC,OAAO,KACjC8hC,EAAQnB,EAAUtlD,KAAKwmD,GAAQ,GAAK,EACpCA,EAAOA,EAAK1kD,MAAe,GAAT2kD,EAAa,EAAI,IAExB,KAATD,EACFhO,EAAS,MACJ,CACL,KAAe,IAATiO,EAAcjB,EAAe,GAATiB,EAAalB,EAAME,GAAKzlD,KAAKwmD,GAAO,OAAOT,EACrEvN,EAASpiC,SAASowC,EAAMC,GAE1BF,EAAQz8C,KAAK0uC,GAEf,IAAK/sC,EAAQ,EAAGA,EAAQ66C,EAAa76C,IAEnC,GADA+sC,EAAS+N,EAAQ96C,GACbA,GAAS66C,EAAc,GACzB,GAAI9N,GAAUsM,EAAI,IAAK,EAAIwB,GAAc,OAAO,UAC3C,GAAI9N,EAAS,IAAK,OAAO,KAGlC,IADAkO,EAAOH,EAAQn7B,MACV3f,EAAQ,EAAGA,EAAQ86C,EAAQhmD,OAAQkL,IACtCi7C,GAAQH,EAAQ96C,GAASq5C,EAAI,IAAK,EAAIr5C,GAExC,OAAOi7C,GAILT,EAAY,SAAUF,GACxB,IAIIx9C,EAAOhI,EAAQqmD,EAAaC,EAAWrO,EAAQsO,EAAOC,EAJtDC,EAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCC,EAAa,EACbC,EAAW,KACXC,EAAU,EAGVC,EAAO,WACT,OAAOrB,EAAMphC,OAAOwiC,IAGtB,GAAc,KAAVC,IAAe,CACjB,GAAuB,KAAnBrB,EAAMphC,OAAO,GAAW,OAC5BwiC,GAAW,EACXF,IACAC,EAAWD,EAEb,MAAOG,IAAQ,CACb,GAAkB,GAAdH,EAAiB,OACrB,GAAc,KAAVG,IAAJ,CAOA7+C,EAAQhI,EAAS,EACjB,MAAOA,EAAS,GAAKklD,EAAIzlD,KAAKonD,KAC5B7+C,EAAgB,GAARA,EAAa6N,SAASgxC,IAAQ,IACtCD,IACA5mD,IAEF,GAAc,KAAV6mD,IAAe,CACjB,GAAc,GAAV7mD,EAAa,OAEjB,GADA4mD,GAAW5mD,EACP0mD,EAAa,EAAG,OACpBL,EAAc,EACd,MAAOQ,IAAQ,CAEb,GADAP,EAAY,KACRD,EAAc,EAAG,CACnB,KAAc,KAAVQ,KAAiBR,EAAc,GAC9B,OADiCO,IAGxC,IAAK9B,EAAMrlD,KAAKonD,KAAS,OACzB,MAAO/B,EAAMrlD,KAAKonD,KAAS,CAEzB,GADA5O,EAASpiC,SAASgxC,IAAQ,IACR,OAAdP,EAAoBA,EAAYrO,MAC/B,IAAiB,GAAbqO,EAAgB,OACpBA,EAAwB,GAAZA,EAAiBrO,EAClC,GAAIqO,EAAY,IAAK,OACrBM,IAEFH,EAAQC,GAAoC,IAAtBD,EAAQC,GAAoBJ,EAClDD,IACmB,GAAfA,GAAmC,GAAfA,GAAkBK,IAE5C,GAAmB,GAAfL,EAAkB,OACtB,MACK,GAAc,KAAVQ,KAET,GADAD,KACKC,IAAQ,YACR,GAAIA,IAAQ,OACnBJ,EAAQC,KAAgB1+C,MA3CxB,CACE,GAAiB,OAAb2+C,EAAmB,OACvBC,IACAF,IACAC,EAAWD,GAyCf,GAAiB,OAAbC,EAAmB,CACrBJ,EAAQG,EAAaC,EACrBD,EAAa,EACb,MAAqB,GAAdA,GAAmBH,EAAQ,EAChCC,EAAOC,EAAQC,GACfD,EAAQC,KAAgBD,EAAQE,EAAWJ,EAAQ,GACnDE,EAAQE,IAAaJ,GAASC,OAE3B,GAAkB,GAAdE,EAAiB,OAC5B,OAAOD,GAGLK,EAA0B,SAAUC,GAMtC,IALA,IAAIC,EAAW,KACXC,EAAY,EACZC,EAAY,KACZC,EAAa,EACbj8C,EAAQ,EACLA,EAAQ,EAAGA,IACI,IAAhB67C,EAAK77C,IACHi8C,EAAaF,IACfD,EAAWE,EACXD,EAAYE,GAEdD,EAAY,KACZC,EAAa,IAEK,OAAdD,IAAoBA,EAAYh8C,KAClCi8C,GAON,OAJIA,EAAaF,IACfD,EAAWE,EACXD,EAAYE,GAEPH,GAGLI,EAAgB,SAAU7+C,GAC5B,IAAIV,EAAQqD,EAAOy7C,EAAUU,EAE7B,GAAmB,iBAAR9+C,EAAkB,CAE3B,IADAV,EAAS,GACJqD,EAAQ,EAAGA,EAAQ,EAAGA,IACzBrD,EAAOwhC,QAAQ9gC,EAAO,KACtBA,EAAOka,EAAMla,EAAO,KACpB,OAAOV,EAAO7F,KAAK,KAEhB,GAAmB,iBAARuG,EAAkB,CAGlC,IAFAV,EAAS,GACT8+C,EAAWG,EAAwBv+C,GAC9B2C,EAAQ,EAAGA,EAAQ,EAAGA,IACrBm8C,GAA2B,IAAhB9+C,EAAK2C,KAChBm8C,IAASA,GAAU,GACnBV,IAAaz7C,GACfrD,GAAUqD,EAAQ,IAAM,KACxBm8C,GAAU,IAEVx/C,GAAUU,EAAK2C,GAAOzI,SAAS,IAC3ByI,EAAQ,IAAGrD,GAAU,OAG7B,MAAO,IAAMA,EAAS,IACtB,OAAOU,GAGPu9C,EAA4B,GAC5BwB,EAA2B5D,EAAO,GAAIoC,EAA2B,CACnE,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAEnCyB,EAAuB7D,EAAO,GAAI4D,EAA0B,CAC9D,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAE3BE,EAA2B9D,EAAO,GAAI6D,EAAsB,CAC9D,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,KAAM,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAG5E1B,EAAgB,SAAUgB,EAAMj9B,GAClC,IAAI69B,EAAO7D,EAAOiD,EAAM,GACxB,OAAOY,EAAO,IAAQA,EAAO,MAAS3jD,EAAI8lB,EAAKi9B,GAAQA,EAAOa,mBAAmBb,IAG/Ec,EAAiB,CACnBC,IAAK,GACLC,KAAM,KACNC,KAAM,GACNC,MAAO,IACPC,GAAI,GACJC,IAAK,KAGHtC,EAAY,SAAUj+C,GACxB,OAAO5D,EAAI6jD,EAAgBjgD,EAAIwgD,SAG7BC,EAAsB,SAAUzgD,GAClC,MAAuB,IAAhBA,EAAIY,UAAkC,IAAhBZ,EAAI0gD,UAG/BC,GAAiC,SAAU3gD,GAC7C,OAAQA,EAAIa,MAAQb,EAAI4gD,kBAAkC,QAAd5gD,EAAIwgD,QAG9CK,GAAuB,SAAUn+C,EAAQylB,GAC3C,IAAI24B,EACJ,OAAwB,GAAjBp+C,EAAOpK,QAAe4kD,EAAMnlD,KAAK2K,EAAOga,OAAO,MACjB,MAA9BokC,EAASp+C,EAAOga,OAAO,MAAgByL,GAAwB,KAAV24B,IAG1DC,GAA+B,SAAUr+C,GAC3C,IAAIs+C,EACJ,OAAOt+C,EAAOpK,OAAS,GAAKuoD,GAAqBn+C,EAAO7I,MAAM,EAAG,MAC9C,GAAjB6I,EAAOpK,QACyB,OAA9B0oD,EAAQt+C,EAAOga,OAAO,KAAyB,OAAVskC,GAA4B,MAAVA,GAA2B,MAAVA,IAI1EC,GAAkB,SAAUjhD,GAC9B,IAAI8Q,EAAO9Q,EAAI8Q,KACXowC,EAAWpwC,EAAKxY,QAChB4oD,GAA2B,QAAdlhD,EAAIwgD,QAAgC,GAAZU,GAAkBL,GAAqB/vC,EAAK,IAAI,IACvFA,EAAKqS,OAILg+B,GAAc,SAAUC,GAC1B,MAAmB,MAAZA,GAA6C,QAA1BA,EAAQxlC,eAGhCylC,GAAc,SAAUD,GAE1B,OADAA,EAAUA,EAAQxlC,cACC,OAAZwlC,GAAgC,SAAZA,GAAkC,SAAZA,GAAkC,WAAZA,GAIrEE,GAAe,GACfC,GAAS,GACTC,GAAY,GACZC,GAAgC,GAChCC,GAAoB,GACpBC,GAAW,GACXC,GAAiB,GACjBC,GAA4B,GAC5BC,GAAmC,GACnCC,GAAY,GACZC,GAAO,GACPC,GAAW,GACXC,GAAO,GACPC,GAAO,GACPC,GAAa,GACbC,GAAY,GACZC,GAAa,GACbC,GAAO,GACPC,GAA4B,GAC5BC,GAAQ,GACRC,GAAW,GAGXC,GAAW,SAAU3iD,EAAK89C,EAAO8E,EAAejxC,GAClD,IAMIosC,EAAYoB,EAAM0D,EAAkBC,EANpCC,EAAQH,GAAiBtB,GACzBpC,EAAU,EACV8D,EAAS,GACTC,GAAS,EACTC,GAAc,EACdC,GAAoB,EAGnBP,IACH5iD,EAAIwgD,OAAS,GACbxgD,EAAIY,SAAW,GACfZ,EAAI0gD,SAAW,GACf1gD,EAAIa,KAAO,KACXb,EAAIojD,KAAO,KACXpjD,EAAI8Q,KAAO,GACX9Q,EAAI4X,MAAQ,KACZ5X,EAAIqjD,SAAW,KACfrjD,EAAI4gD,kBAAmB,EACvB9C,EAAQA,EAAM1tC,QAAQutC,EAA0C,KAGlEG,EAAQA,EAAM1tC,QAAQwtC,EAAkB,IAExCG,EAAa9B,EAAU6B,GAEvB,MAAOoB,GAAWnB,EAAWzlD,OAAQ,CAEnC,OADA6mD,EAAOpB,EAAWmB,GACV6D,GACN,KAAKzB,GACH,IAAInC,IAAQjC,EAAMnlD,KAAKonD,GAGhB,IAAKyD,EAGL,OAAO7F,EAFZgG,EAAQvB,GACR,SAJAwB,GAAU7D,EAAKvjC,cACfmnC,EAAQxB,GAKV,MAEF,KAAKA,GACH,GAAIpC,IAAShC,EAAaplD,KAAKonD,IAAiB,KAARA,GAAuB,KAARA,GAAuB,KAARA,GACpE6D,GAAU7D,EAAKvjC,kBACV,IAAY,KAARujC,EA0BJ,IAAKyD,EAKL,OAAO7F,EAJZiG,EAAS,GACTD,EAAQvB,GACRtC,EAAU,EACV,SA7BA,GAAI0D,IACD3E,EAAUj+C,IAAQ5D,EAAI6jD,EAAgB+C,IAC5B,QAAVA,IAAqBvC,EAAoBzgD,IAAqB,OAAbA,EAAIojD,OACvC,QAAdpjD,EAAIwgD,SAAqBxgD,EAAIa,MAC7B,OAEH,GADAb,EAAIwgD,OAASwC,EACTJ,EAEF,YADI3E,EAAUj+C,IAAQigD,EAAejgD,EAAIwgD,SAAWxgD,EAAIojD,OAAMpjD,EAAIojD,KAAO,OAG3EJ,EAAS,GACS,QAAdhjD,EAAIwgD,OACNuC,EAAQZ,GACClE,EAAUj+C,IAAQ2R,GAAQA,EAAK6uC,QAAUxgD,EAAIwgD,OACtDuC,EAAQtB,GACCxD,EAAUj+C,GACnB+iD,EAAQlB,GAC4B,KAA3B9D,EAAWmB,EAAU,IAC9B6D,EAAQrB,GACRxC,MAEAl/C,EAAI4gD,kBAAmB,EACvB5gD,EAAI8Q,KAAKjP,KAAK,IACdkhD,EAAQP,IAQZ,MAEF,KAAKhB,GACH,IAAK7vC,GAASA,EAAKivC,kBAA4B,KAARzB,EAAc,OAAOpC,EAC5D,GAAIprC,EAAKivC,kBAA4B,KAARzB,EAAa,CACxCn/C,EAAIwgD,OAAS7uC,EAAK6uC,OAClBxgD,EAAI8Q,KAAOa,EAAKb,KAAKjX,QACrBmG,EAAI4X,MAAQjG,EAAKiG,MACjB5X,EAAIqjD,SAAW,GACfrjD,EAAI4gD,kBAAmB,EACvBmC,EAAQL,GACR,MAEFK,EAAuB,QAAfpxC,EAAK6uC,OAAmB2B,GAAOR,GACvC,SAEF,KAAKF,GACH,GAAY,KAARtC,GAA0C,KAA3BpB,EAAWmB,EAAU,GAGjC,CACL6D,EAAQpB,GACR,SAJAoB,EAAQjB,GACR5C,IAIA,MAEJ,KAAKwC,GACH,GAAY,KAARvC,EAAa,CACf4D,EAAQhB,GACR,MAEAgB,EAAQR,GACR,SAGJ,KAAKZ,GAEH,GADA3hD,EAAIwgD,OAAS7uC,EAAK6uC,OACdrB,GAAQtD,EACV77C,EAAIY,SAAW+Q,EAAK/Q,SACpBZ,EAAI0gD,SAAW/uC,EAAK+uC,SACpB1gD,EAAIa,KAAO8Q,EAAK9Q,KAChBb,EAAIojD,KAAOzxC,EAAKyxC,KAChBpjD,EAAI8Q,KAAOa,EAAKb,KAAKjX,QACrBmG,EAAI4X,MAAQjG,EAAKiG,WACZ,GAAY,KAARunC,GAAwB,MAARA,GAAgBlB,EAAUj+C,GACnD+iD,EAAQnB,QACH,GAAY,KAARzC,EACTn/C,EAAIY,SAAW+Q,EAAK/Q,SACpBZ,EAAI0gD,SAAW/uC,EAAK+uC,SACpB1gD,EAAIa,KAAO8Q,EAAK9Q,KAChBb,EAAIojD,KAAOzxC,EAAKyxC,KAChBpjD,EAAI8Q,KAAOa,EAAKb,KAAKjX,QACrBmG,EAAI4X,MAAQ,GACZmrC,EAAQN,OACH,IAAY,KAARtD,EASJ,CACLn/C,EAAIY,SAAW+Q,EAAK/Q,SACpBZ,EAAI0gD,SAAW/uC,EAAK+uC,SACpB1gD,EAAIa,KAAO8Q,EAAK9Q,KAChBb,EAAIojD,KAAOzxC,EAAKyxC,KAChBpjD,EAAI8Q,KAAOa,EAAKb,KAAKjX,QACrBmG,EAAI8Q,KAAKqS,MACT4/B,EAAQR,GACR,SAhBAviD,EAAIY,SAAW+Q,EAAK/Q,SACpBZ,EAAI0gD,SAAW/uC,EAAK+uC,SACpB1gD,EAAIa,KAAO8Q,EAAK9Q,KAChBb,EAAIojD,KAAOzxC,EAAKyxC,KAChBpjD,EAAI8Q,KAAOa,EAAKb,KAAKjX,QACrBmG,EAAI4X,MAAQjG,EAAKiG,MACjB5X,EAAIqjD,SAAW,GACfN,EAAQL,GAUR,MAEJ,KAAKd,GACH,IAAI3D,EAAUj+C,IAAiB,KAARm/C,GAAuB,MAARA,EAE/B,IAAY,KAARA,EAEJ,CACLn/C,EAAIY,SAAW+Q,EAAK/Q,SACpBZ,EAAI0gD,SAAW/uC,EAAK+uC,SACpB1gD,EAAIa,KAAO8Q,EAAK9Q,KAChBb,EAAIojD,KAAOzxC,EAAKyxC,KAChBL,EAAQR,GACR,SAPAQ,EAAQhB,QAFRgB,EAAQjB,GAUR,MAEJ,KAAKD,GAEH,GADAkB,EAAQjB,GACI,KAAR3C,GAA6C,KAA9B6D,EAAOtmC,OAAOwiC,EAAU,GAAW,SACtDA,IACA,MAEF,KAAK4C,GACH,GAAY,KAAR3C,GAAuB,MAARA,EAAc,CAC/B4D,EAAQhB,GACR,SACA,MAEJ,KAAKA,GACH,GAAY,KAAR5C,EAAa,CACX8D,IAAQD,EAAS,MAAQA,GAC7BC,GAAS,EACTJ,EAAmB5G,EAAU+G,GAC7B,IAAK,IAAI5oD,EAAI,EAAGA,EAAIyoD,EAAiBvqD,OAAQ8B,IAAK,CAChD,IAAIkpD,EAAYT,EAAiBzoD,GACjC,GAAiB,KAAbkpD,GAAqBH,EAAzB,CAIA,IAAII,EAAoBpF,EAAcmF,EAAWxD,GAC7CqD,EAAmBnjD,EAAI0gD,UAAY6C,EAClCvjD,EAAIY,UAAY2iD,OALnBJ,GAAoB,EAOxBH,EAAS,QACJ,GACL7D,GAAQtD,GAAe,KAARsD,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBlB,EAAUj+C,GAC3B,CACA,GAAIijD,GAAoB,IAAVD,EAAc,OAAOlG,EACnCoC,GAAWjD,EAAU+G,GAAQ1qD,OAAS,EACtC0qD,EAAS,GACTD,EAAQf,QACHgB,GAAU7D,EACjB,MAEF,KAAK6C,GACL,KAAKC,GACH,GAAIW,GAA+B,QAAd5iD,EAAIwgD,OAAkB,CACzCuC,EAAQV,GACR,SACK,GAAY,KAARlD,GAAgB+D,EAOpB,IACL/D,GAAQtD,GAAe,KAARsD,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBlB,EAAUj+C,GAC3B,CACA,GAAIi+C,EAAUj+C,IAAkB,IAAVgjD,EAAc,OAAOhG,EAC3C,GAAI4F,GAA2B,IAAVI,IAAiBvC,EAAoBzgD,IAAqB,OAAbA,EAAIojD,MAAgB,OAEtF,GADAN,EAAUjF,EAAU79C,EAAKgjD,GACrBF,EAAS,OAAOA,EAGpB,GAFAE,EAAS,GACTD,EAAQT,GACJM,EAAe,OACnB,SAEY,KAARzD,EAAa+D,GAAc,EACd,KAAR/D,IAAa+D,GAAc,GACpCF,GAAU7D,MAtB4B,CACtC,GAAc,IAAV6D,EAAc,OAAOhG,EAEzB,GADA8F,EAAUjF,EAAU79C,EAAKgjD,GACrBF,EAAS,OAAOA,EAGpB,GAFAE,EAAS,GACTD,EAAQb,GACJU,GAAiBX,GAAU,OAiB/B,MAEJ,KAAKC,GACH,IAAI9E,EAAMrlD,KAAKonD,GAER,IACLA,GAAQtD,GAAe,KAARsD,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBlB,EAAUj+C,IAC3B4iD,EACA,CACA,GAAc,IAAVI,EAAc,CAChB,IAAII,EAAOj1C,SAAS60C,EAAQ,IAC5B,GAAII,EAAO,MAAQ,OAAOnG,EAC1Bj9C,EAAIojD,KAAQnF,EAAUj+C,IAAQojD,IAASnD,EAAejgD,EAAIwgD,QAAW,KAAO4C,EAC5EJ,EAAS,GAEX,GAAIJ,EAAe,OACnBG,EAAQT,GACR,SACK,OAAOrF,EAfZ+F,GAAU7D,EAgBZ,MAEF,KAAKgD,GAEH,GADAniD,EAAIwgD,OAAS,OACD,KAARrB,GAAuB,MAARA,EAAc4D,EAAQX,OACpC,KAAIzwC,GAAuB,QAAfA,EAAK6uC,OAyBf,CACLuC,EAAQR,GACR,SA1BA,GAAIpD,GAAQtD,EACV77C,EAAIa,KAAO8Q,EAAK9Q,KAChBb,EAAI8Q,KAAOa,EAAKb,KAAKjX,QACrBmG,EAAI4X,MAAQjG,EAAKiG,WACZ,GAAY,KAARunC,EACTn/C,EAAIa,KAAO8Q,EAAK9Q,KAChBb,EAAI8Q,KAAOa,EAAKb,KAAKjX,QACrBmG,EAAI4X,MAAQ,GACZmrC,EAAQN,OACH,IAAY,KAARtD,EAMJ,CACA4B,GAA6BhD,EAAWlkD,MAAMqlD,GAAS5kD,KAAK,OAC/D0F,EAAIa,KAAO8Q,EAAK9Q,KAChBb,EAAI8Q,KAAOa,EAAKb,KAAKjX,QACrBonD,GAAgBjhD,IAElB+iD,EAAQR,GACR,SAZAviD,EAAIa,KAAO8Q,EAAK9Q,KAChBb,EAAI8Q,KAAOa,EAAKb,KAAKjX,QACrBmG,EAAI4X,MAAQjG,EAAKiG,MACjB5X,EAAIqjD,SAAW,GACfN,EAAQL,IAaV,MAEJ,KAAKN,GACH,GAAY,KAARjD,GAAuB,MAARA,EAAc,CAC/B4D,EAAQV,GACR,MAEE1wC,GAAuB,QAAfA,EAAK6uC,SAAqBO,GAA6BhD,EAAWlkD,MAAMqlD,GAAS5kD,KAAK,OAC5FumD,GAAqBlvC,EAAKb,KAAK,IAAI,GAAO9Q,EAAI8Q,KAAKjP,KAAK8P,EAAKb,KAAK,IACjE9Q,EAAIa,KAAO8Q,EAAK9Q,MAEvBkiD,EAAQR,GACR,SAEF,KAAKF,GACH,GAAIlD,GAAQtD,GAAe,KAARsD,GAAuB,MAARA,GAAwB,KAARA,GAAuB,KAARA,EAAa,CAC5E,IAAKyD,GAAiB/B,GAAqBmC,GACzCD,EAAQR,QACH,GAAc,IAAVS,EAAc,CAEvB,GADAhjD,EAAIa,KAAO,GACP+hD,EAAe,OACnBG,EAAQT,OACH,CAEL,GADAQ,EAAUjF,EAAU79C,EAAKgjD,GACrBF,EAAS,OAAOA,EAEpB,GADgB,aAAZ9iD,EAAIa,OAAqBb,EAAIa,KAAO,IACpC+hD,EAAe,OACnBI,EAAS,GACTD,EAAQT,GACR,SACGU,GAAU7D,EACjB,MAEF,KAAKmD,GACH,GAAIrE,EAAUj+C,IAEZ,GADA+iD,EAAQR,GACI,KAARpD,GAAuB,MAARA,EAAc,cAC5B,GAAKyD,GAAyB,KAARzD,EAGtB,GAAKyD,GAAyB,KAARzD,GAGtB,GAAIA,GAAQtD,IACjBkH,EAAQR,GACI,KAARpD,GAAa,cAJjBn/C,EAAIqjD,SAAW,GACfN,EAAQL,QAJR1iD,EAAI4X,MAAQ,GACZmrC,EAAQN,GAOR,MAEJ,KAAKF,GACH,GACEpD,GAAQtD,GAAe,KAARsD,GACN,MAARA,GAAgBlB,EAAUj+C,KACzB4iD,IAA0B,KAARzD,GAAuB,KAARA,GACnC,CAkBA,GAjBIkC,GAAY2B,IACd/B,GAAgBjhD,GACJ,KAARm/C,GAAyB,MAARA,GAAgBlB,EAAUj+C,IAC7CA,EAAI8Q,KAAKjP,KAAK,KAEPs/C,GAAY6B,GACT,KAAR7D,GAAyB,MAARA,GAAgBlB,EAAUj+C,IAC7CA,EAAI8Q,KAAKjP,KAAK,KAGE,QAAd7B,EAAIwgD,SAAqBxgD,EAAI8Q,KAAKxY,QAAUuoD,GAAqBmC,KAC/DhjD,EAAIa,OAAMb,EAAIa,KAAO,IACzBmiD,EAASA,EAAOtmC,OAAO,GAAK,KAE9B1c,EAAI8Q,KAAKjP,KAAKmhD,IAEhBA,EAAS,GACS,QAAdhjD,EAAIwgD,SAAqBrB,GAAQtD,GAAe,KAARsD,GAAuB,KAARA,GACzD,MAAOn/C,EAAI8Q,KAAKxY,OAAS,GAAqB,KAAhB0H,EAAI8Q,KAAK,GACrC9Q,EAAI8Q,KAAKkd,QAGD,KAARmxB,GACFn/C,EAAI4X,MAAQ,GACZmrC,EAAQN,IACS,KAARtD,IACTn/C,EAAIqjD,SAAW,GACfN,EAAQL,SAGVM,GAAU7E,EAAcgB,EAAMU,GAC9B,MAEJ,KAAK2C,GACS,KAARrD,GACFn/C,EAAI4X,MAAQ,GACZmrC,EAAQN,IACS,KAARtD,GACTn/C,EAAIqjD,SAAW,GACfN,EAAQL,IACCvD,GAAQtD,IACjB77C,EAAI8Q,KAAK,IAAMqtC,EAAcgB,EAAMf,IACnC,MAEJ,KAAKqE,GACEG,GAAyB,KAARzD,EAGXA,GAAQtD,IACL,KAARsD,GAAelB,EAAUj+C,GAAMA,EAAI4X,OAAS,MAC1B5X,EAAI4X,OAAT,KAARunC,EAA0B,MACjBhB,EAAcgB,EAAMf,KALtCp+C,EAAIqjD,SAAW,GACfN,EAAQL,IAKR,MAEJ,KAAKA,GACCvD,GAAQtD,IAAK77C,EAAIqjD,UAAYlF,EAAcgB,EAAMS,IACrD,MAGJV,MAMAsE,GAAiB,SAAaxjD,GAChC,IAIIyjD,EAAWX,EAJXzqD,EAAO0jD,EAAWtiD,KAAM+pD,GAAgB,OACxC7xC,EAAO9Y,UAAUP,OAAS,EAAIO,UAAU,QAAKN,EAC7CmrD,EAAYxrD,OAAO8H,GACnB+iD,EAAQrG,EAAiBrkD,EAAM,CAAE0E,KAAM,QAE3C,QAAaxE,IAAToZ,EACF,GAAIA,aAAgB6xC,GAAgBC,EAAY9G,EAAoBhrC,QAGlE,GADAmxC,EAAUH,GAASc,EAAY,GAAIvrD,OAAOyZ,IACtCmxC,EAAS,MAAMl6C,UAAUk6C,GAIjC,GADAA,EAAUH,GAASI,EAAOW,EAAW,KAAMD,GACvCX,EAAS,MAAMl6C,UAAUk6C,GAC7B,IAAI5iD,EAAe6iD,EAAM7iD,aAAe,IAAIS,EACxCgjD,EAAoBnH,EAA6Bt8C,GACrDyjD,EAAkBC,mBAAmBb,EAAMnrC,OAC3C+rC,EAAkBE,UAAY,WAC5Bd,EAAMnrC,MAAQ1f,OAAOgI,IAAiB,MAEnClE,IACH3D,EAAKqI,KAAOojD,GAAatrD,KAAKH,GAC9BA,EAAKsE,OAASonD,GAAUvrD,KAAKH,GAC7BA,EAAK2rD,SAAWC,GAAYzrD,KAAKH,GACjCA,EAAKuI,SAAWsjD,GAAY1rD,KAAKH,GACjCA,EAAKqoD,SAAWyD,GAAY3rD,KAAKH,GACjCA,EAAKwI,KAAOujD,GAAQ5rD,KAAKH,GACzBA,EAAKgsD,SAAWC,GAAY9rD,KAAKH,GACjCA,EAAK+qD,KAAOmB,GAAQ/rD,KAAKH,GACzBA,EAAK+H,SAAWokD,GAAYhsD,KAAKH,GACjCA,EAAKosD,OAASC,GAAUlsD,KAAKH,GAC7BA,EAAK6H,aAAeykD,GAAgBnsD,KAAKH,GACzCA,EAAKyI,KAAO8jD,GAAQpsD,KAAKH,KAIzBwsD,GAAerB,GAAe7oD,UAE9BmpD,GAAe,WACjB,IAAI9jD,EAAM28C,EAAoBljD,MAC1B+mD,EAASxgD,EAAIwgD,OACb5/C,EAAWZ,EAAIY,SACf8/C,EAAW1gD,EAAI0gD,SACf7/C,EAAOb,EAAIa,KACXuiD,EAAOpjD,EAAIojD,KACXtyC,EAAO9Q,EAAI8Q,KACX8G,EAAQ5X,EAAI4X,MACZyrC,EAAWrjD,EAAIqjD,SACftgD,EAASy9C,EAAS,IAYtB,OAXa,OAAT3/C,GACFkC,GAAU,KACN09C,EAAoBzgD,KACtB+C,GAAUnC,GAAY8/C,EAAW,IAAMA,EAAW,IAAM,KAE1D39C,GAAU28C,EAAc7+C,GACX,OAATuiD,IAAergD,GAAU,IAAMqgD,IAChB,QAAV5C,IAAkBz9C,GAAU,MACvCA,GAAU/C,EAAI4gD,iBAAmB9vC,EAAK,GAAKA,EAAKxY,OAAS,IAAMwY,EAAKxW,KAAK,KAAO,GAClE,OAAVsd,IAAgB7U,GAAU,IAAM6U,GACnB,OAAbyrC,IAAmBtgD,GAAU,IAAMsgD,GAChCtgD,GAGLghD,GAAY,WACd,IAAI/jD,EAAM28C,EAAoBljD,MAC1B+mD,EAASxgD,EAAIwgD,OACb4C,EAAOpjD,EAAIojD,KACf,GAAc,QAAV5C,EAAkB,IACpB,OAAO,IAAIvgD,IAAIugD,EAAO1vC,KAAK,IAAInU,OAC/B,MAAOrB,GACP,MAAO,OAET,MAAc,QAAVklD,GAAqBvC,EAAUj+C,GAC5BwgD,EAAS,MAAQd,EAAc1/C,EAAIa,OAAkB,OAATuiD,EAAgB,IAAMA,EAAO,IADhC,QAI9Ca,GAAc,WAChB,OAAOtH,EAAoBljD,MAAM+mD,OAAS,KAGxC0D,GAAc,WAChB,OAAOvH,EAAoBljD,MAAMmH,UAG/BujD,GAAc,WAChB,OAAOxH,EAAoBljD,MAAMinD,UAG/B0D,GAAU,WACZ,IAAIpkD,EAAM28C,EAAoBljD,MAC1BoH,EAAOb,EAAIa,KACXuiD,EAAOpjD,EAAIojD,KACf,OAAgB,OAATviD,EAAgB,GACV,OAATuiD,EAAgB1D,EAAc7+C,GAC9B6+C,EAAc7+C,GAAQ,IAAMuiD,GAG9BkB,GAAc,WAChB,IAAIzjD,EAAO87C,EAAoBljD,MAAMoH,KACrC,OAAgB,OAATA,EAAgB,GAAK6+C,EAAc7+C,IAGxC0jD,GAAU,WACZ,IAAInB,EAAOzG,EAAoBljD,MAAM2pD,KACrC,OAAgB,OAATA,EAAgB,GAAKlrD,OAAOkrD,IAGjCoB,GAAc,WAChB,IAAIxkD,EAAM28C,EAAoBljD,MAC1BqX,EAAO9Q,EAAI8Q,KACf,OAAO9Q,EAAI4gD,iBAAmB9vC,EAAK,GAAKA,EAAKxY,OAAS,IAAMwY,EAAKxW,KAAK,KAAO,IAG3EoqD,GAAY,WACd,IAAI9sC,EAAQ+kC,EAAoBljD,MAAMme,MACtC,OAAOA,EAAQ,IAAMA,EAAQ,IAG3B+sC,GAAkB,WACpB,OAAOhI,EAAoBljD,MAAMyG,cAG/B0kD,GAAU,WACZ,IAAIvB,EAAW1G,EAAoBljD,MAAM4pD,SACzC,OAAOA,EAAW,IAAMA,EAAW,IAGjCyB,GAAqB,SAAUp+B,EAAQC,GACzC,MAAO,CAAE9mB,IAAK6mB,EAAQxE,IAAKyE,EAAQ5R,cAAc,EAAMiL,YAAY,IAyHrE,GAtHIhkB,GACFsoB,EAAiBugC,GAAc,CAG7BnkD,KAAMokD,GAAmBhB,IAAc,SAAUpjD,GAC/C,IAAIV,EAAM28C,EAAoBljD,MAC1BiqD,EAAYxrD,OAAOwI,GACnBoiD,EAAUH,GAAS3iD,EAAK0jD,GAC5B,GAAIZ,EAAS,MAAMl6C,UAAUk6C,GAC7BtG,EAA6Bx8C,EAAIE,cAAc0jD,mBAAmB5jD,EAAI4X,UAIxEjb,OAAQmoD,GAAmBf,IAG3BC,SAAUc,GAAmBb,IAAa,SAAUD,GAClD,IAAIhkD,EAAM28C,EAAoBljD,MAC9BkpD,GAAS3iD,EAAK9H,OAAO8rD,GAAY,IAAK1C,OAIxC1gD,SAAUkkD,GAAmBZ,IAAa,SAAUtjD,GAClD,IAAIZ,EAAM28C,EAAoBljD,MAC1BskD,EAAa9B,EAAU/jD,OAAO0I,IAClC,IAAI+/C,GAA+B3gD,GAAnC,CACAA,EAAIY,SAAW,GACf,IAAK,IAAIxG,EAAI,EAAGA,EAAI2jD,EAAWzlD,OAAQ8B,IACrC4F,EAAIY,UAAYu9C,EAAcJ,EAAW3jD,GAAI0lD,OAKjDY,SAAUoE,GAAmBX,IAAa,SAAUzD,GAClD,IAAI1gD,EAAM28C,EAAoBljD,MAC1BskD,EAAa9B,EAAU/jD,OAAOwoD,IAClC,IAAIC,GAA+B3gD,GAAnC,CACAA,EAAI0gD,SAAW,GACf,IAAK,IAAItmD,EAAI,EAAGA,EAAI2jD,EAAWzlD,OAAQ8B,IACrC4F,EAAI0gD,UAAYvC,EAAcJ,EAAW3jD,GAAI0lD,OAKjDj/C,KAAMikD,GAAmBV,IAAS,SAAUvjD,GAC1C,IAAIb,EAAM28C,EAAoBljD,MAC1BuG,EAAI4gD,kBACR+B,GAAS3iD,EAAK9H,OAAO2I,GAAOmhD,OAI9BqC,SAAUS,GAAmBR,IAAa,SAAUD,GAClD,IAAIrkD,EAAM28C,EAAoBljD,MAC1BuG,EAAI4gD,kBACR+B,GAAS3iD,EAAK9H,OAAOmsD,GAAWpC,OAIlCmB,KAAM0B,GAAmBP,IAAS,SAAUnB,GAC1C,IAAIpjD,EAAM28C,EAAoBljD,MAC1BknD,GAA+B3gD,KACnCojD,EAAOlrD,OAAOkrD,GACF,IAARA,EAAYpjD,EAAIojD,KAAO,KACtBT,GAAS3iD,EAAKojD,EAAMlB,QAI3B9hD,SAAU0kD,GAAmBN,IAAa,SAAUpkD,GAClD,IAAIJ,EAAM28C,EAAoBljD,MAC1BuG,EAAI4gD,mBACR5gD,EAAI8Q,KAAO,GACX6xC,GAAS3iD,EAAKI,EAAW,GAAIkiD,QAI/BmC,OAAQK,GAAmBJ,IAAW,SAAUD,GAC9C,IAAIzkD,EAAM28C,EAAoBljD,MAC9BgrD,EAASvsD,OAAOusD,GACF,IAAVA,EACFzkD,EAAI4X,MAAQ,MAER,KAAO6sC,EAAO/nC,OAAO,KAAI+nC,EAASA,EAAO5qD,MAAM,IACnDmG,EAAI4X,MAAQ,GACZ+qC,GAAS3iD,EAAKykD,EAAQhC,KAExBjG,EAA6Bx8C,EAAIE,cAAc0jD,mBAAmB5jD,EAAI4X,UAIxE1X,aAAc4kD,GAAmBH,IAGjC7jD,KAAMgkD,GAAmBF,IAAS,SAAU9jD,GAC1C,IAAId,EAAM28C,EAAoBljD,MAC9BqH,EAAO5I,OAAO4I,GACF,IAARA,GAIA,KAAOA,EAAK4b,OAAO,KAAI5b,EAAOA,EAAKjH,MAAM,IAC7CmG,EAAIqjD,SAAW,GACfV,GAAS3iD,EAAKc,EAAM4hD,KALlB1iD,EAAIqjD,SAAW,UAYvBxwC,EAASgyC,GAAc,UAAU,WAC/B,OAAOf,GAAatrD,KAAKiB,QACxB,CAAEumB,YAAY,IAIjBnN,EAASgyC,GAAc,YAAY,WACjC,OAAOf,GAAatrD,KAAKiB,QACxB,CAAEumB,YAAY,IAEbu8B,EAAW,CACb,IAAIwI,GAAwBxI,EAAUyI,gBAClCC,GAAwB1I,EAAU2I,gBAIlCH,IAAuBlyC,EAAS2wC,GAAgB,mBAAmB,SAAyB2B,GAC9F,OAAOJ,GAAsBnsD,MAAM2jD,EAAW1jD,cAK5CosD,IAAuBpyC,EAAS2wC,GAAgB,mBAAmB,SAAyBxjD,GAC9F,OAAOilD,GAAsBrsD,MAAM2jD,EAAW1jD,cAIlDujD,EAAeoH,GAAgB,OAE/B1qD,EAAE,CAAE+P,QAAQ,EAAMP,QAASwzC,EAAgBpoC,MAAO1X,GAAe,CAC/DiE,IAAKujD,M,oCC5+BP,IAAI1qD,EAAI,EAAQ,QACZyD,EAA2B,EAAQ,QAAmDzB,EACtF7B,EAAW,EAAQ,QACnBib,EAAa,EAAQ,QACrBnT,EAAyB,EAAQ,QACjCoT,EAAuB,EAAQ,QAC/BrU,EAAU,EAAQ,QAElBslD,EAAmB,GAAGC,WACtBvjD,EAAMC,KAAKD,IAEXwjD,EAA0BnxC,EAAqB,cAE/CoxC,GAAoBzlD,IAAYwlD,KAA6B,WAC/D,IAAIjyC,EAAa9W,EAAyBrE,OAAOyC,UAAW,cAC5D,OAAO0Y,IAAeA,EAAW4M,SAF8B,GAOjEnnB,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMiP,QAASi9C,IAAqBD,GAA2B,CAC1FD,WAAY,SAAoBhxC,GAC9B,IAAIhc,EAAOH,OAAO6I,EAAuBtH,OACzCya,EAAWG,GACX,IAAI7Q,EAAQvK,EAAS6I,EAAIjJ,UAAUP,OAAS,EAAIO,UAAU,QAAKN,EAAWF,EAAKC,SAC3EmsD,EAASvsD,OAAOmc,GACpB,OAAO+wC,EACHA,EAAiB5sD,KAAKH,EAAMosD,EAAQjhD,GACpCnL,EAAKwB,MAAM2J,EAAOA,EAAQihD,EAAOnsD,UAAYmsD,M,uBC7BrD,IAiBIe,EAAOC,EAASrC,EAjBhBv6C,EAAS,EAAQ,QACjBnJ,EAAQ,EAAQ,QAChB+I,EAAU,EAAQ,QAClBlO,EAAO,EAAQ,QACfmrD,EAAO,EAAQ,QACf/lD,EAAgB,EAAQ,QACxBgmD,EAAS,EAAQ,QAEjBC,EAAW/8C,EAAO+8C,SAClB1jC,EAAMrZ,EAAOuiB,aACbjJ,EAAQtZ,EAAOg9C,eACfC,EAAUj9C,EAAOi9C,QACjBC,EAAiBl9C,EAAOk9C,eACxBC,EAAWn9C,EAAOm9C,SAClB36B,EAAU,EACV+Q,EAAQ,GACR6pB,EAAqB,qBAGrBjpB,EAAM,SAAUza,GAElB,GAAI6Z,EAAMhxB,eAAemX,GAAK,CAC5B,IAAInqB,EAAKgkC,EAAM7Z,UACR6Z,EAAM7Z,GACbnqB,MAIA8tD,EAAS,SAAU3jC,GACrB,OAAO,WACLya,EAAIza,KAIJ4jC,EAAW,SAAUp5B,GACvBiQ,EAAIjQ,EAAMxvB,OAGR6oD,EAAO,SAAU7jC,GAEnB1Z,EAAOw9C,YAAY9jC,EAAK,GAAIqjC,EAAS5B,SAAW,KAAO4B,EAAS/kD,OAI7DqhB,GAAQC,IACXD,EAAM,SAAsB9pB,GAC1B,IAAI8B,EAAO,GACPE,EAAI,EACR,MAAOvB,UAAUP,OAAS8B,EAAGF,EAAK2H,KAAKhJ,UAAUuB,MAMjD,OALAgiC,IAAQ/Q,GAAW,YAEH,mBAANjzB,EAAmBA,EAAKiC,SAASjC,IAAKQ,WAAML,EAAW2B,IAEjEsrD,EAAMn6B,GACCA,GAETlJ,EAAQ,SAAwBI,UACvB6Z,EAAM7Z,IAGS,WAApB9Z,EAAQq9C,GACVN,EAAQ,SAAUjjC,GAChBujC,EAAQp6B,SAASw6B,EAAO3jC,KAGjByjC,GAAYA,EAASrpB,IAC9B6oB,EAAQ,SAAUjjC,GAChByjC,EAASrpB,IAAIupB,EAAO3jC,KAIbwjC,IAAmBJ,GAC5BF,EAAU,IAAIM,EACd3C,EAAOqC,EAAQa,MACfb,EAAQc,MAAMC,UAAYL,EAC1BX,EAAQjrD,EAAK6oD,EAAKiD,YAAajD,EAAM,KAIrCv6C,EAAOyY,kBACe,mBAAf+kC,aACNx9C,EAAO49C,eACP/mD,EAAM0mD,IACe,UAAtBR,EAAS5B,SAMTwB,EADSS,KAAsBtmD,EAAc,UACrC,SAAU4iB,GAChBmjC,EAAK/e,YAAYhnC,EAAc,WAAWsmD,GAAsB,WAC9DP,EAAKhf,YAAYjtC,MACjBujC,EAAIza,KAKA,SAAUA,GAChBnU,WAAW83C,EAAO3jC,GAAK,KAbzBijC,EAAQY,EACRv9C,EAAOyY,iBAAiB,UAAW6kC,GAAU,KAiBjDnuD,EAAOC,QAAU,CACfiqB,IAAKA,EACLC,MAAOA,I,uBCzGT,IAMIvf,EAAOohC,EANPn7B,EAAS,EAAQ,QACjBoI,EAAY,EAAQ,QAEpB60C,EAAUj9C,EAAOi9C,QACjBY,EAAWZ,GAAWA,EAAQY,SAC9BC,EAAKD,GAAYA,EAASC,GAG1BA,GACF/jD,EAAQ+jD,EAAGpkD,MAAM,KACjByhC,EAAUphC,EAAM,GAAKA,EAAM,IAClBqO,IACTrO,EAAQqO,EAAUrO,MAAM,iBACnBA,GAASA,EAAM,IAAM,MACxBA,EAAQqO,EAAUrO,MAAM,iBACpBA,IAAOohC,EAAUphC,EAAM,MAI/B5K,EAAOC,QAAU+rC,IAAYA,G,qCCnB7B;;;;;;AAKA,SAAS4iB,EAAYhvB,GACnB,IAAIoM,EAAU9+B,OAAO0yB,EAAIoM,QAAQzhC,MAAM,KAAK,IAE5C,GAAIyhC,GAAW,EACbpM,EAAIkK,MAAM,CAAEtrB,aAAcqwC,QACrB,CAGL,IAAIxmB,EAAQzI,EAAIj9B,UAAU0lC,MAC1BzI,EAAIj9B,UAAU0lC,MAAQ,SAAUptB,QACb,IAAZA,IAAqBA,EAAU,IAEpCA,EAAQmhB,KAAOnhB,EAAQmhB,KACnB,CAACyyB,GAAUnsD,OAAOuY,EAAQmhB,MAC1ByyB,EACJxmB,EAAM7nC,KAAKiB,KAAMwZ,IAQrB,SAAS4zC,IACP,IAAI5zC,EAAUxZ,KAAK0c,SAEflD,EAAQ6zC,MACVrtD,KAAKstD,OAAkC,oBAAlB9zC,EAAQ6zC,MACzB7zC,EAAQ6zC,QACR7zC,EAAQ6zC,MACH7zC,EAAQ4C,QAAU5C,EAAQ4C,OAAOkxC,SAC1CttD,KAAKstD,OAAS9zC,EAAQ4C,OAAOkxC,SAKnC,IAAI3tD,EAA2B,qBAAX6B,OAChBA,OACkB,qBAAX4N,EACLA,EACA,GACFm+C,EAAc5tD,EAAOsoB,6BAEzB,SAASulC,EAAeH,GACjBE,IAELF,EAAMI,aAAeF,EAErBA,EAAY3pB,KAAK,YAAaypB,GAE9BE,EAAYxpD,GAAG,wBAAwB,SAAU2pD,GAC/CL,EAAMM,aAAaD,MAGrBL,EAAMO,WAAU,SAAUC,EAAUvE,GAClCiE,EAAY3pB,KAAK,gBAAiBiqB,EAAUvE,KAC3C,CAAEwE,SAAS,IAEdT,EAAMU,iBAAgB,SAAUC,EAAQ1E,GACtCiE,EAAY3pB,KAAK,cAAeoqB,EAAQ1E,KACvC,CAAEwE,SAAS,KAWhB,SAASG,EAAMvtD,EAAMW,GACnB,OAAOX,EAAK4oC,OAAOjoC,GAAG,GAYxB,SAAS6sD,EAAUhtC,EAAKwB,GAItB,QAHe,IAAVA,IAAmBA,EAAQ,IAGpB,OAARxB,GAA+B,kBAARA,EACzB,OAAOA,EAIT,IAAIyB,EAAMsrC,EAAKvrC,GAAO,SAAUxjB,GAAK,OAAOA,EAAEssB,WAAatK,KAC3D,GAAIyB,EACF,OAAOA,EAAIwrC,KAGb,IAAIA,EAAO9rD,MAAM6a,QAAQgE,GAAO,GAAK,GAYrC,OATAwB,EAAMta,KAAK,CACTojB,SAAUtK,EACVitC,KAAMA,IAGR1sD,OAAOoO,KAAKqR,GAAKta,SAAQ,SAAUE,GACjCqnD,EAAKrnD,GAAOonD,EAAShtC,EAAIpa,GAAM4b,MAG1ByrC,EAMT,SAASC,EAAcltC,EAAKviB,GAC1B8C,OAAOoO,KAAKqR,GAAKta,SAAQ,SAAUE,GAAO,OAAOnI,EAAGuiB,EAAIpa,GAAMA,MAGhE,SAAS3G,EAAU+gB,GACjB,OAAe,OAARA,GAA+B,kBAARA,EAGhC,SAASM,EAAWzW,GAClB,OAAOA,GAA2B,oBAAbA,EAAI0W,KAO3B,SAAS4sC,EAAS1vD,EAAI20C,GACpB,OAAO,WACL,OAAO30C,EAAG20C,IAKd,IAAIgb,EAAS,SAAiBC,EAAWC,GACvCxuD,KAAKwuD,QAAUA,EAEfxuD,KAAKyuD,UAAYhtD,OAAOygB,OAAO,MAE/BliB,KAAK0uD,WAAaH,EAClB,IAAII,EAAWJ,EAAUjF,MAGzBtpD,KAAKspD,OAA6B,oBAAbqF,EAA0BA,IAAaA,IAAa,IAGvEhkC,EAAqB,CAAEikC,WAAY,CAAEtzC,cAAc,IAEvDqP,EAAmBikC,WAAWxoD,IAAM,WAClC,QAASpG,KAAK0uD,WAAWE,YAG3BN,EAAOptD,UAAU2tD,SAAW,SAAmB/nD,EAAKvI,GAClDyB,KAAKyuD,UAAU3nD,GAAOvI,GAGxB+vD,EAAOptD,UAAU+rC,YAAc,SAAsBnmC,UAC5C9G,KAAKyuD,UAAU3nD,IAGxBwnD,EAAOptD,UAAU4tD,SAAW,SAAmBhoD,GAC7C,OAAO9G,KAAKyuD,UAAU3nD,IAGxBwnD,EAAOptD,UAAU6tD,SAAW,SAAmBjoD,GAC7C,OAAOA,KAAO9G,KAAKyuD,WAGrBH,EAAOptD,UAAUooB,OAAS,SAAiBilC,GACzCvuD,KAAK0uD,WAAWE,WAAaL,EAAUK,WACnCL,EAAUS,UACZhvD,KAAK0uD,WAAWM,QAAUT,EAAUS,SAElCT,EAAUU,YACZjvD,KAAK0uD,WAAWO,UAAYV,EAAUU,WAEpCV,EAAUW,UACZlvD,KAAK0uD,WAAWQ,QAAUX,EAAUW,UAIxCZ,EAAOptD,UAAUiuD,aAAe,SAAuBxwD,GACrDyvD,EAAapuD,KAAKyuD,UAAW9vD,IAG/B2vD,EAAOptD,UAAUkuD,cAAgB,SAAwBzwD,GACnDqB,KAAK0uD,WAAWQ,SAClBd,EAAapuD,KAAK0uD,WAAWQ,QAASvwD,IAI1C2vD,EAAOptD,UAAUmuD,cAAgB,SAAwB1wD,GACnDqB,KAAK0uD,WAAWM,SAClBZ,EAAapuD,KAAK0uD,WAAWM,QAASrwD,IAI1C2vD,EAAOptD,UAAUouD,gBAAkB,SAA0B3wD,GACvDqB,KAAK0uD,WAAWO,WAClBb,EAAapuD,KAAK0uD,WAAWO,UAAWtwD,IAI5C8C,OAAOopB,iBAAkByjC,EAAOptD,UAAWypB,GAE3C,IAAI4kC,EAAmB,SAA2BC,GAEhDxvD,KAAKyvD,SAAS,GAAID,GAAe,IA0EnC,SAASlmC,EAAQjS,EAAMq4C,EAAcC,GASnC,GAHAD,EAAapmC,OAAOqmC,GAGhBA,EAAUrhB,QACZ,IAAK,IAAIxnC,KAAO6oD,EAAUrhB,QAAS,CACjC,IAAKohB,EAAaZ,SAAShoD,GAOzB,cAEFwiB,EACEjS,EAAKpW,OAAO6F,GACZ4oD,EAAaZ,SAAShoD,GACtB6oD,EAAUrhB,QAAQxnC,KA9F1ByoD,EAAiBruD,UAAUkF,IAAM,SAAciR,GAC7C,OAAOA,EAAKvI,QAAO,SAAUvQ,EAAQuI,GACnC,OAAOvI,EAAOuwD,SAAShoD,KACtB9G,KAAKqT,OAGVk8C,EAAiBruD,UAAU0uD,aAAe,SAAuBv4C,GAC/D,IAAI9Y,EAASyB,KAAKqT,KAClB,OAAOgE,EAAKvI,QAAO,SAAU89B,EAAW9lC,GAEtC,OADAvI,EAASA,EAAOuwD,SAAShoD,GAClB8lC,GAAaruC,EAAOqwD,WAAa9nD,EAAM,IAAM,MACnD,KAGLyoD,EAAiBruD,UAAUooB,OAAS,SAAmBkmC,GACrDlmC,EAAO,GAAItpB,KAAKqT,KAAMm8C,IAGxBD,EAAiBruD,UAAUuuD,SAAW,SAAmBp4C,EAAMk3C,EAAWC,GACtE,IAAI30B,EAAS75B,UACI,IAAZwuD,IAAqBA,GAAU,GAMtC,IAAImB,EAAY,IAAIrB,EAAOC,EAAWC,GACtC,GAAoB,IAAhBn3C,EAAKxY,OACPmB,KAAKqT,KAAOs8C,MACP,CACL,IAAIvzC,EAASpc,KAAKoG,IAAIiR,EAAKjX,MAAM,GAAI,IACrCgc,EAAOyyC,SAASx3C,EAAKA,EAAKxY,OAAS,GAAI8wD,GAIrCpB,EAAUjgB,SACZ8f,EAAaG,EAAUjgB,SAAS,SAAUuhB,EAAgB/oD,GACxD+yB,EAAO41B,SAASp4C,EAAKpW,OAAO6F,GAAM+oD,EAAgBrB,OAKxDe,EAAiBruD,UAAU4uD,WAAa,SAAqBz4C,GAC3D,IAAI+E,EAASpc,KAAKoG,IAAIiR,EAAKjX,MAAM,GAAI,IACjC0G,EAAMuQ,EAAKA,EAAKxY,OAAS,GACzB+rB,EAAQxO,EAAO0yC,SAAShoD,GAEvB8jB,GAUAA,EAAM4jC,SAIXpyC,EAAO6wB,YAAYnmC,IAGrByoD,EAAiBruD,UAAU6uD,aAAe,SAAuB14C,GAC/D,IAAI+E,EAASpc,KAAKoG,IAAIiR,EAAKjX,MAAM,GAAI,IACjC0G,EAAMuQ,EAAKA,EAAKxY,OAAS,GAE7B,OAAOud,EAAO2yC,SAASjoD,IAgCzB,IAyCIq3B,EAEJ,IAAI6xB,EAAQ,SAAgBx2C,GAC1B,IAAIqgB,EAAS75B,UACI,IAAZwZ,IAAqBA,EAAU,KAK/B2kB,GAAyB,qBAAX38B,QAA0BA,OAAO28B,KAClDgK,EAAQ3mC,OAAO28B,KASjB,IAAI8xB,EAAUz2C,EAAQy2C,aAA0B,IAAZA,IAAqBA,EAAU,IACnE,IAAIC,EAAS12C,EAAQ02C,YAAwB,IAAXA,IAAoBA,GAAS,GAG/DlwD,KAAKmwD,aAAc,EACnBnwD,KAAKowD,SAAW3uD,OAAOygB,OAAO,MAC9BliB,KAAKqwD,mBAAqB,GAC1BrwD,KAAKswD,WAAa7uD,OAAOygB,OAAO,MAChCliB,KAAKuwD,gBAAkB9uD,OAAOygB,OAAO,MACrCliB,KAAKwwD,SAAW,IAAIjB,EAAiB/1C,GACrCxZ,KAAKywD,qBAAuBhvD,OAAOygB,OAAO,MAC1CliB,KAAK0wD,aAAe,GACpB1wD,KAAK2wD,WAAa,IAAIxyB,EACtBn+B,KAAK4wD,uBAAyBnvD,OAAOygB,OAAO,MAG5C,IAAImrC,EAAQrtD,KACRyT,EAAMzT,KACN6wD,EAAWp9C,EAAIo9C,SACfC,EAASr9C,EAAIq9C,OACjB9wD,KAAK6wD,SAAW,SAAwBvtD,EAAMytD,GAC5C,OAAOF,EAAS9xD,KAAKsuD,EAAO/pD,EAAMytD,IAEpC/wD,KAAK8wD,OAAS,SAAsBxtD,EAAMytD,EAASv3C,GACjD,OAAOs3C,EAAO/xD,KAAKsuD,EAAO/pD,EAAMytD,EAASv3C,IAI3CxZ,KAAKkwD,OAASA,EAEd,IAAI5G,EAAQtpD,KAAKwwD,SAASn9C,KAAKi2C,MAK/B0H,EAAchxD,KAAMspD,EAAO,GAAItpD,KAAKwwD,SAASn9C,MAI7C49C,EAAajxD,KAAMspD,GAGnB2G,EAAQrpD,SAAQ,SAAUmhC,GAAU,OAAOA,EAAOlO,MAElD,IAAIq3B,OAAmCpyD,IAArB0a,EAAQ6L,SAAyB7L,EAAQ6L,SAAW8Y,EAAIlZ,OAAOI,SAC7E6rC,GACF1D,EAAcxtD,OAIdmxD,EAAuB,CAAE7H,MAAO,CAAEhuC,cAAc,IAmMpD,SAAS81C,EAAkBzyD,EAAIoqB,EAAMvP,GAMnC,OALIuP,EAAKjZ,QAAQnR,GAAM,IACrB6a,GAAWA,EAAQs0C,QACf/kC,EAAKmf,QAAQvpC,GACboqB,EAAK3gB,KAAKzJ,IAET,WACL,IAAIgC,EAAIooB,EAAKjZ,QAAQnR,GACjBgC,GAAK,GACPooB,EAAKxG,OAAO5hB,EAAG,IAKrB,SAAS0wD,EAAYhE,EAAOiE,GAC1BjE,EAAM+C,SAAW3uD,OAAOygB,OAAO,MAC/BmrC,EAAMiD,WAAa7uD,OAAOygB,OAAO,MACjCmrC,EAAMkD,gBAAkB9uD,OAAOygB,OAAO,MACtCmrC,EAAMoD,qBAAuBhvD,OAAOygB,OAAO,MAC3C,IAAIonC,EAAQ+D,EAAM/D,MAElB0H,EAAc3D,EAAO/D,EAAO,GAAI+D,EAAMmD,SAASn9C,MAAM,GAErD49C,EAAa5D,EAAO/D,EAAOgI,GAG7B,SAASL,EAAc5D,EAAO/D,EAAOgI,GACnC,IAAIC,EAAQlE,EAAMmE,IAGlBnE,EAAM6B,QAAU,GAEhB7B,EAAMuD,uBAAyBnvD,OAAOygB,OAAO,MAC7C,IAAIuvC,EAAiBpE,EAAMkD,gBACvB5kD,EAAW,GACfyiD,EAAaqD,GAAgB,SAAU9yD,EAAImI,GAIzC6E,EAAS7E,GAAOunD,EAAQ1vD,EAAI0uD,GAC5B5rD,OAAO0E,eAAeknD,EAAM6B,QAASpoD,EAAK,CACxCV,IAAK,WAAc,OAAOinD,EAAMmE,IAAI1qD,IACpCyf,YAAY,OAOhB,IAAIpB,EAASgZ,EAAIlZ,OAAOE,OACxBgZ,EAAIlZ,OAAOE,QAAS,EACpBkoC,EAAMmE,IAAM,IAAIrzB,EAAI,CAClBr6B,KAAM,CACJ4tD,QAASpI,GAEX39C,SAAUA,IAEZwyB,EAAIlZ,OAAOE,OAASA,EAGhBkoC,EAAM6C,QACRyB,EAAiBtE,GAGfkE,IACED,GAGFjE,EAAMuE,aAAY,WAChBL,EAAM5vB,MAAM+vB,QAAU,QAG1BvzB,EAAIlM,UAAS,WAAc,OAAOs/B,EAAM31B,eAI5C,SAASo1B,EAAe3D,EAAOwE,EAAWx6C,EAAM9Y,EAAQ+yD,GACtD,IAAI/rB,GAAUluB,EAAKxY,OACf+tC,EAAYygB,EAAMmD,SAASZ,aAAav4C,GAW5C,GARI9Y,EAAOqwD,aACLvB,EAAMoD,qBAAqB7jB,GAG/BygB,EAAMoD,qBAAqB7jB,GAAaruC,IAIrCgnC,IAAW+rB,EAAK,CACnB,IAAIQ,EAAcC,EAAeF,EAAWx6C,EAAKjX,MAAM,GAAI,IACvD4xD,EAAa36C,EAAKA,EAAKxY,OAAS,GACpCwuD,EAAMuE,aAAY,WAQhBzzB,EAAI1V,IAAIqpC,EAAaE,EAAYzzD,EAAO+qD,UAI5C,IAAI2I,EAAQ1zD,EAAOsF,QAAUquD,EAAiB7E,EAAOzgB,EAAWv1B,GAEhE9Y,EAAO+wD,iBAAgB,SAAUzB,EAAU/mD,GACzC,IAAIqrD,EAAiBvlB,EAAY9lC,EACjCsrD,EAAiB/E,EAAO8E,EAAgBtE,EAAUoE,MAGpD1zD,EAAO8wD,eAAc,SAAUrB,EAAQlnD,GACrC,IAAIxD,EAAO0qD,EAAO36C,KAAOvM,EAAM8lC,EAAY9lC,EACvCgN,EAAUk6C,EAAOl6C,SAAWk6C,EAChCqE,EAAehF,EAAO/pD,EAAMwQ,EAASm+C,MAGvC1zD,EAAO6wD,eAAc,SAAUniC,EAAQnmB,GACrC,IAAIqrD,EAAiBvlB,EAAY9lC,EACjCwrD,EAAejF,EAAO8E,EAAgBllC,EAAQglC,MAGhD1zD,EAAO4wD,cAAa,SAAUvkC,EAAO9jB,GACnCkqD,EAAc3D,EAAOwE,EAAWx6C,EAAKpW,OAAO6F,GAAM8jB,EAAO0mC,MAQ7D,SAASY,EAAkB7E,EAAOzgB,EAAWv1B,GAC3C,IAAIk7C,EAA4B,KAAd3lB,EAEdqlB,EAAQ,CACVpB,SAAU0B,EAAclF,EAAMwD,SAAW,SAAU2B,EAAOC,EAAUC,GAClE,IAAIjyD,EAAOkyD,EAAiBH,EAAOC,EAAUC,GACzC3B,EAAUtwD,EAAKswD,QACfv3C,EAAU/Y,EAAK+Y,QACflW,EAAO7C,EAAK6C,KAUhB,OARKkW,GAAYA,EAAQnG,OACvB/P,EAAOspC,EAAYtpC,GAOd+pD,EAAMwD,SAASvtD,EAAMytD,IAG9BD,OAAQyB,EAAclF,EAAMyD,OAAS,SAAU0B,EAAOC,EAAUC,GAC9D,IAAIjyD,EAAOkyD,EAAiBH,EAAOC,EAAUC,GACzC3B,EAAUtwD,EAAKswD,QACfv3C,EAAU/Y,EAAK+Y,QACflW,EAAO7C,EAAK6C,KAEXkW,GAAYA,EAAQnG,OACvB/P,EAAOspC,EAAYtpC,GAOrB+pD,EAAMyD,OAAOxtD,EAAMytD,EAASv3C,KAiBhC,OAXA/X,OAAOopB,iBAAiBonC,EAAO,CAC7B/C,QAAS,CACP9oD,IAAKmsD,EACD,WAAc,OAAOlF,EAAM6B,SAC3B,WAAc,OAAO0D,EAAiBvF,EAAOzgB,KAEnD0c,MAAO,CACLljD,IAAK,WAAc,OAAO2rD,EAAe1E,EAAM/D,MAAOjyC,OAInD46C,EAGT,SAASW,EAAkBvF,EAAOzgB,GAChC,IAAKygB,EAAMuD,uBAAuBhkB,GAAY,CAC5C,IAAIimB,EAAe,GACfC,EAAWlmB,EAAU/tC,OACzB4C,OAAOoO,KAAKw9C,EAAM6B,SAAStoD,SAAQ,SAAUtD,GAE3C,GAAIA,EAAKlD,MAAM,EAAG0yD,KAAclmB,EAAhC,CAGA,IAAImmB,EAAYzvD,EAAKlD,MAAM0yD,GAK3BrxD,OAAO0E,eAAe0sD,EAAcE,EAAW,CAC7C3sD,IAAK,WAAc,OAAOinD,EAAM6B,QAAQ5rD,IACxCijB,YAAY,QAGhB8mC,EAAMuD,uBAAuBhkB,GAAaimB,EAG5C,OAAOxF,EAAMuD,uBAAuBhkB,GAGtC,SAASwlB,EAAkB/E,EAAO/pD,EAAMwQ,EAASm+C,GAC/C,IAAIe,EAAQ3F,EAAMiD,WAAWhtD,KAAU+pD,EAAMiD,WAAWhtD,GAAQ,IAChE0vD,EAAM5qD,MAAK,SAAiC2oD,GAC1Cj9C,EAAQ/U,KAAKsuD,EAAO4E,EAAM3I,MAAOyH,MAIrC,SAASsB,EAAgBhF,EAAO/pD,EAAMwQ,EAASm+C,GAC7C,IAAIe,EAAQ3F,EAAM+C,SAAS9sD,KAAU+pD,EAAM+C,SAAS9sD,GAAQ,IAC5D0vD,EAAM5qD,MAAK,SAA+B2oD,GACxC,IAAI7mD,EAAM4J,EAAQ/U,KAAKsuD,EAAO,CAC5BwD,SAAUoB,EAAMpB,SAChBC,OAAQmB,EAAMnB,OACd5B,QAAS+C,EAAM/C,QACf5F,MAAO2I,EAAM3I,MACb2J,YAAa5F,EAAM6B,QACnB2C,UAAWxE,EAAM/D,OAChByH,GAIH,OAHKvvC,EAAUtX,KACbA,EAAMsnB,QAAQC,QAAQvnB,IAEpBmjD,EAAMI,aACDvjD,EAAIwX,OAAM,SAAU6O,GAEzB,MADA88B,EAAMI,aAAa7pB,KAAK,aAAcrT,GAChCA,KAGDrmB,KAKb,SAASooD,EAAgBjF,EAAO/pD,EAAM4vD,EAAWjB,GAC3C5E,EAAMkD,gBAAgBjtD,KAM1B+pD,EAAMkD,gBAAgBjtD,GAAQ,SAAwB+pD,GACpD,OAAO6F,EACLjB,EAAM3I,MACN2I,EAAM/C,QACN7B,EAAM/D,MACN+D,EAAM6B,WAKZ,SAASyC,EAAkBtE,GACzBA,EAAMmE,IAAIrrB,QAAO,WAAc,OAAOnmC,KAAK2hC,MAAM+vB,WAAW,WACtD,IAGH,CAAEztB,MAAM,EAAMjF,MAAM,IAGzB,SAAS+yB,EAAgBzI,EAAOjyC,GAC9B,OAAOA,EAAKvI,QAAO,SAAUw6C,EAAOxiD,GAAO,OAAOwiD,EAAMxiD,KAASwiD,GAGnE,SAASqJ,EAAkBrvD,EAAMytD,EAASv3C,GAWxC,OAVIrZ,EAASmD,IAASA,EAAKA,OACzBkW,EAAUu3C,EACVA,EAAUztD,EACVA,EAAOA,EAAKA,MAOP,CAAEA,KAAMA,EAAMytD,QAASA,EAASv3C,QAASA,GAGlD,SAAS2uB,EAASgrB,GACZh1B,GAAOg1B,IAASh1B,IAQpBA,EAAMg1B,EACNhG,EAAWhvB,IAzebgzB,EAAqB7H,MAAMljD,IAAM,WAC/B,OAAOpG,KAAKwxD,IAAI7vB,MAAM+vB,SAGxBP,EAAqB7H,MAAM7gC,IAAM,SAAU5H,GACrC,GAKNmvC,EAAM9uD,UAAU4vD,OAAS,SAAiB0B,EAAOC,EAAUC,GACvD,IAAI74B,EAAS75B,KAGXyT,EAAMk/C,EAAiBH,EAAOC,EAAUC,GACtCpvD,EAAOmQ,EAAInQ,KACXytD,EAAUt9C,EAAIs9C,QAGhBlD,GAFYp6C,EAAI+F,QAEL,CAAElW,KAAMA,EAAMytD,QAASA,IAClCiC,EAAQhzD,KAAKswD,WAAWhtD,GACvB0vD,IAMLhzD,KAAK4xD,aAAY,WACfoB,EAAMpsD,SAAQ,SAAyBkN,GACrCA,EAAQi9C,SAIZ/wD,KAAK0wD,aACFtwD,QACAwG,SAAQ,SAAUqiB,GAAO,OAAOA,EAAI4kC,EAAUh0B,EAAOyvB,YAa1D0G,EAAM9uD,UAAU2vD,SAAW,SAAmB2B,EAAOC,GACjD,IAAI54B,EAAS75B,KAGXyT,EAAMk/C,EAAiBH,EAAOC,GAC5BnvD,EAAOmQ,EAAInQ,KACXytD,EAAUt9C,EAAIs9C,QAEhB/C,EAAS,CAAE1qD,KAAMA,EAAMytD,QAASA,GAChCiC,EAAQhzD,KAAKowD,SAAS9sD,GAC1B,GAAK0vD,EAAL,CAOA,IACEhzD,KAAKqwD,mBACFjwD,QACAkpC,QAAO,SAAUrgB,GAAO,OAAOA,EAAI8Y,UACnCn7B,SAAQ,SAAUqiB,GAAO,OAAOA,EAAI8Y,OAAOisB,EAAQn0B,EAAOyvB,UAC7D,MAAO7+C,GACH,EAMN,IAAI/D,EAASssD,EAAMn0D,OAAS,EACxB2yB,QAAQ4hC,IAAIJ,EAAM/wC,KAAI,SAAUnO,GAAW,OAAOA,EAAQi9C,OAC1DiC,EAAM,GAAGjC,GAEb,OAAO,IAAIv/B,SAAQ,SAAUC,EAAS8N,GACpC74B,EAAO+a,MAAK,SAAUvX,GACpB,IACE2vB,EAAOw2B,mBACJ/mB,QAAO,SAAUrgB,GAAO,OAAOA,EAAIoqC,SACnCzsD,SAAQ,SAAUqiB,GAAO,OAAOA,EAAIoqC,MAAMrF,EAAQn0B,EAAOyvB,UAC5D,MAAO7+C,GACH,EAKNgnB,EAAQvnB,MACP,SAAUrI,GACX,IACEg4B,EAAOw2B,mBACJ/mB,QAAO,SAAUrgB,GAAO,OAAOA,EAAIpnB,SACnC+E,SAAQ,SAAUqiB,GAAO,OAAOA,EAAIpnB,MAAMmsD,EAAQn0B,EAAOyvB,MAAOznD,MACnE,MAAO4I,GACH,EAKN80B,EAAO19B,WAKbmuD,EAAM9uD,UAAU0sD,UAAY,SAAoBjvD,EAAI6a,GAClD,OAAO43C,EAAiBzyD,EAAIqB,KAAK0wD,aAAcl3C,IAGjDw2C,EAAM9uD,UAAU6sD,gBAAkB,SAA0BpvD,EAAI6a,GAC9D,IAAIuP,EAAqB,oBAAPpqB,EAAoB,CAAEojC,OAAQpjC,GAAOA,EACvD,OAAOyyD,EAAiBroC,EAAM/oB,KAAKqwD,mBAAoB72C,IAGzDw2C,EAAM9uD,UAAUsQ,MAAQ,SAAgByb,EAAQrY,EAAI4E,GAChD,IAAIqgB,EAAS75B,KAKf,OAAOA,KAAK2wD,WAAWxqB,QAAO,WAAc,OAAOlZ,EAAO4M,EAAOyvB,MAAOzvB,EAAOq1B,WAAat6C,EAAI4E,IAGlGw2C,EAAM9uD,UAAUysD,aAAe,SAAuBrE,GAClD,IAAIzvB,EAAS75B,KAEfA,KAAK4xD,aAAY,WACf/3B,EAAO23B,IAAI7vB,MAAM+vB,QAAUpI,MAI/B0G,EAAM9uD,UAAUoyD,eAAiB,SAAyBj8C,EAAMk3C,EAAW/0C,QACtD,IAAZA,IAAqBA,EAAU,IAElB,kBAATnC,IAAqBA,EAAO,CAACA,IAOxCrX,KAAKwwD,SAASf,SAASp4C,EAAMk3C,GAC7ByC,EAAchxD,KAAMA,KAAKspD,MAAOjyC,EAAMrX,KAAKwwD,SAASpqD,IAAIiR,GAAOmC,EAAQ+5C,eAEvEtC,EAAajxD,KAAMA,KAAKspD,QAG1B0G,EAAM9uD,UAAUsyD,iBAAmB,SAA2Bn8C,GAC1D,IAAIwiB,EAAS75B,KAEK,kBAATqX,IAAqBA,EAAO,CAACA,IAMxCrX,KAAKwwD,SAASV,WAAWz4C,GACzBrX,KAAK4xD,aAAY,WACf,IAAIE,EAAcC,EAAel4B,EAAOyvB,MAAOjyC,EAAKjX,MAAM,GAAI,IAC9D+9B,EAAIkM,OAAOynB,EAAaz6C,EAAKA,EAAKxY,OAAS,OAE7CwyD,EAAWrxD,OAGbgwD,EAAM9uD,UAAUuyD,UAAY,SAAoBp8C,GAO9C,MANoB,kBAATA,IAAqBA,EAAO,CAACA,IAMjCrX,KAAKwwD,SAAST,aAAa14C,IAGpC24C,EAAM9uD,UAAUwyD,UAAY,SAAoBC,GAC9C3zD,KAAKwwD,SAASlnC,OAAOqqC,GACrBtC,EAAWrxD,MAAM,IAGnBgwD,EAAM9uD,UAAU0wD,YAAc,SAAsBjzD,GAClD,IAAIi1D,EAAa5zD,KAAKmwD,YACtBnwD,KAAKmwD,aAAc,EACnBxxD,IACAqB,KAAKmwD,YAAcyD,GAGrBnyD,OAAOopB,iBAAkBmlC,EAAM9uD,UAAWiwD,GAmT1C,IAAI0C,EAAWC,GAAmB,SAAUlnB,EAAWmnB,GACrD,IAAI7pD,EAAM,GA0BV,OAtBA8pD,EAAaD,GAAQntD,SAAQ,SAAU6M,GACrC,IAAI3M,EAAM2M,EAAI3M,IACViE,EAAM0I,EAAI1I,IAEdb,EAAIpD,GAAO,WACT,IAAIwiD,EAAQtpD,KAAKstD,OAAOhE,MACpB4F,EAAUlvD,KAAKstD,OAAO4B,QAC1B,GAAItiB,EAAW,CACb,IAAIruC,EAAS01D,EAAqBj0D,KAAKstD,OAAQ,WAAY1gB,GAC3D,IAAKruC,EACH,OAEF+qD,EAAQ/qD,EAAOsF,QAAQylD,MACvB4F,EAAU3wD,EAAOsF,QAAQqrD,QAE3B,MAAsB,oBAARnkD,EACVA,EAAIhM,KAAKiB,KAAMspD,EAAO4F,GACtB5F,EAAMv+C,IAGZb,EAAIpD,GAAKotD,MAAO,KAEXhqD,KASLiqD,EAAeL,GAAmB,SAAUlnB,EAAWqiB,GACzD,IAAI/kD,EAAM,GA0BV,OAtBA8pD,EAAa/E,GAAWroD,SAAQ,SAAU6M,GACxC,IAAI3M,EAAM2M,EAAI3M,IACViE,EAAM0I,EAAI1I,IAEdb,EAAIpD,GAAO,WACT,IAAIrG,EAAO,GAAIgrB,EAAMrsB,UAAUP,OAC/B,MAAQ4sB,IAAQhrB,EAAMgrB,GAAQrsB,UAAWqsB,GAGzC,IAAIqlC,EAAS9wD,KAAKstD,OAAOwD,OACzB,GAAIlkB,EAAW,CACb,IAAIruC,EAAS01D,EAAqBj0D,KAAKstD,OAAQ,eAAgB1gB,GAC/D,IAAKruC,EACH,OAEFuyD,EAASvyD,EAAOsF,QAAQitD,OAE1B,MAAsB,oBAAR/lD,EACVA,EAAI5L,MAAMa,KAAM,CAAC8wD,GAAQ7vD,OAAOR,IAChCqwD,EAAO3xD,MAAMa,KAAKstD,OAAQ,CAACviD,GAAK9J,OAAOR,QAGxCyJ,KASLkqD,EAAaN,GAAmB,SAAUlnB,EAAWsiB,GACvD,IAAIhlD,EAAM,GAuBV,OAnBA8pD,EAAa9E,GAAStoD,SAAQ,SAAU6M,GACtC,IAAI3M,EAAM2M,EAAI3M,IACViE,EAAM0I,EAAI1I,IAGdA,EAAM6hC,EAAY7hC,EAClBb,EAAIpD,GAAO,WACT,IAAI8lC,GAAcqnB,EAAqBj0D,KAAKstD,OAAQ,aAAc1gB,GAOlE,OAAO5sC,KAAKstD,OAAO4B,QAAQnkD,IAG7Bb,EAAIpD,GAAKotD,MAAO,KAEXhqD,KASLmqD,EAAaP,GAAmB,SAAUlnB,EAAWoiB,GACvD,IAAI9kD,EAAM,GA0BV,OAtBA8pD,EAAahF,GAASpoD,SAAQ,SAAU6M,GACtC,IAAI3M,EAAM2M,EAAI3M,IACViE,EAAM0I,EAAI1I,IAEdb,EAAIpD,GAAO,WACT,IAAIrG,EAAO,GAAIgrB,EAAMrsB,UAAUP,OAC/B,MAAQ4sB,IAAQhrB,EAAMgrB,GAAQrsB,UAAWqsB,GAGzC,IAAIolC,EAAW7wD,KAAKstD,OAAOuD,SAC3B,GAAIjkB,EAAW,CACb,IAAIruC,EAAS01D,EAAqBj0D,KAAKstD,OAAQ,aAAc1gB,GAC7D,IAAKruC,EACH,OAEFsyD,EAAWtyD,EAAOsF,QAAQgtD,SAE5B,MAAsB,oBAAR9lD,EACVA,EAAI5L,MAAMa,KAAM,CAAC6wD,GAAU5vD,OAAOR,IAClCowD,EAAS1xD,MAAMa,KAAKstD,OAAQ,CAACviD,GAAK9J,OAAOR,QAG1CyJ,KAQLoqD,EAA0B,SAAU1nB,GAAa,MAAO,CAC1DinB,SAAUA,EAAS/yD,KAAK,KAAM8rC,GAC9BwnB,WAAYA,EAAWtzD,KAAK,KAAM8rC,GAClCunB,aAAcA,EAAarzD,KAAK,KAAM8rC,GACtCynB,WAAYA,EAAWvzD,KAAK,KAAM8rC,KAUpC,SAASonB,EAAc/xC,GACrB,OAAKsyC,EAAWtyC,GAGT5f,MAAM6a,QAAQ+E,GACjBA,EAAIA,KAAI,SAAUnb,GAAO,MAAO,CAAGA,IAAKA,EAAKiE,IAAKjE,MAClDrF,OAAOoO,KAAKoS,GAAKA,KAAI,SAAUnb,GAAO,MAAO,CAAGA,IAAKA,EAAKiE,IAAKkX,EAAInb,OAJ9D,GAYX,SAASytD,EAAYtyC,GACnB,OAAO5f,MAAM6a,QAAQ+E,IAAQ9hB,EAAS8hB,GAQxC,SAAS6xC,EAAoBn1D,GAC3B,OAAO,SAAUiuC,EAAW3qB,GAO1B,MANyB,kBAAd2qB,GACT3qB,EAAM2qB,EACNA,EAAY,IACwC,MAA3CA,EAAU3pB,OAAO2pB,EAAU/tC,OAAS,KAC7C+tC,GAAa,KAERjuC,EAAGiuC,EAAW3qB,IAWzB,SAASgyC,EAAsB5G,EAAOmH,EAAQ5nB,GAC5C,IAAIruC,EAAS8uD,EAAMoD,qBAAqB7jB,GAIxC,OAAOruC,EAKT,SAASk2D,EAAchhD,QACR,IAARA,IAAiBA,EAAM,IAC5B,IAAIihD,EAAYjhD,EAAIihD,eAA8B,IAAdA,IAAuBA,GAAY,GACvE,IAAIprB,EAAS71B,EAAI61B,YAAwB,IAAXA,IAAoBA,EAAS,SAAUukB,EAAU8G,EAAaC,GAAc,OAAO,IACjH,IAAIC,EAAcphD,EAAIohD,iBAAkC,IAAhBA,IAAyBA,EAAc,SAAUvL,GAAS,OAAOA,IACzG,IAAIwL,EAAsBrhD,EAAIqhD,yBAAkD,IAAxBA,IAAiCA,EAAsB,SAAUC,GAAO,OAAOA,IACvI,IAAIC,EAAevhD,EAAIuhD,kBAAoC,IAAjBA,IAA0BA,EAAe,SAAUhH,EAAQ1E,GAAS,OAAO,IACrH,IAAI2L,EAAoBxhD,EAAIwhD,uBAA8C,IAAtBA,IAA+BA,EAAoB,SAAUC,GAAO,OAAOA,IAC/H,IAAIC,EAAe1hD,EAAI0hD,kBAAoC,IAAjBA,IAA0BA,GAAe,GACnF,IAAIC,EAAa3hD,EAAI2hD,gBAAgC,IAAfA,IAAwBA,GAAa,GAC3E,IAAIC,EAAS5hD,EAAI4hD,OAEjB,YAFyC,IAAXA,IAAoBA,EAASpkC,SAEpD,SAAUo8B,GACf,IAAIiI,EAAYpH,EAASb,EAAM/D,OAET,qBAAX+L,IAIPF,GACF9H,EAAMO,WAAU,SAAUC,EAAUvE,GAClC,IAAIiM,EAAYrH,EAAS5E,GAEzB,GAAIhgB,EAAOukB,EAAUyH,EAAWC,GAAY,CAC1C,IAAIC,EAAgBC,IAChBC,EAAoBZ,EAAoBjH,GACxC8H,EAAU,YAAe9H,EAAa,KAAI2H,EAE9CI,EAAaP,EAAQM,EAASjB,GAC9BW,EAAOQ,IAAI,gBAAiB,oCAAqChB,EAAYS,IAC7ED,EAAOQ,IAAI,cAAe,oCAAqCH,GAC/DL,EAAOQ,IAAI,gBAAiB,oCAAqChB,EAAYU,IAC7EO,EAAWT,GAGbC,EAAYC,KAIZH,GACF/H,EAAMU,iBAAgB,SAAUC,EAAQ1E,GACtC,GAAI0L,EAAahH,EAAQ1E,GAAQ,CAC/B,IAAIkM,EAAgBC,IAChBM,EAAkBd,EAAkBjH,GACpC2H,EAAU,UAAa3H,EAAW,KAAIwH,EAE1CI,EAAaP,EAAQM,EAASjB,GAC9BW,EAAOQ,IAAI,YAAa,oCAAqCE,GAC7DD,EAAWT,SAOrB,SAASO,EAAcP,EAAQM,EAASjB,GACtC,IAAIkB,EAAelB,EACfW,EAAOW,eACPX,EAAOhyD,MAGX,IACEuyD,EAAa72D,KAAKs2D,EAAQM,GAC1B,MAAOlrD,GACP4qD,EAAOQ,IAAIF,IAIf,SAASG,EAAYT,GACnB,IACEA,EAAOY,WACP,MAAOxrD,GACP4qD,EAAOQ,IAAI,kBAIf,SAASJ,IACP,IAAIS,EAAO,IAAI1xC,KACf,MAAQ,MAAS2xC,EAAID,EAAKE,WAAY,GAAM,IAAOD,EAAID,EAAKG,aAAc,GAAM,IAAOF,EAAID,EAAKI,aAAc,GAAM,IAAOH,EAAID,EAAKK,kBAAmB,GAGzJ,SAAShvD,EAAQE,EAAK+uD,GACpB,OAAO,IAAKn0D,MAAMm0D,EAAQ,GAAI31D,KAAK4G,GAGrC,SAAS0uD,EAAKM,EAAK3Q,GACjB,OAAOv+C,EAAO,IAAKu+C,EAAY2Q,EAAIn1D,WAAWzC,QAAU43D,EAG1D,IAAI1sD,EAAQ,CACVimD,MAAOA,EACP7nB,QAASA,EACToC,QAAS,QACTspB,SAAUA,EACVM,aAAcA,EACdC,WAAYA,EACZC,WAAYA,EACZC,wBAAyBA,EACzBG,aAAcA,GAGD,W,0DCrtCf,0BAGe,sBAAuB,SAAU,MAAhD,a,uBCHAl2D,EAAOC,QACE,SAAU8vC,GAET,IAAIooB,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUp4D,QAGnC,IAAID,EAASm4D,EAAiBE,GAAY,CACzCj2D,EAAGi2D,EACHrzC,GAAG,EACH/kB,QAAS,IAUV,OANA8vC,EAAQsoB,GAAU73D,KAAKR,EAAOC,QAASD,EAAQA,EAAOC,QAASm4D,GAG/Dp4D,EAAOglB,GAAI,EAGJhlB,EAAOC,QA0Df,OArDAm4D,EAAoBE,EAAIvoB,EAGxBqoB,EAAoBz3D,EAAIw3D,EAGxBC,EAAoBzoD,EAAI,SAAS1P,EAAS4D,EAAM6qB,GAC3C0pC,EAAoB50D,EAAEvD,EAAS4D,IAClCX,OAAO0E,eAAe3H,EAAS4D,EAAM,CAAEmkB,YAAY,EAAMngB,IAAK6mB,KAKhE0pC,EAAoBG,EAAI,SAASt4D,GACX,qBAAX6e,QAA0BA,OAAOohB,aAC1Ch9B,OAAO0E,eAAe3H,EAAS6e,OAAOohB,YAAa,CAAE53B,MAAO,WAE7DpF,OAAO0E,eAAe3H,EAAS,aAAc,CAAEqI,OAAO,KAQvD8vD,EAAoBI,EAAI,SAASlwD,EAAOnD,GAEvC,GADU,EAAPA,IAAUmD,EAAQ8vD,EAAoB9vD,IAC/B,EAAPnD,EAAU,OAAOmD,EACpB,GAAW,EAAPnD,GAA8B,kBAAVmD,GAAsBA,GAASA,EAAM23B,WAAY,OAAO33B,EAChF,IAAIijB,EAAKroB,OAAOygB,OAAO,MAGvB,GAFAy0C,EAAoBG,EAAEhtC,GACtBroB,OAAO0E,eAAe2jB,EAAI,UAAW,CAAEvD,YAAY,EAAM1f,MAAOA,IACtD,EAAPnD,GAA4B,iBAATmD,EAAmB,IAAI,IAAIC,KAAOD,EAAO8vD,EAAoBzoD,EAAE4b,EAAIhjB,EAAK,SAASA,GAAO,OAAOD,EAAMC,IAAQhG,KAAK,KAAMgG,IAC9I,OAAOgjB,GAIR6sC,EAAoBz0D,EAAI,SAAS3D,GAChC,IAAI0uB,EAAS1uB,GAAUA,EAAOigC,WAC7B,WAAwB,OAAOjgC,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAo4D,EAAoBzoD,EAAE+e,EAAQ,IAAKA,GAC5BA,GAIR0pC,EAAoB50D,EAAI,SAASmU,EAAQ8W,GAAY,OAAOvrB,OAAOP,UAAUyQ,eAAe5S,KAAKmX,EAAQ8W,IAGzG2pC,EAAoBpsD,EAAI,GAIjBosD,EAAoBA,EAAoBhb,EAAI,QAnFpD,CAsFC,CAEJ,OACA,SAAUp9C,EAAQC,EAASm4D,GAEjC,aAEA,IAAIK,EAAUL,EAAoB,QAC9BM,EAAUN,EAAoB,QAC9Bv9C,EAAWu9C,EAAoB,QAC/BO,EAAOP,EAAoB,QAC3BQ,EAAYR,EAAoB,QAChCS,EAAcT,EAAoB,QAClChU,EAAiBgU,EAAoB,QACrCU,EAAiBV,EAAoB,QACrCrwD,EAAWqwD,EAAoB,OAApBA,CAA4B,YACvCW,IAAU,GAAGznD,MAAQ,QAAU,GAAGA,QAClC0nD,EAAc,aACdC,EAAO,OACPC,EAAS,SAETC,EAAa,WAAc,OAAO13D,MAEtCzB,EAAOC,QAAU,SAAUm5D,EAAMC,EAAMviD,EAAaU,EAAM8hD,EAASC,EAAQr+C,GACzE29C,EAAY/hD,EAAauiD,EAAM7hD,GAC/B,IAeI9J,EAASnF,EAAKixD,EAfdC,EAAY,SAAUC,GACxB,IAAKX,GAASW,KAAQr4D,EAAO,OAAOA,EAAMq4D,GAC1C,OAAQA,GACN,KAAKT,EAAM,OAAO,WAAkB,OAAO,IAAIniD,EAAYrV,KAAMi4D,IACjE,KAAKR,EAAQ,OAAO,WAAoB,OAAO,IAAIpiD,EAAYrV,KAAMi4D,IACrE,OAAO,WAAqB,OAAO,IAAI5iD,EAAYrV,KAAMi4D,KAEzDC,EAAMN,EAAO,YACbO,EAAaN,GAAWJ,EACxBW,GAAa,EACbx4D,EAAQ+3D,EAAKz2D,UACbm3D,EAAUz4D,EAAM0G,IAAa1G,EAAM23D,IAAgBM,GAAWj4D,EAAMi4D,GACpES,EAAWD,GAAWL,EAAUH,GAChCU,EAAWV,EAAWM,EAAwBH,EAAU,WAArBM,OAAkCx5D,EACrE05D,EAAqB,SAARZ,GAAkBh4D,EAAM64D,SAAqBJ,EAwB9D,GArBIG,IACFT,EAAoBV,EAAemB,EAAWz5D,KAAK,IAAI44D,IACnDI,IAAsBt2D,OAAOP,WAAa62D,EAAkBhiD,OAE9D4sC,EAAeoV,EAAmBG,GAAK,GAElClB,GAAiD,mBAA/Be,EAAkBzxD,IAAyB4wD,EAAKa,EAAmBzxD,EAAUoxD,KAIpGS,GAAcE,GAAWA,EAAQj2D,OAASq1D,IAC5CW,GAAa,EACbE,EAAW,WAAoB,OAAOD,EAAQt5D,KAAKiB,QAG/Cg3D,IAAWv9C,IAAY69C,IAASc,GAAex4D,EAAM0G,IACzD4wD,EAAKt3D,EAAO0G,EAAUgyD,GAGxBnB,EAAUS,GAAQU,EAClBnB,EAAUe,GAAOR,EACbG,EAMF,GALA5rD,EAAU,CACRlG,OAAQoyD,EAAaG,EAAWN,EAAUP,GAC1C5nD,KAAMioD,EAASQ,EAAWN,EAAUR,GACpCiB,QAASF,GAEP9+C,EAAQ,IAAK3S,KAAOmF,EAChBnF,KAAOlH,GAAQwZ,EAASxZ,EAAOkH,EAAKmF,EAAQnF,SAC7CmwD,EAAQA,EAAQl0D,EAAIk0D,EAAQyB,GAAKpB,GAASc,GAAaR,EAAM3rD,GAEtE,OAAOA,IAMH,OACA,SAAU1N,EAAQC,EAASm4D,GAEjC,IAAIl3D,EAAYk3D,EAAoB,QAChCgC,EAAUhC,EAAoB,QAGlCp4D,EAAOC,QAAU,SAAUqc,GACzB,OAAO,SAAUjc,EAAMiiD,GACrB,IAGI7hD,EAAGC,EAHH08C,EAAIl9C,OAAOk6D,EAAQ/5D,IACnB+B,EAAIlB,EAAUohD,GACdt9B,EAAIo4B,EAAE98C,OAEV,OAAI8B,EAAI,GAAKA,GAAK4iB,EAAU1I,EAAY,QAAK/b,GAC7CE,EAAI28C,EAAEt1B,WAAW1lB,GACV3B,EAAI,OAAUA,EAAI,OAAU2B,EAAI,IAAM4iB,IAAMtkB,EAAI08C,EAAEt1B,WAAW1lB,EAAI,IAAM,OAAU1B,EAAI,MACxF4b,EAAY8gC,EAAE14B,OAAOtiB,GAAK3B,EAC1B6b,EAAY8gC,EAAEv7C,MAAMO,EAAGA,EAAI,GAA2B1B,EAAI,OAAzBD,EAAI,OAAU,IAAqB,UAOtE,OACA,SAAUT,EAAQC,EAASm4D,GAEjC,aAEA,IAAIiC,EAAKjC,EAAoB,OAApBA,EAA4B,GAIrCp4D,EAAOC,QAAU,SAAU6L,EAAGN,EAAOL,GACnC,OAAOK,GAASL,EAAUkvD,EAAGvuD,EAAGN,GAAOlL,OAAS,KAM5C,OACA,SAAUN,EAAQC,EAASm4D,GAEjC,aAGA,IAAI7uD,EAAW6uD,EAAoB,QACnCp4D,EAAOC,QAAU,WACf,IAAII,EAAOkJ,EAAS9H,MAChB0G,EAAS,GAMb,OALI9H,EAAKwQ,SAAQ1I,GAAU,KACvB9H,EAAK4K,aAAY9C,GAAU,KAC3B9H,EAAK6K,YAAW/C,GAAU,KAC1B9H,EAAK8K,UAAShD,GAAU,KACxB9H,EAAK+K,SAAQjD,GAAU,KACpBA,IAMH,OACA,SAAUnI,EAAQC,EAASm4D,GAGjC,IAAIkC,EAAQlC,EAAoB,QAC5Bx8C,EAAcw8C,EAAoB,QAEtCp4D,EAAOC,QAAUiD,OAAOoO,MAAQ,SAAc9P,GAC5C,OAAO84D,EAAM94D,EAAGoa,KAMZ,KACA,SAAU5b,EAAQC,EAASm4D,GAEjC,IAAImC,EAAKnC,EAAoB,QACzB7uD,EAAW6uD,EAAoB,QAC/BoC,EAAUpC,EAAoB,QAElCp4D,EAAOC,QAAUm4D,EAAoB,QAAUl1D,OAAOopB,iBAAmB,SAA0B9qB,EAAGi5D,GACpGlxD,EAAS/H,GACT,IAGIgD,EAHA8M,EAAOkpD,EAAQC,GACfn6D,EAASgR,EAAKhR,OACd8B,EAAI,EAER,MAAO9B,EAAS8B,EAAGm4D,EAAGz3D,EAAEtB,EAAGgD,EAAI8M,EAAKlP,KAAMq4D,EAAWj2D,IACrD,OAAOhD,IAMH,OACA,SAAUxB,EAAQC,EAASm4D,GAEjC,aAEAA,EAAoB,QACpB,IAAIv9C,EAAWu9C,EAAoB,QAC/BO,EAAOP,EAAoB,QAC3B1wD,EAAQ0wD,EAAoB,QAC5BgC,EAAUhC,EAAoB,QAC9BsC,EAAMtC,EAAoB,QAC1BzuD,EAAayuD,EAAoB,QAEjCj/C,EAAUuhD,EAAI,WAEdC,GAAiCjzD,GAAM,WAIzC,IAAIkzD,EAAK,IAMT,OALAA,EAAGjqD,KAAO,WACR,IAAIxI,EAAS,GAEb,OADAA,EAAO0yD,OAAS,CAAEp6D,EAAG,KACd0H,GAEyB,MAA3B,GAAGiQ,QAAQwiD,EAAI,WAGpBE,EAAoC,WAEtC,IAAIF,EAAK,OACLG,EAAeH,EAAGjqD,KACtBiqD,EAAGjqD,KAAO,WAAc,OAAOoqD,EAAan6D,MAAMa,KAAMZ,YACxD,IAAIsH,EAAS,KAAKoC,MAAMqwD,GACxB,OAAyB,IAAlBzyD,EAAO7H,QAA8B,MAAd6H,EAAO,IAA4B,MAAdA,EAAO,GANpB,GASxCnI,EAAOC,QAAU,SAAU+6D,EAAK16D,EAAQqQ,GACtC,IAAIsqD,EAASP,EAAIM,GAEbE,GAAuBxzD,GAAM,WAE/B,IAAIlG,EAAI,GAER,OADAA,EAAEy5D,GAAU,WAAc,OAAO,GACZ,GAAd,GAAGD,GAAKx5D,MAGb25D,EAAoBD,GAAuBxzD,GAAM,WAEnD,IAAI0zD,GAAa,EACbR,EAAK,IAST,OARAA,EAAGjqD,KAAO,WAAiC,OAAnByqD,GAAa,EAAa,MACtC,UAARJ,IAGFJ,EAAGh3D,YAAc,GACjBg3D,EAAGh3D,YAAYuV,GAAW,WAAc,OAAOyhD,IAEjDA,EAAGK,GAAQ,KACHG,UACL76D,EAEL,IACG26D,IACAC,GACQ,YAARH,IAAsBL,GACd,UAARK,IAAoBF,EACrB,CACA,IAAIO,EAAqB,IAAIJ,GACzB1mC,EAAM5jB,EACRypD,EACAa,EACA,GAAGD,IACH,SAAyBM,EAAc5vD,EAAQxC,EAAKqyD,EAAMC,GACxD,OAAI9vD,EAAOiF,OAAShH,EACduxD,IAAwBM,EAInB,CAAE5vD,MAAM,EAAMtD,MAAO+yD,EAAmB76D,KAAKkL,EAAQxC,EAAKqyD,IAE5D,CAAE3vD,MAAM,EAAMtD,MAAOgzD,EAAa96D,KAAK0I,EAAKwC,EAAQ6vD,IAEtD,CAAE3vD,MAAM,MAGf6vD,EAAQlnC,EAAI,GACZmnC,EAAOnnC,EAAI,GAEf1Z,EAAS3a,OAAOyC,UAAWq4D,EAAKS,GAChC9C,EAAKzuD,OAAOvH,UAAWs4D,EAAkB,GAAV36D,EAG3B,SAAUoK,EAAQqqC,GAAO,OAAO2mB,EAAKl7D,KAAKkK,EAAQjJ,KAAMszC,IAGxD,SAAUrqC,GAAU,OAAOgxD,EAAKl7D,KAAKkK,EAAQjJ,WAQ/C,OACA,SAAUzB,EAAQC,EAASm4D,GAEjC,IAAIx2D,EAAWw2D,EAAoB,QAC/BlkD,EAAWkkD,EAAoB,QAAQlkD,SAEvC9H,EAAKxK,EAASsS,IAAatS,EAASsS,EAASvM,eACjD3H,EAAOC,QAAU,SAAUoD,GACzB,OAAO+I,EAAK8H,EAASvM,cAActE,GAAM,KAMrC,OACA,SAAUrD,EAAQC,EAASm4D,GAGjC,IAAIuD,EAAMvD,EAAoB,QAC1BuB,EAAMvB,EAAoB,OAApBA,CAA4B,eAElCwD,EAAkD,aAA5CD,EAAI,WAAc,OAAO96D,UAArB,IAGVg7D,EAAS,SAAUx4D,EAAIkF,GACzB,IACE,OAAOlF,EAAGkF,GACV,MAAO2D,MAGXlM,EAAOC,QAAU,SAAUoD,GACzB,IAAI7B,EAAGs6D,EAAGC,EACV,YAAcx7D,IAAP8C,EAAmB,YAAqB,OAAPA,EAAc,OAEN,iBAApCy4D,EAAID,EAAOr6D,EAAI0B,OAAOG,GAAKs2D,IAAoBmC,EAEvDF,EAAMD,EAAIn6D,GAEM,WAAfu6D,EAAIJ,EAAIn6D,KAAsC,mBAAZA,EAAEw6D,OAAuB,YAAcD,IAM1E,KACA,SAAU/7D,EAAQC,GAExBA,EAAQ6C,EAAII,OAAOwO,uBAKb,OACA,SAAU1R,EAAQC,EAASm4D,GAEjC,IAAIvnD,EAASunD,EAAoB,QAC7BO,EAAOP,EAAoB,QAC3Bh0D,EAAMg0D,EAAoB,QAC1B6D,EAAM7D,EAAoB,OAApBA,CAA4B,OAClC8D,EAAY9D,EAAoB,QAChC97C,EAAY,WACZ6/C,GAAO,GAAKD,GAAW3xD,MAAM+R,GAEjC87C,EAAoB,QAAQgE,cAAgB,SAAU/4D,GACpD,OAAO64D,EAAU17D,KAAK6C,KAGvBrD,EAAOC,QAAU,SAAUuB,EAAG+G,EAAKiE,EAAK6vD,GACvC,IAAIC,EAA2B,mBAAP9vD,EACpB8vD,IAAYl4D,EAAIoI,EAAK,SAAWmsD,EAAKnsD,EAAK,OAAQjE,IAClD/G,EAAE+G,KAASiE,IACX8vD,IAAYl4D,EAAIoI,EAAKyvD,IAAQtD,EAAKnsD,EAAKyvD,EAAKz6D,EAAE+G,GAAO,GAAK/G,EAAE+G,GAAO4zD,EAAI75D,KAAKpC,OAAOqI,MACnF/G,IAAMqP,EACRrP,EAAE+G,GAAOiE,EACC6vD,EAGD76D,EAAE+G,GACX/G,EAAE+G,GAAOiE,EAETmsD,EAAKn3D,EAAG+G,EAAKiE,WALNhL,EAAE+G,GACTowD,EAAKn3D,EAAG+G,EAAKiE,OAOdnK,SAASM,UAAW2Z,GAAW,WAChC,MAAsB,mBAAR7a,MAAsBA,KAAKw6D,IAAQC,EAAU17D,KAAKiB,UAM5D,OACA,SAAUzB,EAAQC,EAASm4D,GAGjC,IAAI7uD,EAAW6uD,EAAoB,QAC/BmE,EAAMnE,EAAoB,QAC1Bx8C,EAAcw8C,EAAoB,QAClCoE,EAAWpE,EAAoB,OAApBA,CAA4B,YACvCqE,EAAQ,aACRC,EAAY,YAGZC,EAAa,WAEf,IAIIC,EAJAC,EAASzE,EAAoB,OAApBA,CAA4B,UACrCh2D,EAAIwZ,EAAYtb,OAChBw8D,EAAK,IACLC,EAAK,IAETF,EAAOztD,MAAMyxC,QAAU,OACvBuX,EAAoB,QAAQzpB,YAAYkuB,GACxCA,EAAO7uC,IAAM,cAGb4uC,EAAiBC,EAAOG,cAAc9oD,SACtC0oD,EAAetmD,OACfsmD,EAAeK,MAAMH,EAAK,SAAWC,EAAK,oBAAsBD,EAAK,UAAYC,GACjFH,EAAermD,QACfomD,EAAaC,EAAezC,EAC5B,MAAO/3D,WAAYu6D,EAAWD,GAAW9gD,EAAYxZ,IACrD,OAAOu6D,KAGT38D,EAAOC,QAAUiD,OAAOygB,QAAU,SAAgBniB,EAAGi5D,GACnD,IAAItyD,EAQJ,OAPU,OAAN3G,GACFi7D,EAAMC,GAAanzD,EAAS/H,GAC5B2G,EAAS,IAAIs0D,EACbA,EAAMC,GAAa,KAEnBv0D,EAAOq0D,GAAYh7D,GACd2G,EAASw0D,SACMp8D,IAAfk6D,EAA2BtyD,EAASo0D,EAAIp0D,EAAQsyD,KAMnD,OACA,SAAUz6D,EAAQC,EAASm4D,GAEjC,IAAItJ,EAAQsJ,EAAoB,OAApBA,CAA4B,OACpC/tC,EAAM+tC,EAAoB,QAC1Bt5C,EAASs5C,EAAoB,QAAQt5C,OACrCo+C,EAA8B,mBAAVp+C,EAEpBq+C,EAAWn9D,EAAOC,QAAU,SAAU4D,GACxC,OAAOirD,EAAMjrD,KAAUirD,EAAMjrD,GAC3Bq5D,GAAcp+C,EAAOjb,KAAUq5D,EAAap+C,EAASuL,GAAK,UAAYxmB,KAG1Es5D,EAASrO,MAAQA,GAKX,OACA,SAAU9uD,EAAQC,GAExBD,EAAOC,SAAU,GAKX,OACA,SAAUD,EAAQC,GAExB,IAAI8C,EAAW,GAAGA,SAElB/C,EAAOC,QAAU,SAAUoD,GACzB,OAAON,EAASvC,KAAK6C,GAAIxB,MAAM,GAAI,KAM/B,OACA,SAAU7B,EAAQC,EAASm4D,GAEjC,aAGA,IAAIM,EAAUN,EAAoB,QAC9B9yD,EAAU8yD,EAAoB,QAC9BgF,EAAW,WAEf1E,EAAQA,EAAQl0D,EAAIk0D,EAAQyB,EAAI/B,EAAoB,OAApBA,CAA4BgF,GAAW,SAAU,CAC/EhhD,SAAU,SAAkBC,GAC1B,SAAU/W,EAAQ7D,KAAM4a,EAAc+gD,GACnC7rD,QAAQ8K,EAAcxb,UAAUP,OAAS,EAAIO,UAAU,QAAKN,OAO7D,OACA,SAAUP,EAAQC,EAASm4D,GAEjC,IAAImC,EAAKnC,EAAoB,QACzBiF,EAAajF,EAAoB,QACrCp4D,EAAOC,QAAUm4D,EAAoB,QAAU,SAAUzgD,EAAQpP,EAAKD,GACpE,OAAOiyD,EAAGz3D,EAAE6U,EAAQpP,EAAK80D,EAAW,EAAG/0D,KACrC,SAAUqP,EAAQpP,EAAKD,GAEzB,OADAqP,EAAOpP,GAAOD,EACPqP,IAMH,OACA,SAAU3X,EAAQC,EAASm4D,GAGjC,IAAIh0D,EAAMg0D,EAAoB,QAC1Bp3D,EAAWo3D,EAAoB,QAC/BoE,EAAWpE,EAAoB,OAApBA,CAA4B,YACvCkF,EAAcp6D,OAAOP,UAEzB3C,EAAOC,QAAUiD,OAAO41D,gBAAkB,SAAUt3D,GAElD,OADAA,EAAIR,EAASQ,GACT4C,EAAI5C,EAAGg7D,GAAkBh7D,EAAEg7D,GACH,mBAAjBh7D,EAAEoC,aAA6BpC,aAAaA,EAAEoC,YAChDpC,EAAEoC,YAAYjB,UACdnB,aAAa0B,OAASo6D,EAAc,OAMzC,OACA,SAAUt9D,EAAQC,EAASm4D,GAEjC,aAEA,IAAIz0C,EAASy0C,EAAoB,QAC7B/8C,EAAa+8C,EAAoB,QACjChU,EAAiBgU,EAAoB,QACrCoB,EAAoB,GAGxBpB,EAAoB,OAApBA,CAA4BoB,EAAmBpB,EAAoB,OAApBA,CAA4B,aAAa,WAAc,OAAO32D,QAE7GzB,EAAOC,QAAU,SAAU6W,EAAauiD,EAAM7hD,GAC5CV,EAAYnU,UAAYghB,EAAO61C,EAAmB,CAAEhiD,KAAM6D,EAAW,EAAG7D,KACxE4sC,EAAettC,EAAauiD,EAAO,eAM/B,OACA,SAAUr5D,EAAQC,EAASm4D,GAGjC,IAAIp3D,EAAWo3D,EAAoB,QAC/BkC,EAAQlC,EAAoB,QAEhCA,EAAoB,OAApBA,CAA4B,QAAQ,WAClC,OAAO,SAAc/0D,GACnB,OAAOi3D,EAAMt5D,EAASqC,SAOpB,KACA,SAAUrD,EAAQC,GAGxB,IAAIs9D,EAAOxzD,KAAKwzD,KACZx6C,EAAQhZ,KAAKgZ,MACjB/iB,EAAOC,QAAU,SAAUoD,GACzB,OAAOkgB,MAAMlgB,GAAMA,GAAM,GAAKA,EAAK,EAAI0f,EAAQw6C,GAAMl6D,KAMjD,KACA,SAAUrD,EAAQC,GAExBD,EAAOC,QAAU,SAAUu9D,EAAQl1D,GACjC,MAAO,CACL0f,aAAuB,EAATw1C,GACdzgD,eAAyB,EAATygD,GAChBv1C,WAAqB,EAATu1C,GACZl1D,MAAOA,KAOL,OACA,SAAUtI,EAAQC,EAASm4D,GAGjC,IAAIgC,EAAUhC,EAAoB,QAClCp4D,EAAOC,QAAU,SAAUoD,GACzB,OAAOH,OAAOk3D,EAAQ/2D,MAMlB,KACA,SAAUrD,EAAQC,EAASm4D,GAEjC,IAAIqF,EAAQrF,EAAoB,OAApBA,CAA4B,SACxCp4D,EAAOC,QAAU,SAAU+6D,GACzB,IAAIJ,EAAK,IACT,IACE,MAAMI,GAAKJ,GACX,MAAO1uD,GACP,IAEE,OADA0uD,EAAG6C,IAAS,GACJ,MAAMzC,GAAKJ,GACnB,MAAO93D,KACT,OAAO,IAML,OACA,SAAU9C,EAAQC,EAASm4D,GAEjC,aAGA,IAAIsF,EAActF,EAAoB,QAElCuF,EAAazzD,OAAOvH,UAAUgO,KAI9BitD,EAAgB19D,OAAOyC,UAAUyV,QAEjCylD,EAAcF,EAEdG,EAAa,YAEbC,EAA2B,WAC7B,IAAIC,EAAM,IACNC,EAAM,MAGV,OAFAN,EAAWn9D,KAAKw9D,EAAK,KACrBL,EAAWn9D,KAAKy9D,EAAK,KACM,IAApBD,EAAIF,IAAyC,IAApBG,EAAIH,GALP,GAS3BI,OAAuC39D,IAAvB,OAAOoQ,KAAK,IAAI,GAEhCwtD,EAAQJ,GAA4BG,EAEpCC,IACFN,EAAc,SAAc30D,GAC1B,IACI2B,EAAWuzD,EAAQxzD,EAAOxI,EAD1Bw4D,EAAKn5D,KAwBT,OArBIy8D,IACFE,EAAS,IAAIl0D,OAAO,IAAM0wD,EAAGrvD,OAAS,WAAYmyD,EAAYl9D,KAAKo6D,KAEjEmD,IAA0BlzD,EAAY+vD,EAAGkD,IAE7ClzD,EAAQ+yD,EAAWn9D,KAAKo6D,EAAI1xD,GAExB60D,GAA4BnzD,IAC9BgwD,EAAGkD,GAAclD,EAAG/pD,OAASjG,EAAMY,MAAQZ,EAAM,GAAGtK,OAASuK,GAE3DqzD,GAAiBtzD,GAASA,EAAMtK,OAAS,GAI3Cs9D,EAAcp9D,KAAKoK,EAAM,GAAIwzD,GAAQ,WACnC,IAAKh8D,EAAI,EAAGA,EAAIvB,UAAUP,OAAS,EAAG8B,SACf7B,IAAjBM,UAAUuB,KAAkBwI,EAAMxI,QAAK7B,MAK1CqK,IAIX5K,EAAOC,QAAU49D,GAKX,OACA,SAAU79D,EAAQC,GAExBA,EAAQ6C,EAAI,GAAG8O,sBAKT,KACA,SAAU5R,EAAQC,EAASm4D,GAEjC,IAAIiG,EAAOjG,EAAoB,QAC3BvnD,EAASunD,EAAoB,QAC7BkG,EAAS,qBACTxP,EAAQj+C,EAAOytD,KAAYztD,EAAOytD,GAAU,KAE/Ct+D,EAAOC,QAAU,SAAUsI,EAAKD,GAC/B,OAAOwmD,EAAMvmD,KAASumD,EAAMvmD,QAAiBhI,IAAV+H,EAAsBA,EAAQ,MAChE,WAAY,IAAIuB,KAAK,CACtBmiC,QAASqyB,EAAKryB,QACd7mC,KAAMizD,EAAoB,QAAU,OAAS,SAC7CmG,UAAW,0CAMP,OACA,SAAUv+D,EAAQC,EAASm4D,GAEjC,IAAIvnD,EAASunD,EAAoB,QAC7BiG,EAAOjG,EAAoB,QAC3BO,EAAOP,EAAoB,QAC3Bv9C,EAAWu9C,EAAoB,QAC/BtzC,EAAMszC,EAAoB,QAC1BsE,EAAY,YAEZhE,EAAU,SAAU3zD,EAAMlB,EAAM0H,GAClC,IAQIhD,EAAKi2D,EAAKC,EAAKC,EARfC,EAAY55D,EAAO2zD,EAAQyB,EAC3ByE,EAAY75D,EAAO2zD,EAAQmG,EAC3BC,EAAY/5D,EAAO2zD,EAAQ5sD,EAC3BizD,EAAWh6D,EAAO2zD,EAAQl0D,EAC1Bw6D,EAAUj6D,EAAO2zD,EAAQqD,EACzB36D,EAASw9D,EAAY/tD,EAASiuD,EAAYjuD,EAAOhN,KAAUgN,EAAOhN,GAAQ,KAAOgN,EAAOhN,IAAS,IAAI64D,GACrGz8D,EAAU2+D,EAAYP,EAAOA,EAAKx6D,KAAUw6D,EAAKx6D,GAAQ,IACzDo7D,EAAWh/D,EAAQy8D,KAAez8D,EAAQy8D,GAAa,IAG3D,IAAKn0D,KADDq2D,IAAWrzD,EAAS1H,GACZ0H,EAEVizD,GAAOG,GAAav9D,QAA0Bb,IAAhBa,EAAOmH,GAErCk2D,GAAOD,EAAMp9D,EAASmK,GAAQhD,GAE9Bm2D,EAAMM,GAAWR,EAAM15C,EAAI25C,EAAK5tD,GAAUkuD,GAA0B,mBAAPN,EAAoB35C,EAAIziB,SAAS7B,KAAMi+D,GAAOA,EAEvGr9D,GAAQyZ,EAASzZ,EAAQmH,EAAKk2D,EAAK15D,EAAO2zD,EAAQwG,GAElDj/D,EAAQsI,IAAQk2D,GAAK9F,EAAK14D,EAASsI,EAAKm2D,GACxCK,GAAYE,EAAS12D,IAAQk2D,IAAKQ,EAAS12D,GAAOk2D,IAG1D5tD,EAAOwtD,KAAOA,EAEd3F,EAAQyB,EAAI,EACZzB,EAAQmG,EAAI,EACZnG,EAAQ5sD,EAAI,EACZ4sD,EAAQl0D,EAAI,EACZk0D,EAAQqD,EAAI,GACZrD,EAAQyG,EAAI,GACZzG,EAAQwG,EAAI,GACZxG,EAAQhoD,EAAI,IACZ1Q,EAAOC,QAAUy4D,GAKX,OACA,SAAU14D,EAAQC,EAASm4D,GAGjC,IAAIM,EAAUN,EAAoB,QAC9BiG,EAAOjG,EAAoB,QAC3B1wD,EAAQ0wD,EAAoB,QAChCp4D,EAAOC,QAAU,SAAU+6D,EAAKrqD,GAC9B,IAAIvQ,GAAMi+D,EAAKn7D,QAAU,IAAI83D,IAAQ93D,OAAO83D,GACxC0D,EAAM,GACVA,EAAI1D,GAAOrqD,EAAKvQ,GAChBs4D,EAAQA,EAAQ5sD,EAAI4sD,EAAQyB,EAAIzyD,GAAM,WAActH,EAAG,MAAQ,SAAUs+D,KAMrE,OACA,SAAU1+D,EAAQC,EAASm4D,GAEjC,aAGA,IAAI3nD,EAAU2nD,EAAoB,QAC9BgH,EAAcl1D,OAAOvH,UAAUgO,KAInC3Q,EAAOC,QAAU,SAAUyQ,EAAG5E,GAC5B,IAAI6E,EAAOD,EAAEC,KACb,GAAoB,oBAATA,EAAqB,CAC9B,IAAIxI,EAASwI,EAAKnQ,KAAKkQ,EAAG5E,GAC1B,GAAsB,kBAAX3D,EACT,MAAM,IAAIyI,UAAU,sEAEtB,OAAOzI,EAET,GAAmB,WAAfsI,EAAQC,GACV,MAAM,IAAIE,UAAU,+CAEtB,OAAOwuD,EAAY5+D,KAAKkQ,EAAG5E,KAMvB,OACA,SAAU9L,EAAQC,EAASm4D,GAEjC,IAAIiH,EAASjH,EAAoB,OAApBA,CAA4B,QACrC/tC,EAAM+tC,EAAoB,QAC9Bp4D,EAAOC,QAAU,SAAUsI,GACzB,OAAO82D,EAAO92D,KAAS82D,EAAO92D,GAAO8hB,EAAI9hB,MAMrC,OACA,SAAUvI,EAAQC,EAASm4D,GAGjC,IAAIuD,EAAMvD,EAAoB,QAE9Bp4D,EAAOC,QAAUiD,OAAO,KAAK0O,qBAAqB,GAAK1O,OAAS,SAAUG,GACxE,MAAkB,UAAXs4D,EAAIt4D,GAAkBA,EAAGkH,MAAM,IAAMrH,OAAOG,KAM/C,KACA,SAAUrD,EAAQC,EAASm4D,GAEjC,aAGA,IAAIM,EAAUN,EAAoB,QAC9BkH,EAAYlH,EAAoB,OAApBA,EAA4B,GAE5CM,EAAQA,EAAQl0D,EAAG,QAAS,CAC1B4X,SAAU,SAAkB1W,GAC1B,OAAO45D,EAAU79D,KAAMiE,EAAI7E,UAAUP,OAAS,EAAIO,UAAU,QAAKN,MAIrE63D,EAAoB,OAApBA,CAA4B,aAKtB,KACA,SAAUp4D,EAAQC,EAASm4D,GAGjC,IAAImH,EAAUnH,EAAoB,QAC9BgC,EAAUhC,EAAoB,QAClCp4D,EAAOC,QAAU,SAAUoD,GACzB,OAAOk8D,EAAQnF,EAAQ/2D,MAMnB,OACA,SAAUrD,EAAQC,GAExB,IAAImT,EAAiB,GAAGA,eACxBpT,EAAOC,QAAU,SAAUoD,EAAIkF,GAC7B,OAAO6K,EAAe5S,KAAK6C,EAAIkF,KAM3B,OACA,SAAUvI,EAAQC,EAASm4D,GAGjC,IAAIx2D,EAAWw2D,EAAoB,QAGnCp4D,EAAOC,QAAU,SAAUoD,EAAIyI,GAC7B,IAAKlK,EAASyB,GAAK,OAAOA,EAC1B,IAAIjD,EAAIoM,EACR,GAAIV,GAAkC,mBAArB1L,EAAKiD,EAAGN,YAA4BnB,EAAS4K,EAAMpM,EAAGI,KAAK6C,IAAM,OAAOmJ,EACzF,GAAgC,mBAApBpM,EAAKiD,EAAGm8D,WAA2B59D,EAAS4K,EAAMpM,EAAGI,KAAK6C,IAAM,OAAOmJ,EACnF,IAAKV,GAAkC,mBAArB1L,EAAKiD,EAAGN,YAA4BnB,EAAS4K,EAAMpM,EAAGI,KAAK6C,IAAM,OAAOmJ,EAC1F,MAAMoE,UAAU,6CAMZ,KACA,SAAU5Q,EAAQC,EAASm4D,GAEjC,aAGA,IAAIp0D,EAAco0D,EAAoB,QAClCoC,EAAUpC,EAAoB,QAC9BqH,EAAOrH,EAAoB,QAC3BsH,EAAMtH,EAAoB,QAC1Bp3D,EAAWo3D,EAAoB,QAC/BmH,EAAUnH,EAAoB,QAC9BuH,EAAUz8D,OAAO8gD,OAGrBhkD,EAAOC,SAAW0/D,GAAWvH,EAAoB,OAApBA,EAA4B,WACvD,IAAIz2D,EAAI,GACJo6D,EAAI,GAEJjwD,EAAIgT,SACJ8gD,EAAI,uBAGR,OAFAj+D,EAAEmK,GAAK,EACP8zD,EAAEr1D,MAAM,IAAIlC,SAAQ,SAAUw3D,GAAK9D,EAAE8D,GAAKA,KACd,GAArBF,EAAQ,GAAIh+D,GAAGmK,IAAW5I,OAAOoO,KAAKquD,EAAQ,GAAI5D,IAAIz5D,KAAK,KAAOs9D,KACtE,SAAgBx+D,EAAQmK,GAC3B,IAAIuwD,EAAI96D,EAASI,GACb0+D,EAAOj/D,UAAUP,OACjBkL,EAAQ,EACRu0D,EAAaN,EAAK38D,EAClBk9D,EAASN,EAAI58D,EACjB,MAAOg9D,EAAOt0D,EAAO,CACnB,IAIIjD,EAJAuD,EAAIyzD,EAAQ1+D,UAAU2K,MACtB8F,EAAOyuD,EAAavF,EAAQ1uD,GAAGpJ,OAAOq9D,EAAWj0D,IAAM0uD,EAAQ1uD,GAC/DxL,EAASgR,EAAKhR,OACd6jC,EAAI,EAER,MAAO7jC,EAAS6jC,EACd57B,EAAM+I,EAAK6yB,KACNngC,IAAeg8D,EAAOx/D,KAAKsL,EAAGvD,KAAMuzD,EAAEvzD,GAAOuD,EAAEvD,IAEtD,OAAOuzD,GACP6D,GAKE,KACA,SAAU3/D,EAAQC,GAGxB,IAAI4Q,EAAS7Q,EAAOC,QAA2B,oBAAVgD,QAAyBA,OAAO8G,MAAQA,KACzE9G,OAAwB,oBAARg9D,MAAuBA,KAAKl2D,MAAQA,KAAOk2D,KAE3D59D,SAAS,cAATA,GACc,iBAAP69D,MAAiBA,IAAMrvD,IAK5B,OACA,SAAU7Q,EAAQC,EAASm4D,GAEjC,IAAIl3D,EAAYk3D,EAAoB,QAChCz9C,EAAM5Q,KAAK4Q,IACX7Q,EAAMC,KAAKD,IACf9J,EAAOC,QAAU,SAAUuL,EAAOlL,GAEhC,OADAkL,EAAQtK,EAAUsK,GACXA,EAAQ,EAAImP,EAAInP,EAAQlL,EAAQ,GAAKwJ,EAAI0B,EAAOlL,KAMnD,OACA,SAAUN,EAAQC,GAExBD,EAAOC,QAAU,SAAU0Q,GACzB,IACE,QAASA,IACT,MAAOzE,GACP,OAAO,KAOL,OACA,SAAUlM,EAAQC,EAASm4D,GAEjC,IAAIrwC,EAAMqwC,EAAoB,QAAQt1D,EAClCsB,EAAMg0D,EAAoB,QAC1BuB,EAAMvB,EAAoB,OAApBA,CAA4B,eAEtCp4D,EAAOC,QAAU,SAAUoD,EAAIgC,EAAKoC,GAC9BpE,IAAOe,EAAIf,EAAKoE,EAAOpE,EAAKA,EAAGV,UAAWg3D,IAAM5xC,EAAI1kB,EAAIs2D,EAAK,CAAE58C,cAAc,EAAMzU,MAAOjD,MAM1F,KACA,SAAUrF,EAAQC,GAExB,IAAIo+D,EAAOr+D,EAAOC,QAAU,CAAE+rC,QAAS,UACrB,iBAAPm0B,MAAiBA,IAAM9B,IAK5B,OACA,SAAUr+D,EAAQC,GAExBD,EAAOC,QAAU,IAKX,OACA,SAAUD,EAAQC,EAASm4D,GAEjC,IAAI7uD,EAAW6uD,EAAoB,QAC/B/zD,EAAiB+zD,EAAoB,QACrCj0D,EAAci0D,EAAoB,QAClCmC,EAAKr3D,OAAO0E,eAEhB3H,EAAQ6C,EAAIs1D,EAAoB,QAAUl1D,OAAO0E,eAAiB,SAAwBpG,EAAGgD,EAAG47D,GAI9F,GAHA72D,EAAS/H,GACTgD,EAAIL,EAAYK,GAAG,GACnB+E,EAAS62D,GACL/7D,EAAgB,IAClB,OAAOk2D,EAAG/4D,EAAGgD,EAAG47D,GAChB,MAAOl0D,IACT,GAAI,QAASk0D,GAAc,QAASA,EAAY,MAAMxvD,UAAU,4BAEhE,MADI,UAAWwvD,IAAY5+D,EAAEgD,GAAK47D,EAAW93D,OACtC9G,IAMH,OACA,SAAUxB,EAAQC,EAASm4D,GAGjC,IAAIj4D,EAAYi4D,EAAoB,QACpCp4D,EAAOC,QAAU,SAAUG,EAAIC,EAAMC,GAEnC,GADAH,EAAUC,QACGG,IAATF,EAAoB,OAAOD,EAC/B,OAAQE,GACN,KAAK,EAAG,OAAO,SAAUG,GACvB,OAAOL,EAAGI,KAAKH,EAAMI,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGC,GAC1B,OAAON,EAAGI,KAAKH,EAAMI,EAAGC,IAE1B,KAAK,EAAG,OAAO,SAAUD,EAAGC,EAAGC,GAC7B,OAAOP,EAAGI,KAAKH,EAAMI,EAAGC,EAAGC,IAG/B,OAAO,WACL,OAAOP,EAAGQ,MAAMP,EAAMQ,cAOpB,OACA,SAAUb,EAAQC,EAASm4D,GAGjC,IAAIiI,EAAcjI,EAAoB,OAApBA,CAA4B,eAC1CkI,EAAax8D,MAAMnB,eACQpC,GAA3B+/D,EAAWD,IAA2BjI,EAAoB,OAApBA,CAA4BkI,EAAYD,EAAa,IAC/FrgE,EAAOC,QAAU,SAAUsI,GACzB+3D,EAAWD,GAAa93D,IAAO,IAM3B,OACA,SAAUvI,EAAQC,EAASm4D,GAGjC,IAAIl3D,EAAYk3D,EAAoB,QAChCtuD,EAAMC,KAAKD,IACf9J,EAAOC,QAAU,SAAUoD,GACzB,OAAOA,EAAK,EAAIyG,EAAI5I,EAAUmC,GAAK,kBAAoB,IAMnD,OACA,SAAUrD,EAAQC,EAASm4D,GAGjCp4D,EAAOC,SAAWm4D,EAAoB,OAApBA,EAA4B,WAC5C,OAA+E,GAAxEl1D,OAAO0E,eAAe,GAAI,IAAK,CAAEC,IAAK,WAAc,OAAO,KAAQpH,MAMtE,KACA,SAAUT,EAAQC,GAExBD,EAAOC,QAAU,EAAQ,SAInB,KACA,SAAUD,EAAQC,EAASm4D,GAEjC,aAGA,IAAI7uD,EAAW6uD,EAAoB,QAC/Bp3D,EAAWo3D,EAAoB,QAC/Bn3D,EAAWm3D,EAAoB,QAC/Bl3D,EAAYk3D,EAAoB,QAChC3uD,EAAqB2uD,EAAoB,QACzCmI,EAAanI,EAAoB,QACjCz9C,EAAM5Q,KAAK4Q,IACX7Q,EAAMC,KAAKD,IACXiZ,EAAQhZ,KAAKgZ,MACby9C,EAAuB,4BACvBC,EAAgC,oBAEhCC,EAAgB,SAAUr9D,GAC5B,YAAc9C,IAAP8C,EAAmBA,EAAKnD,OAAOmD,IAIxC+0D,EAAoB,OAApBA,CAA4B,UAAW,GAAG,SAAUgC,EAASuG,EAASC,EAAUv2D,GAC9E,MAAO,CAGL,SAAiBw2D,EAAaC,GAC5B,IAAIt/D,EAAI44D,EAAQ34D,MACZrB,OAAoBG,GAAfsgE,OAA2BtgE,EAAYsgE,EAAYF,GAC5D,YAAcpgE,IAAPH,EACHA,EAAGI,KAAKqgE,EAAar/D,EAAGs/D,GACxBF,EAASpgE,KAAKN,OAAOsB,GAAIq/D,EAAaC,IAI5C,SAAUp1D,EAAQo1D,GAChB,IAAIn1D,EAAMtB,EAAgBu2D,EAAUl1D,EAAQjK,KAAMq/D,GAClD,GAAIn1D,EAAIC,KAAM,OAAOD,EAAIrD,MAEzB,IAAIuD,EAAKtC,EAASmC,GACdI,EAAI5L,OAAOuB,MACXs/D,EAA4C,oBAAjBD,EAC1BC,IAAmBD,EAAe5gE,OAAO4gE,IAC9C,IAAIjwD,EAAShF,EAAGgF,OAChB,GAAIA,EAAQ,CACV,IAAImwD,EAAcn1D,EAAGV,QACrBU,EAAGhB,UAAY,EAEjB,IAAIo2D,EAAU,GACd,MAAO,EAAM,CACX,IAAI94D,EAASo4D,EAAW10D,EAAIC,GAC5B,GAAe,OAAX3D,EAAiB,MAErB,GADA84D,EAAQp3D,KAAK1B,IACR0I,EAAQ,MACb,IAAIqwD,EAAWhhE,OAAOiI,EAAO,IACZ,KAAb+4D,IAAiBr1D,EAAGhB,UAAYpB,EAAmBqC,EAAG7K,EAAS4K,EAAGhB,WAAYm2D,IAIpF,IAFA,IAAIG,EAAoB,GACpBC,EAAqB,EAChBh/D,EAAI,EAAGA,EAAI6+D,EAAQ3gE,OAAQ8B,IAAK,CACvC+F,EAAS84D,EAAQ7+D,GASjB,IARA,IAAIi/D,EAAUnhE,OAAOiI,EAAO,IACxBm5D,EAAW3mD,EAAI7Q,EAAI5I,EAAUiH,EAAOqD,OAAQM,EAAExL,QAAS,GACvDihE,EAAW,GAMNp9B,EAAI,EAAGA,EAAIh8B,EAAO7H,OAAQ6jC,IAAKo9B,EAAS13D,KAAK62D,EAAcv4D,EAAOg8B,KAC3E,IAAIq9B,EAAgBr5D,EAAO0yD,OAC3B,GAAIkG,EAAmB,CACrB,IAAIU,EAAe,CAACJ,GAAS3+D,OAAO6+D,EAAUD,EAAUx1D,QAClCvL,IAAlBihE,GAA6BC,EAAa53D,KAAK23D,GACnD,IAAIE,EAAcxhE,OAAO4gE,EAAalgE,WAAML,EAAWkhE,SAEvDC,EAAcC,EAAgBN,EAASv1D,EAAGw1D,EAAUC,EAAUC,EAAeV,GAE3EQ,GAAYF,IACdD,GAAqBr1D,EAAEjK,MAAMu/D,EAAoBE,GAAYI,EAC7DN,EAAqBE,EAAWD,EAAQ/gE,QAG5C,OAAO6gE,EAAoBr1D,EAAEjK,MAAMu/D,KAKvC,SAASO,EAAgBN,EAASn4D,EAAKo4D,EAAUC,EAAUC,EAAeE,GACxE,IAAIE,EAAUN,EAAWD,EAAQ/gE,OAC7Bg4D,EAAIiJ,EAASjhE,OACbuhE,EAAUpB,EAKd,YAJsBlgE,IAAlBihE,IACFA,EAAgBxgE,EAASwgE,GACzBK,EAAUrB,GAELI,EAASpgE,KAAKkhE,EAAaG,GAAS,SAAUj3D,EAAO8mC,GAC1D,IAAIrf,EACJ,OAAQqf,EAAGhtB,OAAO,IAChB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAO28C,EACjB,IAAK,IAAK,OAAOn4D,EAAIrH,MAAM,EAAGy/D,GAC9B,IAAK,IAAK,OAAOp4D,EAAIrH,MAAM+/D,GAC3B,IAAK,IACHvvC,EAAUmvC,EAAc9vB,EAAG7vC,MAAM,GAAI,IACrC,MACF,QACE,IAAI8B,GAAK+tC,EACT,GAAU,IAAN/tC,EAAS,OAAOiH,EACpB,GAAIjH,EAAI20D,EAAG,CACT,IAAIx1D,EAAIigB,EAAMpf,EAAI,IAClB,OAAU,IAANb,EAAgB8H,EAChB9H,GAAKw1D,OAA8B/3D,IAApBghE,EAASz+D,EAAI,GAAmB4uC,EAAGhtB,OAAO,GAAK68C,EAASz+D,EAAI,GAAK4uC,EAAGhtB,OAAO,GACvF9Z,EAETynB,EAAUkvC,EAAS59D,EAAI,GAE3B,YAAmBpD,IAAZ8xB,EAAwB,GAAKA,UAQpC,KACA,SAAUryB,EAAQC,EAASm4D,GAGjC,IAAIx2D,EAAWw2D,EAAoB,QAC/BuD,EAAMvD,EAAoB,QAC1BqF,EAAQrF,EAAoB,OAApBA,CAA4B,SACxCp4D,EAAOC,QAAU,SAAUoD,GACzB,IAAIiG,EACJ,OAAO1H,EAASyB,UAAmC9C,KAA1B+I,EAAWjG,EAAGo6D,MAA0Bn0D,EAAsB,UAAXqyD,EAAIt4D,MAM5E,KACA,SAAUrD,EAAQC,EAASm4D,GA+CjC,IA7CA,IAAI0J,EAAa1J,EAAoB,QACjCoC,EAAUpC,EAAoB,QAC9Bv9C,EAAWu9C,EAAoB,QAC/BvnD,EAASunD,EAAoB,QAC7BO,EAAOP,EAAoB,QAC3BQ,EAAYR,EAAoB,QAChCsC,EAAMtC,EAAoB,QAC1BrwD,EAAW2yD,EAAI,YACf56D,EAAgB46D,EAAI,eACpBqH,EAAcnJ,EAAU90D,MAExBgN,EAAe,CACjBkxD,aAAa,EACbC,qBAAqB,EACrBC,cAAc,EACdC,gBAAgB,EAChBC,aAAa,EACbC,eAAe,EACfC,cAAc,EACdC,sBAAsB,EACtBC,UAAU,EACVC,mBAAmB,EACnBC,gBAAgB,EAChBC,iBAAiB,EACjBC,mBAAmB,EACnBC,WAAW,EACXC,eAAe,EACfC,cAAc,EACdC,UAAU,EACVC,kBAAkB,EAClBC,QAAQ,EACRC,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,cAAc,EACdC,eAAe,EACfC,kBAAkB,EAClBC,kBAAkB,EAClBC,gBAAgB,EAChBC,kBAAkB,EAClBC,eAAe,EACfC,WAAW,GAGJC,EAAcvJ,EAAQ1pD,GAAe1O,EAAI,EAAGA,EAAI2hE,EAAYzjE,OAAQ8B,IAAK,CAChF,IAIImG,EAJA8wD,EAAO0K,EAAY3hE,GACnB4hE,EAAWlzD,EAAauoD,GACxBpoD,EAAaJ,EAAOwoD,GACpBh4D,EAAQ4P,GAAcA,EAAWtO,UAErC,GAAItB,IACGA,EAAM0G,IAAW4wD,EAAKt3D,EAAO0G,EAAUg6D,GACvC1gE,EAAMvB,IAAgB64D,EAAKt3D,EAAOvB,EAAeu5D,GACtDT,EAAUS,GAAQ0I,EACdiC,GAAU,IAAKz7D,KAAOu5D,EAAiBzgE,EAAMkH,IAAMsS,EAASxZ,EAAOkH,EAAKu5D,EAAWv5D,IAAM,KAO3F,KACA,SAAUvI,EAAQC,EAASm4D,GAEjC,aAEA,IAAIzuD,EAAayuD,EAAoB,QACrCA,EAAoB,OAApBA,CAA4B,CAC1Bh3D,OAAQ,SACRC,OAAO,EACPiP,OAAQ3G,IAAe,IAAIgH,MAC1B,CACDA,KAAMhH,KAMF,KACA,SAAU3J,EAAQC,GAGxBD,EAAOC,QAAU,SAAUoD,GACzB,QAAU9C,GAAN8C,EAAiB,MAAMuN,UAAU,yBAA2BvN,GAChE,OAAOA,IAMH,KACA,SAAUrD,EAAQC,EAASm4D,GAIjC,IAAI6L,EAAY7L,EAAoB,QAChCn3D,EAAWm3D,EAAoB,QAC/B8L,EAAkB9L,EAAoB,QAC1Cp4D,EAAOC,QAAU,SAAUkkE,GACzB,OAAO,SAAUC,EAAO1+D,EAAI2+D,GAC1B,IAGI/7D,EAHA9G,EAAIyiE,EAAUG,GACd9jE,EAASW,EAASO,EAAElB,QACpBkL,EAAQ04D,EAAgBG,EAAW/jE,GAIvC,GAAI6jE,GAAez+D,GAAMA,GAAI,MAAOpF,EAASkL,EAG3C,GAFAlD,EAAQ9G,EAAEgK,KAENlD,GAASA,EAAO,OAAO,OAEtB,KAAMhI,EAASkL,EAAOA,IAAS,IAAI24D,GAAe34D,KAAShK,IAC5DA,EAAEgK,KAAW9F,EAAI,OAAOy+D,GAAe34D,GAAS,EACpD,OAAQ24D,IAAgB,KAOxB,KACA,SAAUnkE,EAAQskE,EAAqBlM,GAE7C,cAC4B,SAASvnD,GAAwCunD,EAAoBzoD,EAAE20D,EAAqB,KAAK,WAAa,OAAOC,KAClHnM,EAAoBzoD,EAAE20D,EAAqB,KAAK,WAAa,OAAOhgD,KACpE8zC,EAAoBzoD,EAAE20D,EAAqB,KAAK,WAAa,OAAO5xC,KACpE0lC,EAAoBzoD,EAAE20D,EAAqB,KAAK,WAAa,OAAOn0B,KACRioB,EAAoB,QAI/G,SAASoM,IACP,MAAsB,qBAAXvhE,OACFA,OAAOyvB,QAGT7hB,EAAO6hB,QAGhB,IAAIA,EAAU8xC,IAEd,SAAStgD,EAAO9jB,GACd,IAAI+jB,EAAQjhB,OAAOygB,OAAO,MAC1B,OAAO,SAAkBza,GACvB,IAAIkb,EAAMD,EAAMjb,GAChB,OAAOkb,IAAQD,EAAMjb,GAAO9I,EAAG8I,KAInC,IAAIu7D,EAAQ,SACRngD,EAAWJ,GAAO,SAAUhb,GAC9B,OAAOA,EAAIkP,QAAQqsD,GAAO,SAAUlgD,EAAG5jB,GACrC,OAAOA,EAAIA,EAAE6jB,cAAgB,SAIjC,SAAS2rB,EAAW3jB,GACS,OAAvBA,EAAKk4C,eACPl4C,EAAKk4C,cAAch2B,YAAYliB,GAInC,SAAS+3C,EAAaI,EAAYn4C,EAAM80C,GACtC,IAAIsD,EAAuB,IAAbtD,EAAiBqD,EAAW50D,SAAS,GAAK40D,EAAW50D,SAASuxD,EAAW,GAAG1yB,YAC1F+1B,EAAWp2B,aAAa/hB,EAAMo4C,MAIHpkE,KAAKiB,KAAM22D,EAAoB,UAItD,KACA,SAAUp4D,EAAQC,EAASm4D,GAEjCp4D,EAAOC,SAAWm4D,EAAoB,UAAYA,EAAoB,OAApBA,EAA4B,WAC5E,OAA+G,GAAxGl1D,OAAO0E,eAAewwD,EAAoB,OAApBA,CAA4B,OAAQ,IAAK,CAAEvwD,IAAK,WAAc,OAAO,KAAQpH,MAMtG,KACA,SAAUT,EAAQC,GAExB,IAAI4kE,EAGJA,EAAI,WACH,OAAOpjE,KADJ,GAIJ,IAECojE,EAAIA,GAAK,IAAIxiE,SAAS,cAAb,GACR,MAAO6J,GAEc,kBAAXjJ,SAAqB4hE,EAAI5hE,QAOrCjD,EAAOC,QAAU4kE,GAKX,KACA,SAAU7kE,EAAQC,GAExB,IAAIsqB,EAAK,EACLu6C,EAAK/6D,KAAKg7D,SACd/kE,EAAOC,QAAU,SAAUsI,GACzB,MAAO,UAAU7F,YAAenC,IAARgI,EAAoB,GAAKA,EAAK,QAASgiB,EAAKu6C,GAAI/hE,SAAS,OAM7E,KACA,SAAU/C,EAAQC,EAASm4D,GAEjC,aAEA,IAAI4M,EAAmB5M,EAAoB,QACvC39C,EAAO29C,EAAoB,QAC3BQ,EAAYR,EAAoB,QAChC6L,EAAY7L,EAAoB,QAMpCp4D,EAAOC,QAAUm4D,EAAoB,OAApBA,CAA4Bt0D,MAAO,SAAS,SAAUmhE,EAAUvL,GAC/Ej4D,KAAK84B,GAAK0pC,EAAUgB,GACpBxjE,KAAKg5B,GAAK,EACVh5B,KAAKm5B,GAAK8+B,KAET,WACD,IAAIl4D,EAAIC,KAAK84B,GACTm/B,EAAOj4D,KAAKm5B,GACZpvB,EAAQ/J,KAAKg5B,KACjB,OAAKj5B,GAAKgK,GAAShK,EAAElB,QACnBmB,KAAK84B,QAAKh6B,EACHka,EAAK,IAEaA,EAAK,EAApB,QAARi/C,EAA+BluD,EACvB,UAARkuD,EAAiCl4D,EAAEgK,GACxB,CAACA,EAAOhK,EAAEgK,OACxB,UAGHotD,EAAUsM,UAAYtM,EAAU90D,MAEhCkhE,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,YAKX,KACA,SAAUhlE,EAAQC,EAASm4D,GAEjC,IAAIx2D,EAAWw2D,EAAoB,QACnCp4D,EAAOC,QAAU,SAAUoD,GACzB,IAAKzB,EAASyB,GAAK,MAAMuN,UAAUvN,EAAK,sBACxC,OAAOA,IAMH,KACA,SAAUrD,EAAQC,EAASm4D,GAEjC,IAAIh0D,EAAMg0D,EAAoB,QAC1B6L,EAAY7L,EAAoB,QAChC+M,EAAe/M,EAAoB,OAApBA,EAA4B,GAC3CoE,EAAWpE,EAAoB,OAApBA,CAA4B,YAE3Cp4D,EAAOC,QAAU,SAAU0X,EAAQytD,GACjC,IAGI78D,EAHA/G,EAAIyiE,EAAUtsD,GACdvV,EAAI,EACJ+F,EAAS,GAEb,IAAKI,KAAO/G,EAAO+G,GAAOi0D,GAAUp4D,EAAI5C,EAAG+G,IAAQJ,EAAO0B,KAAKtB,GAE/D,MAAO68D,EAAM9kE,OAAS8B,EAAOgC,EAAI5C,EAAG+G,EAAM68D,EAAMhjE,SAC7C+iE,EAAah9D,EAAQI,IAAQJ,EAAO0B,KAAKtB,IAE5C,OAAOJ,IAMH,KACA,SAAUnI,EAAQC,EAASm4D,GAGjC,IAAI9uD,EAAW8uD,EAAoB,QAC/BgC,EAAUhC,EAAoB,QAElCp4D,EAAOC,QAAU,SAAUI,EAAMgc,EAAcg9C,GAC7C,GAAI/vD,EAAS+S,GAAe,MAAMzL,UAAU,UAAYyoD,EAAO,0BAC/D,OAAOn5D,OAAOk6D,EAAQ/5D,MAMlB,KACA,SAAUL,EAAQC,GAExBD,EAAOC,QAAU,SAAUoD,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,IAMjD,KACA,SAAUrD,EAAQC,GAExBD,EAAOC,QAAU,SAAU2L,EAAMtD,GAC/B,MAAO,CAAEA,MAAOA,EAAOsD,OAAQA,KAM3B,KACA,SAAU5L,EAAQC,GAExBD,EAAOC,QAAU,SAAUoD,GACzB,GAAiB,mBAANA,EAAkB,MAAMuN,UAAUvN,EAAK,uBAClD,OAAOA,IAMH,KACA,SAAUrD,EAAQC,GAGxBD,EAAOC,QAAU,gGAEfsK,MAAM,MAKF,KACA,SAAUvK,EAAQC,EAASm4D,GAEjC,aAGA,IAAIM,EAAUN,EAAoB,QAC9Bn3D,EAAWm3D,EAAoB,QAC/B9yD,EAAU8yD,EAAoB,QAC9BiN,EAAc,aACdC,EAAc,GAAGD,GAErB3M,EAAQA,EAAQl0D,EAAIk0D,EAAQyB,EAAI/B,EAAoB,OAApBA,CAA4BiN,GAAc,SAAU,CAClFhY,WAAY,SAAoBhxC,GAC9B,IAAIhc,EAAOiF,EAAQ7D,KAAM4a,EAAcgpD,GACnC75D,EAAQvK,EAAS8I,KAAKD,IAAIjJ,UAAUP,OAAS,EAAIO,UAAU,QAAKN,EAAWF,EAAKC,SAChFmsD,EAASvsD,OAAOmc,GACpB,OAAOipD,EACHA,EAAY9kE,KAAKH,EAAMosD,EAAQjhD,GAC/BnL,EAAKwB,MAAM2J,EAAOA,EAAQihD,EAAOnsD,UAAYmsD,MAO/C,KACA,SAAUzsD,EAAQC,IAMxB,SAAUiU,GACR,IAAIqxD,EAAgB,gBAChBC,EAAUtxD,EAASuxD,qBAAqB,UAGtCF,KAAiBrxD,GACrBhR,OAAO0E,eAAesM,EAAUqxD,EAAe,CAC7C19D,IAAK,WAIH,IAAM,MAAM,IAAI69D,MAChB,MAAO1zC,GAIL,IAAI5vB,EAAGuJ,GAAO,+BAAiCgF,KAAKqhB,EAAI2zC,QAAU,EAAC,IAAQ,GAG3E,IAAIvjE,KAAKojE,EACP,GAAGA,EAAQpjE,GAAG4rB,KAAOriB,GAAgC,eAAzB65D,EAAQpjE,GAAGwjE,WACrC,OAAOJ,EAAQpjE,GAKnB,OAAO,UA1BjB,CA+BG8R,WAKG,KACA,SAAUlU,EAAQC,EAASm4D,GAGjC,IAAIM,EAAUN,EAAoB,QAElCM,EAAQA,EAAQ5sD,EAAI4sD,EAAQyB,EAAG,SAAU,CAAEnW,OAAQoU,EAAoB,WAKjE,KACA,SAAUp4D,EAAQC,EAASm4D,GAEjCp4D,EAAOC,QAAUm4D,EAAoB,OAApBA,CAA4B,4BAA6B/1D,SAASU,WAK7E,KACA,SAAU/C,EAAQC,EAASm4D,GAEjC,IAAIlkD,EAAWkkD,EAAoB,QAAQlkD,SAC3ClU,EAAOC,QAAUiU,GAAYA,EAAS2xD,iBAKhC,KACA,SAAU7lE,EAAQskE,EAAqBlM,GAE7C,aAYE,IAAI0N,GAVN1N,EAAoBG,EAAE+L,GAKA,qBAAXrhE,UAEPm1D,EAAoB,SAIjB0N,EAAkB7iE,OAAOiR,SAASqxD,iBAAmBO,EAAkBA,EAAgB93C,IAAIpjB,MAAM,8BACpGwtD,EAAoBpsD,EAAI85D,EAAgB,KAQpB1N,EAAoB,QAGfA,EAAoB,QAG1BA,EAAoB,QAGlBA,EAAoB,QAGvBA,EAAoB,QAG1C,SAAS2N,EAAgBrnD,GACvB,GAAI5a,MAAM6a,QAAQD,GAAM,OAAOA,EAGjC,SAASsnD,EAAsBtnD,EAAKtc,GAClC,GAAsB,qBAAX0c,QAA4BA,OAAOvE,YAAYrX,OAAOwb,GAAjE,CACA,IAAIunD,EAAO,GACP7rC,GAAK,EACLc,GAAK,EACLH,OAAKx6B,EAET,IACE,IAAK,IAAiC85B,EAA7BI,EAAK/b,EAAII,OAAOvE,cAAmB6f,GAAMC,EAAKI,EAAGjjB,QAAQ5L,MAAOwuB,GAAK,EAG5E,GAFA6rC,EAAKp8D,KAAKwwB,EAAG/xB,OAETlG,GAAK6jE,EAAK3lE,SAAW8B,EAAG,MAE9B,MAAO4vB,GACPkJ,GAAK,EACLH,EAAK/I,EACL,QACA,IACOoI,GAAsB,MAAhBK,EAAG,WAAmBA,EAAG,YACpC,QACA,GAAIS,EAAI,MAAMH,GAIlB,OAAOkrC,GAGT,SAASC,EAAkBxnD,EAAKwO,IACnB,MAAPA,GAAeA,EAAMxO,EAAIpe,UAAQ4sB,EAAMxO,EAAIpe,QAE/C,IAAK,IAAI8B,EAAI,EAAG+jE,EAAO,IAAIriE,MAAMopB,GAAM9qB,EAAI8qB,EAAK9qB,IAC9C+jE,EAAK/jE,GAAKsc,EAAItc,GAGhB,OAAO+jE,EAIT,SAAS5iE,EAA4BC,EAAGC,GACtC,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO0iE,EAAkB1iE,EAAGC,GACvD,IAAIE,EAAIT,OAAOP,UAAUI,SAASvC,KAAKgD,GAAG3B,MAAM,GAAI,GAEpD,MADU,WAAN8B,GAAkBH,EAAEI,cAAaD,EAAIH,EAAEI,YAAYC,MAC7C,QAANF,GAAqB,QAANA,EAAoBG,MAAMC,KAAKP,GACxC,cAANG,GAAqB,2CAA2C5D,KAAK4D,GAAWuiE,EAAkB1iE,EAAGC,QAAzG,GAGF,SAAS2iE,IACP,MAAM,IAAIx1D,UAAU,6IAOtB,SAASy1D,EAAe3nD,EAAKtc,GAC3B,OAAO2jE,EAAgBrnD,IAAQsnD,EAAsBtnD,EAAKtc,IAAMmB,EAA4Bmb,EAAKtc,IAAMgkE,IAGhFhO,EAAoB,QAGnBA,EAAoB,QAI9C,SAAS35C,EAAmBC,GAC1B,GAAI5a,MAAM6a,QAAQD,GAAM,OAAOwnD,EAAkBxnD,GAGnD,SAASE,EAAiBC,GACxB,GAAsB,qBAAXC,QAA0BA,OAAOvE,YAAYrX,OAAO2b,GAAO,OAAO/a,MAAMC,KAAK8a,GAG1F,SAASE,IACP,MAAM,IAAInO,UAAU,wIAOtB,SAASoO,EAAmBN,GAC1B,OAAOD,EAAmBC,IAAQE,EAAiBF,IAAQnb,EAA4Bmb,IAAQK,IAGjG,IAAIunD,EAAkFlO,EAAoB,QACtGmO,EAAsGnO,EAAoBz0D,EAAE2iE,GAG5HrQ,EAASmC,EAAoB,QAejC,SAASoO,EAAe7uD,EAAQ8uD,EAAUn+D,GACxC,YAAc/H,IAAV+H,IAIJqP,EAASA,GAAU,GACnBA,EAAO8uD,GAAYn+D,GAJVqP,EAQX,SAAS+uD,EAAezqC,EAAQ0qC,GAC9B,OAAO1qC,EAAOvY,KAAI,SAAUkjD,GAC1B,OAAOA,EAAIx7C,OACV7Z,QAAQo1D,GAGb,SAASE,EAAgBpwC,EAAO1mB,EAAU+2D,EAAcC,GACtD,IAAKtwC,EACH,MAAO,GAGT,IAAIuwC,EAAevwC,EAAM/S,KAAI,SAAUkjD,GACrC,OAAOA,EAAIx7C,OAET67C,EAAcl3D,EAASzP,OAASymE,EAEhCG,EAAaloD,EAAmBjP,GAAU2T,KAAI,SAAUkjD,EAAKO,GAC/D,OAAOA,GAAOF,EAAcD,EAAa1mE,OAAS0mE,EAAaz1D,QAAQq1D,MAGzE,OAAOE,EAAeI,EAAWn8B,QAAO,SAAUq8B,GAChD,OAAgB,IAATA,KACJF,EAGP,SAAS7hC,EAAKgiC,EAASC,GACrB,IAAIC,EAAQ9lE,KAEZA,KAAKo+B,WAAU,WACb,OAAO0nC,EAAMrlC,MAAMmlC,EAAQzjD,cAAe0jD,MAI9C,SAASE,EAAgBH,GACvB,IAAII,EAAShmE,KAEb,OAAO,SAAU6lE,GACS,OAApBG,EAAOC,UACTD,EAAO,SAAWJ,GAASC,GAG7BjiC,EAAK7kC,KAAKinE,EAAQJ,EAASC,IAI/B,SAASK,EAAiB9jE,GACxB,MAAO,CAAC,mBAAoB,mBAAmBuY,SAASvY,GAG1D,SAAS+jE,EAA0BnxC,GACjC,IAAKA,GAA0B,IAAjBA,EAAMn2B,OAClB,OAAO,EAGT,IAAIunE,EAASxB,EAAe5vC,EAAO,GAC/BpL,EAAmBw8C,EAAO,GAAGx8C,iBAEjC,QAAKA,GAIEs8C,EAAiBt8C,EAAiBhmB,KAG3C,SAASyiE,EAAQxmD,EAAMymD,EAAYx/D,GACjC,OAAO+Y,EAAK/Y,KAASw/D,EAAWx/D,GAAOw/D,EAAWx/D,UAAShI,GAG7D,SAASynE,EAA0Bj4D,EAAUuR,EAAMymD,GACjD,IAAIE,EAAe,EACflB,EAAe,EACfmB,EAASJ,EAAQxmD,EAAMymD,EAAY,UAEnCG,IACFD,EAAeC,EAAO5nE,OACtByP,EAAWA,EAAW,GAAGrN,OAAOsc,EAAmBkpD,GAASlpD,EAAmBjP,IAAaiP,EAAmBkpD,IAGjH,IAAIC,EAASL,EAAQxmD,EAAMymD,EAAY,UAOvC,OALII,IACFpB,EAAeoB,EAAO7nE,OACtByP,EAAWA,EAAW,GAAGrN,OAAOsc,EAAmBjP,GAAWiP,EAAmBmpD,IAAWnpD,EAAmBmpD,IAG1G,CACLp4D,SAAUA,EACVk4D,aAAcA,EACdlB,aAAcA,GAIlB,SAASqB,EAAuBj1D,EAAQk1D,GACtC,IAAIC,EAAa,KAEbv9C,EAAS,SAAgBlnB,EAAMyE,GACjCggE,EAAa9B,EAAe8B,EAAYzkE,EAAMyE,IAG5CmG,EAAQvL,OAAOoO,KAAK6B,GAAQ43B,QAAO,SAAUxiC,GAC/C,MAAe,OAARA,GAAgBA,EAAI8kD,WAAW,YACrC98C,QAAO,SAAU5E,EAAKpD,GAEvB,OADAoD,EAAIpD,GAAO4K,EAAO5K,GACXoD,IACN,IAGH,GAFAof,EAAO,QAAStc,IAEX45D,EACH,OAAOC,EAGT,IAAI9iE,EAAK6iE,EAAc7iE,GACnBX,EAAQwjE,EAAcxjE,MACtB0jE,EAAqBF,EAAc55D,MAIvC,OAHAsc,EAAO,KAAMvlB,GACbulB,EAAO,QAASlmB,GAChB3B,OAAO8gD,OAAOskB,EAAW75D,MAAO85D,GACzBD,EAGT,IAAIE,EAAiB,CAAC,QAAS,MAAO,SAAU,SAAU,OACtDC,EAAe,CAAC,SAAU,WAAY,OAAQ,SAAU,SACxDC,EAAqB,CAAC,QAAQhmE,OAAO8lE,EAAgBC,GAAc/kD,KAAI,SAAUilD,GACnF,MAAO,KAAOA,KAEZC,EAAkB,KAClB/jE,EAAQ,CACVoW,QAAS/X,OACTf,KAAM,CACJ4C,KAAMjB,MACNqJ,UAAU,EACVnI,QAAS,MAEXsD,MAAO,CACLvD,KAAMjB,MACNqJ,UAAU,EACVnI,QAAS,MAEX6jE,mBAAoB,CAClB9jE,KAAMwI,QACNvI,SAAS,GAEXk3B,MAAO,CACLn3B,KAAM1C,SACN2C,QAAS,SAAkBioB,GACzB,OAAOA,IAGX05C,QAAS,CACP5hE,KAAM7E,OACN8E,QAAS,OAEXK,IAAK,CACHN,KAAM7E,OACN8E,QAAS,MAEX8jE,KAAM,CACJ/jE,KAAM1C,SACN2C,QAAS,MAEXqjE,cAAe,CACbtjE,KAAM7B,OACNiK,UAAU,EACVnI,QAAS,OAGT+jE,EAAqB,CACvBllE,KAAM,YACN4xC,cAAc,EACd5wC,MAAOA,EACPU,KAAM,WACJ,MAAO,CACLyjE,gBAAgB,EAChBC,6BAA6B,IAGjC7jE,OAAQ,SAAgBO,GACtB,IAAI8wB,EAAQh1B,KAAKoM,OAAO7I,QACxBvD,KAAKunE,eAAiBpB,EAA0BnxC,GAEhD,IAAIyyC,EAAwBlB,EAA0BvxC,EAAOh1B,KAAKoM,OAAQpM,KAAKuR,cAC3EjD,EAAWm5D,EAAsBn5D,SACjCk4D,EAAeiB,EAAsBjB,aACrClB,EAAemC,EAAsBnC,aAEzCtlE,KAAKwmE,aAAeA,EACpBxmE,KAAKslE,aAAeA,EACpB,IAAIuB,EAAaF,EAAuB3mE,KAAK0R,OAAQ1R,KAAK4mE,eAC1D,OAAO1iE,EAAElE,KAAK0nE,SAAUb,EAAYv4D,IAEtCmD,QAAS,WACW,OAAdzR,KAAKU,MAAgC,OAAfV,KAAK6G,OAC7B2tD,EAAO,KAAmB3yD,MAAM,2EAGb,QAAjB7B,KAAKklE,SACP1Q,EAAO,KAAmB7rC,KAAK,qKAGZ7pB,IAAjBkB,KAAKwZ,SACPg7C,EAAO,KAAmB7rC,KAAK,wMAGnCmhB,QAAS,WACP,IAAI69B,EAAS3nE,KAIb,GAFAA,KAAKwnE,4BAA8BxnE,KAAK0nE,SAASvlD,gBAAkBniB,KAAKsS,IAAIs1D,SAASzlD,gBAAkBniB,KAAK6nE,kBAExG7nE,KAAKwnE,6BAA+BxnE,KAAKunE,eAC3C,MAAM,IAAItD,MAAM,6HAA6HhjE,OAAOjB,KAAK0nE,WAG3J,IAAII,EAAe,GACnBf,EAAengE,SAAQ,SAAUu+D,GAC/B2C,EAAa,KAAO3C,GAAOY,EAAgBhnE,KAAK4oE,EAAQxC,MAE1D6B,EAAapgE,SAAQ,SAAUu+D,GAC7B2C,EAAa,KAAO3C,GAAOvhC,EAAK9iC,KAAK6mE,EAAQxC,MAE/C,IAAI0B,EAAaplE,OAAOoO,KAAK7P,KAAK0R,QAAQ5C,QAAO,SAAU5E,EAAKpD,GAE9D,OADAoD,EAAIzI,OAAO+yD,EAAO,KAAd/yD,CAAmCqF,IAAQ6gE,EAAOj2D,OAAO5K,GACtDoD,IACN,IACCsP,EAAU/X,OAAO8gD,OAAO,GAAIviD,KAAKwZ,QAASqtD,EAAYiB,EAAc,CACtEC,OAAQ,SAAgBb,EAAKc,GAC3B,OAAOL,EAAOM,WAAWf,EAAKc,QAGhC,cAAexuD,KAAaA,EAAQ0uD,UAAY,MAClDloE,KAAKmoE,UAAY,IAAIrD,EAAuF9lE,EAAEgB,KAAKooE,cAAe5uD,GAClIxZ,KAAKqoE,kBAEPx2D,cAAe,gBACU/S,IAAnBkB,KAAKmoE,WAAyBnoE,KAAKmoE,UAAUzsC,WAEnD/vB,SAAU,CACRy8D,cAAe,WACb,OAAOpoE,KAAKunE,eAAiBvnE,KAAKsS,IAAIhE,SAAS,GAAKtO,KAAKsS,KAE3D2zD,SAAU,WACR,OAAOjmE,KAAKU,KAAOV,KAAKU,KAAOV,KAAK6G,QAGxC2K,MAAO,CACLgI,QAAS,CACP1F,QAAS,SAAiBw0D,GACxBtoE,KAAKuoE,cAAcD,IAErBrkC,MAAM,GAERvyB,OAAQ,CACNoC,QAAS,SAAiBw0D,GACxBtoE,KAAKuoE,cAAcD,IAErBrkC,MAAM,GAERgiC,SAAU,WACRjmE,KAAKqoE,mBAGTp8D,QAAS,CACP47D,gBAAiB,WACf,IAAI79C,EAAYhqB,KAAK49B,OAAO5T,UAC5B,OAAOA,GAAaA,EAAU7mB,YAEhCukE,OAAQ,WACN,OAAO1nE,KAAK4D,KAAO5D,KAAKklE,SAE1BqD,cAAe,SAAuBD,GACpC,IAAK,IAAIt7C,KAAYs7C,EAAgB,CACnC,IAAIzhE,EAAQpF,OAAO+yD,EAAO,KAAd/yD,CAAmCurB,IAEJ,IAAvCi6C,EAAmBn3D,QAAQjJ,IAC7B7G,KAAKmoE,UAAUvpB,OAAO/3C,EAAOyhE,EAAet7C,MAIlDw7C,iBAAkB,WAChB,GAAIxoE,KAAKwnE,4BACP,OAAOxnE,KAAK6gC,UAAU,GAAGz0B,OAAO7I,QAGlC,IAAIklE,EAAWzoE,KAAKoM,OAAO7I,QAC3B,OAAOvD,KAAKunE,eAAiBkB,EAAS,GAAG79C,MAAMxe,OAAO7I,QAAUklE,GAElEJ,eAAgB,WACd,IAAIK,EAAS1oE,KAEbA,KAAKo+B,WAAU,WACbsqC,EAAOC,eAAiBvD,EAAgBsD,EAAOF,mBAAoBE,EAAON,cAAc95D,SAAUo6D,EAAOnB,eAAgBmB,EAAOpD,kBAGpIsD,gBAAiB,SAAyBC,GACxC,IAAI9+D,EAAQk7D,EAAejlE,KAAKwoE,oBAAsB,GAAIK,GAE1D,IAAe,IAAX9+D,EAGF,OAAO,KAGT,IAAIm7D,EAAUllE,KAAKimE,SAASl8D,GAC5B,MAAO,CACLA,MAAOA,EACPm7D,QAASA,IAGb4D,yCAA0C,SAAkDC,GAC1F,IAAIC,EAAMD,EAAKvnC,QAEf,OAAKwnC,GAAQA,EAAItsD,UAAawpD,EAAiB8C,EAAItsD,SAASuqB,eAKrD+hC,EAAIt4C,UAJH,aAAcs4C,IAAiC,IAAzBA,EAAInoC,UAAUhiC,QAAgB,aAAcmqE,EAAInoC,UAAU,GAAWmoC,EAAInoC,UAAU,GACxGmoC,GAKXC,YAAa,SAAqB/B,GAChC,IAAIgC,EAASlpE,KAEbA,KAAKo+B,WAAU,WACb8qC,EAAOzoC,MAAM,SAAUymC,OAG3BiC,UAAW,SAAmBC,GAC5B,GAAIppE,KAAKU,KACP0oE,EAAOppE,KAAKU,UADd,CAKA,IAAI2oE,EAAU9rD,EAAmBvd,KAAK6G,OAEtCuiE,EAAOC,GACPrpE,KAAKygC,MAAM,QAAS4oC,KAEtBC,WAAY,WACV,IAAIC,EAAanqE,UAEbkqE,EAAa,SAAoB5oE,GACnC,OAAOA,EAAK6hB,OAAOpjB,MAAMuB,EAAM6c,EAAmBgsD,KAGpDvpE,KAAKmpE,UAAUG,IAEjBE,eAAgB,SAAwBC,EAAUC,GAChD,IAAIF,EAAiB,SAAwB9oE,GAC3C,OAAOA,EAAK6hB,OAAOmnD,EAAU,EAAGhpE,EAAK6hB,OAAOknD,EAAU,GAAG,KAG3DzpE,KAAKmpE,UAAUK,IAEjBG,+BAAgC,SAAwCC,GACtE,IAAInzD,EAAKmzD,EAAMnzD,GACXozD,EAAUD,EAAMC,QAChBz7D,EAAYpO,KAAK8oE,yCAAyCryD,GAE9D,IAAKrI,EACH,MAAO,CACLA,UAAWA,GAIf,IAAI1N,EAAO0N,EAAU63D,SACjBpiE,EAAU,CACZnD,KAAMA,EACN0N,UAAWA,GAGb,GAAIqI,IAAOozD,GAAWnpE,GAAQ0N,EAAUw6D,gBAAiB,CACvD,IAAIkB,EAAc17D,EAAUw6D,gBAAgBiB,GAE5C,GAAIC,EACF,OAAOroE,OAAO8gD,OAAOunB,EAAajmE,GAItC,OAAOA,GAETkmE,WAAY,SAAoBC,GAC9B,IAAIC,EAAUjqE,KAAK2oE,eACfuB,EAAgBD,EAAQprE,OAC5B,OAAOmrE,EAAWE,EAAgB,EAAIA,EAAgBD,EAAQD,IAEhEG,aAAc,WACZ,OAAOnqE,KAAKoM,OAAO7I,QAAQ,GAAG2mB,mBAEhCkgD,oBAAqB,SAA6BrgE,GAChD,GAAK/J,KAAKonE,oBAAuBpnE,KAAKunE,eAAtC,CAIA,IAAInxC,EAAQp2B,KAAKwoE,mBACjBpyC,EAAMrsB,GAAOjG,KAAO,KACpB,IAAIumE,EAAsBrqE,KAAKmqE,eAC/BE,EAAoB/7D,SAAW,GAC/B+7D,EAAoB9pB,UAAOzhD,IAE7BwrE,YAAa,SAAqBpD,GAChClnE,KAAK6D,QAAU7D,KAAK4oE,gBAAgB1B,EAAI5kD,MACxC4kD,EAAI5kD,KAAKioD,gBAAkBvqE,KAAKy6B,MAAMz6B,KAAK6D,QAAQqhE,SACnDiC,EAAkBD,EAAI5kD,MAExBkoD,UAAW,SAAmBtD,GAC5B,IAAIhC,EAAUgC,EAAI5kD,KAAKioD,gBAEvB,QAAgBzrE,IAAZomE,EAAJ,CAIAzjE,OAAO+yD,EAAO,KAAd/yD,CAAqCylE,EAAI5kD,MACzC,IAAIonD,EAAW1pE,KAAK+pE,WAAW7C,EAAIwC,UACnC1pE,KAAKspE,WAAWI,EAAU,EAAGxE,GAC7BllE,KAAKqoE,iBACL,IAAIoC,EAAQ,CACVvF,QAASA,EACTwE,SAAUA,GAEZ1pE,KAAKipE,YAAY,CACfwB,MAAOA,MAGXC,aAAc,SAAsBxD,GAGlC,GAFAzlE,OAAO+yD,EAAO,KAAd/yD,CAAuCzB,KAAKooE,cAAelB,EAAI5kD,KAAM4kD,EAAIuC,UAEpD,UAAjBvC,EAAIyD,SAAR,CAKA,IAAIlB,EAAWzpE,KAAK6D,QAAQkG,MAC5B/J,KAAKspE,WAAWG,EAAU,GAC1B,IAAI9oB,EAAU,CACZukB,QAASllE,KAAK6D,QAAQqhE,QACtBuE,SAAUA,GAEZzpE,KAAKoqE,oBAAoBX,GACzBzpE,KAAKipE,YAAY,CACftoB,QAASA,SAZTl/C,OAAO+yD,EAAO,KAAd/yD,CAAqCylE,EAAIzsC,QAe7CmwC,aAAc,SAAsB1D,GAClCzlE,OAAO+yD,EAAO,KAAd/yD,CAAqCylE,EAAI5kD,MACzC7gB,OAAO+yD,EAAO,KAAd/yD,CAAuCylE,EAAI5kE,KAAM4kE,EAAI5kD,KAAM4kD,EAAIuC,UAC/D,IAAIA,EAAWzpE,KAAK6D,QAAQkG,MACxB2/D,EAAW1pE,KAAK+pE,WAAW7C,EAAIwC,UACnC1pE,KAAKwpE,eAAeC,EAAUC,GAC9B,IAAInoB,EAAQ,CACV2jB,QAASllE,KAAK6D,QAAQqhE,QACtBuE,SAAUA,EACVC,SAAUA,GAEZ1pE,KAAKipE,YAAY,CACf1nB,MAAOA,KAGXspB,eAAgB,SAAwB3D,EAAKtlB,GAC3CslB,EAAIv1D,eAAeiwC,KAAkBslB,EAAItlB,IAAiB5hD,KAAKwmE,eAEjEsE,mBAAoB,SAA4BC,EAAgB7D,GAC9D,IAAK6D,EAAe7F,QAClB,OAAO,EAGT,IAAI8F,EAAcztD,EAAmB2pD,EAAIzwD,GAAGnI,UAAUg7B,QAAO,SAAUrlC,GACrE,MAA+B,SAAxBA,EAAG0J,MAAM,cAGds9D,EAAkBD,EAAYl7D,QAAQo3D,EAAI2C,SAC1CqB,EAAeH,EAAe38D,UAAU27D,WAAWkB,GACnDE,GAA0D,IAA1CH,EAAYl7D,QAAQq3D,GACxC,OAAOgE,IAAkBjE,EAAIkE,gBAAkBF,EAAeA,EAAe,GAE/EjD,WAAY,SAAoBf,EAAKc,GACnC,IAAID,EAAS/nE,KAAKqnE,KAElB,IAAKU,IAAW/nE,KAAKimE,SACnB,OAAO,EAGT,IAAI8E,EAAiB/qE,KAAK2pE,+BAA+BzC,GACrDmE,EAAiBrrE,KAAK6D,QACtBynE,EAActrE,KAAK8qE,mBAAmBC,EAAgB7D,GAC1DzlE,OAAO8gD,OAAO8oB,EAAgB,CAC5BC,YAAaA,IAEf,IAAIC,EAAU9pE,OAAO8gD,OAAO,GAAI2kB,EAAK,CACnC6D,eAAgBA,EAChBM,eAAgBA,IAElB,OAAOtD,EAAOwD,EAASvD,IAEzBwD,UAAW,WACTxrE,KAAKqoE,iBACLlB,EAAkB,QAKF,qBAAX3lE,QAA0B,QAASA,QAC5CA,OAAO28B,IAAI/vB,UAAU,YAAak5D,GAGP,IAAImE,EAAe,EAIH5I,EAAoB,WAAa,KAMlE,Y,wJCh5EZ,SAAS6I,EAAT,KACE,OAAO,kBAAM,eAAY,OAAD,OAAQ9gD,EAAR,4CAAxB,KAUI,kBAGJ,IAAM+gD,EAAc/gD,GAAA,EAAkB,CACpC6kC,SAAUic,EAAgB9gD,EADU,GAEpCklC,WAAY4b,EAAgB9gD,EAAOxO,IAFrC,KAKA,OAAO,cAAW,CAChBha,KADgB,qBAGhBksB,OAAQ,kBACN,EAAa,CACX/qB,QAASooE,MAMX,cAAkD,IAAZnN,EAAY,wDACtD,OAAO,cAAW,CAChBp8D,KADgB,sBAGhB6J,QAASuyD,EAAO,GAAK,CACnB/O,SADmB,KAEnBK,WAAY,MAEdx6C,QAPgB,WAQd,yBACE,EAAakpD,EAAOx+D,KAAO,CACzByvD,SAAUzvD,KADe,SAEzB8vD,WAAY9vD,KAAK8vD,kB,oCC9C3B,gBAGA,e,4CCHA,IAAIzwD,EAAI,EAAQ,QACZ4G,EAAQ,EAAQ,QAChB1G,EAAW,EAAQ,QACnBqsE,EAAuB,EAAQ,QAC/BC,EAA2B,EAAQ,QAEnCC,EAAsB7lE,GAAM,WAAc2lE,EAAqB,MAInEvsE,EAAE,CAAEM,OAAQ,SAAUqG,MAAM,EAAM6I,OAAQi9D,EAAqB7xD,MAAO4xD,GAA4B,CAChGxU,eAAgB,SAAwBz1D,GACtC,OAAOgqE,EAAqBrsE,EAASqC,Q,uBCZzC,IAAI+T,EAAa,EAAQ,QAEzBpX,EAAOC,QAAUmX,EAAW,YAAa,cAAgB,I,8DCE1C,qBAAW,CACxBvT,KADwB,mBAGxBe,YAHwB,EAKxBQ,OALwB,SAKlB,EALkB,GAKK,IAAlB,EAAkB,EAAlB,KAAQ2K,EAAU,EAAVA,SAGjB,OAFAxK,EAAA,YAAoB,4BAAqBA,EAAA,aAAtB,IAAnB,OAEOI,EAAE,MAAOJ,EAAhB,O,uBCZJ,IAAIkL,EAAU,EAAQ,QAClBmoD,EAAY,EAAQ,QACpB/4D,EAAkB,EAAQ,QAE1BkI,EAAWlI,EAAgB,YAE/BG,EAAOC,QAAU,SAAUoD,GACzB,QAAU9C,GAAN8C,EAAiB,OAAOA,EAAG0E,IAC1B1E,EAAG,eACHu1D,EAAUnoD,EAAQpN,M,yECTzB,IAAIW,EAAc,EAAQ,QACtB6Y,EAAuB,EAAQ,QAC/BtT,EAAW,EAAQ,QACnBikE,EAAa,EAAQ,QAIzBxtE,EAAOC,QAAU+D,EAAcd,OAAOopB,iBAAmB,SAA0B9qB,EAAGi5D,GACpFlxD,EAAS/H,GACT,IAGI+G,EAHA+I,EAAOk8D,EAAW/S,GAClBn6D,EAASgR,EAAKhR,OACdkL,EAAQ,EAEZ,MAAOlL,EAASkL,EAAOqR,EAAqB/Z,EAAEtB,EAAG+G,EAAM+I,EAAK9F,KAAUivD,EAAWlyD,IACjF,OAAO/G,I,kCCdM,SAASukE,EAAgBrnD,GACtC,GAAI5a,MAAM6a,QAAQD,GAAM,OAAOA,E,8FCDlB,SAASsnD,EAAsBtnD,EAAKtc,GACjD,GAAsB,qBAAX0c,QAA4BA,OAAOvE,YAAYrX,OAAOwb,GAAjE,CACA,IAAIunD,EAAO,GACP7rC,GAAK,EACLc,GAAK,EACLH,OAAKx6B,EAET,IACE,IAAK,IAAiC85B,EAA7BI,EAAK/b,EAAII,OAAOvE,cAAmB6f,GAAMC,EAAKI,EAAGjjB,QAAQ5L,MAAOwuB,GAAK,EAG5E,GAFA6rC,EAAKp8D,KAAKwwB,EAAG/xB,OAETlG,GAAK6jE,EAAK3lE,SAAW8B,EAAG,MAE9B,MAAO4vB,GACPkJ,GAAK,EACLH,EAAK/I,EARP,QAUE,IACOoI,GAAsB,MAAhBK,EAAG,WAAmBA,EAAG,YADtC,QAGE,GAAIS,EAAI,MAAMH,GAIlB,OAAOkrC,G,gBCxBM,SAASG,IACtB,MAAM,IAAIx1D,UAAU,6ICGP,SAASy1D,EAAe3nD,EAAKtc,GAC1C,OAAOqrE,EAAe/uD,IAAQgvD,EAAqBhvD,EAAKtc,IAAM+c,eAA2BT,EAAKtc,IAAMurE,M,gJCShG97D,EAAa,eAAO,EAAD,KAEvB,eAFuB,QAAzB,QAOe,OAAAA,EAAA,OAAkB,CAC/BhO,KAD+B,cAG/BgB,MAAO,CACLkI,SADK,QAELzJ,MAFK,QAGLsqE,WAAY,CACV7oE,KAAM,CAACmI,OADG,QAEVlI,QAAS,GAEX6oE,cAAe,CACb9oE,KAAM,CAAC7E,OADM,OAEb8E,QAAS,iBAAM,KAEjB8oE,SAAU,CACR/oE,KAAM,CAAC7E,OADC,OAER8E,QAAS,iBAAM,KAEjB+oE,SAfK,QAgBLC,MAAO,CACLjpE,KADK,MAELC,QAAS,iBAAM,KAEjBipE,QApBK,QAqBLC,gBAAiB,CACfnpE,KAAM,CAAC7E,OADQ,OAEf8E,QAAS,iBAAM,KAEjBmpE,eAzBK,QA0BL7lE,MAAO,CAAE6E,UAAU,IAGrB5H,KAhC+B,WAiC7B,MAAO,CACL6oE,YADK,GAELC,UAFK,EAGLC,YAHK,EAILC,UAJK,EAKLC,WALK,EAMLC,aANK,EAOLC,UAAWjtE,KAPN,MAQLktE,OAAO,IAIXvhE,SAAU,CACRwhE,cADQ,WAEN,IAAIntE,KAAJ,WACA,OAAIA,KAAJ,MAAuBA,KAFZ,MAQPA,KAAKotE,SAAWptE,KAApB,kBACY,WAEdqtE,SAZQ,WAaN,OACErtE,KAAKstE,sBAAsBzuE,OAAS,GACpCmB,KAAK2sE,YAAY9tE,OADjB,GAEAmB,KAHF,OAQFutE,WArBQ,WAsBN,OACEvtE,KAAKwtE,wBAAwB3uE,OAAS,GACtCmB,KAFF,SAKFytE,cA3BQ,WA4BN,OAAOztE,KAAKstE,sBAAsBzuE,OAAS,GAAKmB,KAAhD,OAEF0tE,YA9BQ,WA+BN,OAAO1tE,KAAK2tE,iBAAiB9uE,OAA7B,GAEF+uE,SAjCQ,WAkCN,OAAI5tE,KAAJ,aAGEA,KAAKutE,YACJvtE,KAAK6tE,gBAAkB7tE,KAF1B,WAKFstE,sBAzCQ,WA0CN,OAAOttE,KAAK8tE,oBAAoB9tE,KAAhC,gBAEF+tE,iBA5CQ,WA6CN,OAAO/tE,KAAK8tE,oBAAoB9tE,KAAhC,WAEFwtE,wBA/CQ,WAgDN,OAAOxtE,KAAK8tE,oBAAoB9tE,KAAhC,kBAEFguE,cAAe,CACb5nE,IADa,WAEX,OAAOpG,KAAP,WAEFyoB,IAJa,SAIV,GACDzoB,KAAA,YAEAA,KAAA,mBAGJiuE,WA5DQ,WA6DN,OAAOjuE,KAAKsL,YACRtL,KAAF,MACAA,KAAKkuE,KAFP,UAKFC,cAlEQ,WAmEN,OAAQnuE,KAAD,aAAqBA,KAA5B,YAEFouE,WArEQ,WAsEN,OAAOpuE,KAAKssE,YACRtsE,KAAF,MACAA,KAAKkuE,KAFP,UAKFL,eA3EQ,WA4EN,QAAI7tE,KAAJ,gBACIA,KAAJ,cAEOA,KAAK0sE,eACR1sE,KAAK6sE,aAAe7sE,KADjB,UAEFA,KAAK8sE,UAAY9sE,KAFtB,aAIFquE,YAnFQ,WAoFN,OAAOruE,KAAK2tE,iBAAiBvtE,MAAM,EAAGqL,OAAOzL,KAA7C,cAEFsuE,gBAtFQ,WAuFN,IAAItuE,KAAJ,WACA,OAAIA,KAAKqtE,UAAYrtE,KAArB,eAAiD,QAC7CA,KAAJ,WAA4B,UACxBA,KAAJ,SAA0BA,KAAP,mBAAnB,GAGF2tE,iBA7FQ,WA8FN,OAAI3tE,KAAKstE,sBAAsBzuE,OAA/B,EACSmB,KAAP,sBACSA,KAAKysE,gBAAgB5tE,OAAzB,EACEmB,KAAP,wBACSA,KAAKqsE,SAASxtE,OAAlB,EACEmB,KAAP,iBACSA,KAAJ,eACEA,KAAP,YACY,KAIlBwR,MAAO,CACL+6D,MAAO,CACLz4D,QADK,SACE,KACD,eAAUuZ,EAAd,IACArtB,KAAA,YAEFikC,MAAM,GAER+pC,cARK,WAWHhuE,KAAA,YACAA,KAAA,gBAAuBA,KAAKo+B,UAAUp+B,KAAtC,WAEF+sE,UAdK,SAcI,GAIJhiE,GACA/K,KAFH,aAIEA,KAAA,cACAA,KAAA,gBAAuBA,KAAKo+B,UAAUp+B,KAAtC,YAGJgtE,YAzBK,WAyBM,WACTr4D,YAAW,WACT,cACA,gBACA,iBACA,eAJF,IAOF04D,SAjCK,SAiCG,GACFrtE,KAAJ,gBACEA,KAAA,yBAGJ6G,MAtCK,SAsCA,GACH7G,KAAA,cAIJ4R,YAlM+B,WAmM7B5R,KAAA,YAGFyR,QAtM+B,WAuM7BzR,KAAA,MAAaA,KAAKkuE,KAAKze,SAAvBzvD,OAGF6R,cA1M+B,WA2M7B7R,KAAA,MAAaA,KAAKkuE,KAAKpe,WAAvB9vD,OAGFiM,QAAS,CACP6hE,oBADO,SACY,GACjB,SACSzrE,MAAA,QAAJ,KACO,CAAP,GAFL,IAKFksE,MAPO,WAQLvuE,KAAA,eACAA,KAAA,cAAqBqC,MAAA,QAAcrC,KAAd,uBAArB,GAKFwuE,gBAdO,WAeLxuE,KAAA,gBAGFyuE,SAlBO,WAkB6B,IAA1B/wC,EAA0B,wDAA5B,EAA4B,uCAC5BivC,EAAN,GACA9lE,EAAQA,GAAS7G,KAAjB,cAEA,IAAWA,KAAK8sE,SAAW9sE,KAAK6sE,YAArB,GAEX,IAAK,IAAI9iE,EAAT,EAAoBA,EAAQ/J,KAAKusE,MAAjC,OAA+CxiE,IAAS,CACtD,IAAM2kE,EAAO1uE,KAAKusE,MAAlB,GACMW,EAAwB,oBAATwB,EAAsBA,EAA7B,GAAd,GAEI,IAAAxB,GAAJ,kBAA8BA,EAC5BP,EAAA,KAAiBO,GAAjB,IACK,mBAAWA,GAChB,eAAa,sDAAD,sCAAZ,MAOJ,OAHAltE,KAAA,cACAA,KAAA,UAAa2sE,EAAA,OAEN3sE,KAAP,W,uBCzQN,IAAIX,EAAI,EAAQ,QACZkI,EAAS,EAAQ,QAIrBlI,EAAE,CAAEM,OAAQ,SAAUC,OAAO,GAAQ,CACnC2H,OAAQA,K,oCCNV,8DAMc,cAAmE,IAArByuC,EAAqB,uDAAnE,GAEZ,OAAO,eAAO,eAAoB,CAAC,WAA5B,kBAA0D,CAC/D5zC,KAD+D,kBAG/DgB,MAAO,CACLurE,IAAK7iE,SAGPH,SAAU,CACRijE,oBADQ,WAEN,WAIJp9D,MAAO,CAGLm9D,IAHK,SAGF,KACDE,EACI7uE,KAAK8uE,mBADL,GAEA9uE,KAFJ,cAIF4uE,oBARK,SAQc,KACjB5uE,KAAA,gCAAqCA,KAArC,UAIJ+uE,UA1B+D,WA2B7D/uE,KAAA,cAGFyR,QA9B+D,WA+B7D,IAAK,IAAI9Q,EAAJ,EAAW9B,EAASm3C,EAAzB,OAAwCr1C,EAAxC,EAAoDA,IAClDX,KAAA,OAAYg2C,EAAZ,GAAuBh2C,KAAvB,YAEFA,KAAA,cAGF8pC,QArC+D,WAsC7D9pC,KAAA,cAGFgvE,YAzC+D,WA0C7DhvE,KAAA,qBAGF6pC,UA7C+D,WA8C7D7pC,KAAA,qBAGFiM,QAAS,CACPgjE,WADO,WAEAjvE,KAAL,KAEAA,KAAA,8BACEA,KADF,KAEEA,KAFF,oBAGEA,KAHF,sBAMF8uE,kBAVO,WAUyB,IAAbpxC,EAAa,yDACzBA,GAAU19B,KAAf,MAEAA,KAAA,gCACEA,KADF,KAEEA,KAFF,sBAKFkvE,kBAAmB,kBAAM,Q,gDC3E/B,IAAI/uE,EAAW,EAAQ,QAEvB5B,EAAOC,QAAU,SAAUoD,GACzB,IAAKzB,EAASyB,IAAc,OAAPA,EACnB,MAAMuN,UAAU,aAAe1Q,OAAOmD,GAAM,mBAC5C,OAAOA,I,6DCJX,IAAIqhB,EAAS,EAAQ,QAAiCA,OAClD4/B,EAAsB,EAAQ,QAC9BssB,EAAiB,EAAQ,QAEzBC,EAAkB,kBAClBnsB,EAAmBJ,EAAoBp6B,IACvC4mD,EAAmBxsB,EAAoBM,UAAUisB,GAIrDD,EAAe1wE,OAAQ,UAAU,SAAU+kE,GACzCvgB,EAAiBjjD,KAAM,CACrBsD,KAAM8rE,EACNnmE,OAAQxK,OAAO+kE,GACfz5D,MAAO,OAIR,WACD,IAGIulE,EAHAhmB,EAAQ+lB,EAAiBrvE,MACzBiJ,EAASqgD,EAAMrgD,OACfc,EAAQu/C,EAAMv/C,MAElB,OAAIA,GAASd,EAAOpK,OAAe,CAAEgI,WAAO/H,EAAWqL,MAAM,IAC7DmlE,EAAQrsD,EAAOha,EAAQc,GACvBu/C,EAAMv/C,OAASulE,EAAMzwE,OACd,CAAEgI,MAAOyoE,EAAOnlE,MAAM,Q,uBC3B/B,IAAI9K,EAAI,EAAQ,QACZkwE,EAAO,EAAQ,QAEfC,EAAMlnE,KAAKknE,IACXpsB,EAAM96C,KAAK86C,IAIf/jD,EAAE,CAAEM,OAAQ,OAAQqG,MAAM,GAAQ,CAChCypE,KAAM,SAAcnrE,GAClB,OAAOirE,EAAKjrE,GAAKA,GAAK8+C,EAAIosB,EAAIlrE,GAAI,EAAI,O,qBCV1C/F,EAAOC,QAAU,I,qBCEjB,IAAI+kE,EAAmB,EAAQ,QAE/BA,EAAiB,S,uBCJjB,IAAIv0D,EAAU,EAAQ,QAItBzQ,EAAOC,QAAU,SAAUqI,GACzB,GAAoB,iBAATA,GAAuC,UAAlBmI,EAAQnI,GACtC,MAAMsI,UAAU,wBAElB,OAAQtI,I,sHCKV,SAAS6kB,EAAT,KAAiE,MACtCsyB,EAAA,WAAzB,GAD+D,IACvDwgB,YADuD,SAEzD33D,EAAQm3C,EAAd,MACMxkC,EAAW,8BAA6B3S,EAA9B,SAAgD,CAAE8rB,SAAS,GACrE7e,EAA2B,oBAAVjN,GAAwB,gBAA/B,IAAgEA,EAAhF,QAEMlH,EAAS6+D,EAAI,EAEfxgB,EAAA,IACEvrC,SAAA,cAAuBurC,EADzB,KAFJ,OAMA,IAEAr+C,EAAA,+BAEAsE,EAAA,UAAe,CACb6P,UACA0F,UAEA7Z,OAAQ6+D,OAAO1/D,EAAYa,IAI/B,SAASmS,EAAT,GACE,GAAK7N,EAAL,WAD8B,MAGYA,EAA1C,UAAM,EAHwB,EAGxB,UAHwB,EAGxB,QAHwB,IAGJtE,cAHI,MAGKsE,EAHL,EAK9BtE,EAAA,yCACOsE,EAAP,WAGK,IAAMyrE,EAAS,CACpBhkD,WACA5Z,UAGF,I,oCCjCe,gBAAW,CACxB1P,KADwB,aAGxBiO,WAAY,CAAEq/D,UAEdtsE,MAAO,CACLusE,aADK,OAELC,gBAAiB,CAACnxE,OAAQgN,SAG5B3H,KAAM,iBAAO,CACX+rE,cADW,EAEXC,iBAFW,EAGX5+D,UAHW,EAIX6+D,eAJW,EAKXC,eALW,EAMXC,YANW,EAOXtwE,OAAQ,OAGVgM,SAAU,CAMRukE,UANQ,WAON,2BAAc1uE,QAMhB2uE,wBAbQ,WAcN,OAAOnwE,KAAK4vE,gBACRnkE,OAAOzL,KADJ,iBAAP,MAMJwR,MAAO,CACLu+D,cADK,WAEH/vE,KAAA,YAAmBA,KAAKiwE,aAAejwE,KAAvC,eAEFkR,SAJK,WAKHlR,KAAA,gBAIJ8pC,QAjDwB,WAkDlB9pC,KAAJ,eACEA,KAAA,OAAcyS,SAAA,cAAuBzS,KAArC,cAEKA,KAAL,QACE,OAAAixB,EAAA,MAAY,4CAAD,OAA6CjxB,KAA7C,cAAX,QAKNiM,QAAS,CACPmkE,SADO,WACC,WACDpwE,KAAL,YAEAA,KAAA,eAAsBA,KAAtB,cACAA,KAAA,cAAqBA,KAAKL,OACtBK,KAAKL,OADY,UAEjB6B,OAFJ,YAIAxB,KAAA,cAAqBA,KAAK6vE,cAAgB7vE,KAA1C,eACAA,KAAA,iBAAwBsI,KAAA,IAAStI,KAAK6vE,cAAgB7vE,KAAtD,yBAEAA,KAAA,WAAe,WAEXsI,KAAA,IAAS,gBAAqB,EAA9B,aACA,EAFF,yBAGE,sBAQN+nE,aAxBO,gB,gDCvDLjgE,EAAa,OAAAwN,EAAA,MAAO,EAAD,qBAKvB,eAAgB,MAAO,CAAC,cAAD,4EALzB,WAiBe,OAAAxN,EAAA,OAAkB,CAC/BhO,KAD+B,YAG/BiO,WAAY,CAAEq/D,OAAA,GAEdtsE,MAAO,CACLktE,YADK,QAELC,aAFK,QAGLC,iBAHK,QAILC,gBAJK,QAKLC,gBALK,QAMLC,aANK,QAOLC,eAPK,QAQLC,gBARK,QASLC,eATK,QAULjqE,MAAO,CACLvD,KADK,QAELC,SAAS,IAIbO,KArB+B,WAsB7B,MAAO,CACLoN,SAAUlR,KAAK6G,QAInB8E,SAAU,CACRijE,oBADQ,WAEN,OAAQ5uE,KAAD,OAAP,SAAO,OAETkwE,UAJQ,WAKN,OACE,0CAEElwE,KAAK4wE,gBACL5wE,KADA,iBAEAA,KAFA,cAGAA,KAHA,kBAIAA,KAJA,WAQCA,KAXL,QAeFoR,QApBQ,WAqBN,wCACK2/D,EAAA,mCADE,OAAP,IAEE,sBAAuB/wE,KAAKgxE,UAAYhxE,KAFnC,iBAGL,aAHK,EAIL,qBAAsBA,KAAKswE,aAAetwE,KAJrC,aAKL,gCAAiCA,KAL5B,gBAML,+BAAgCA,KAN3B,gBAOL,oBAAqBA,KAAD,WAAmBA,KAAK2uE,KAAO3uE,KAP9C,OAQL,yBAA0BA,KARrB,WASL,yBAA0BA,KAAK6vE,cAT1B,EAUL,8BAA+B7vE,KAAK8wE,kBAGxCG,sBAlCQ,WAmCN,IAAKjxE,KAAL,eAA0B,OAAO+wE,EAAA,iDAAP,MAE1B,IAAMnjE,EAAS5N,KAAf,uBAEMqI,EAAMrI,KAAKqL,MAAQ,GAAzB,GACM6N,EAAN,EACMg4D,EAAah4D,EAAnB,EACMi4D,EAAYD,EAAalxE,KAA/B,wBACM8E,EAAS9E,KAAK6vE,cAApB,EAEA,OAAOvnE,KAAA,MAAc4Q,EAArB,IAEFk4D,iBA/CQ,WAgDN,GAAKpxE,KAAL,aAEA,IAAMkZ,EAAMlZ,KAAKqL,MAAQ,GAAzB,IACM6lE,EAAah4D,EAAMlZ,KAAzB,sBACMqxE,EALQ,OAQd,OAAO5lE,QAAQ,IAAOylE,EAAR,WAAd,MAEFI,aAzDQ,WA0DN,OAAKtxE,KAAD,KAAaA,KAAjB,YAA0C,EAEnCA,KAAKwf,SAAS+xD,YAArB,MAEFC,kBA9DQ,WA+DN,OAAKxxE,KAAL,IAEOA,KAAKwf,SAAS+xD,YAArB,IAFsB,GAIxBE,gBAnEQ,WAoEN,GAAKzxE,KAAL,iBAEA,IAAMof,EAAU9W,KAAA,KACbtI,KAAKmwE,wBAA0BnwE,KAAhC,eAAsDA,KADxC,wBAAhB,GAKA,OAAOyL,OAAO0T,WAAA,WAAd,MAEFuyD,uBA7EQ,WA8EN,IAAI9jE,EAASmjE,EAAA,iDAAb,MAEA,OADI/wE,KAAJ,aAAqB4N,GAAU8G,SAAS1U,KAAnB,kBACrB,GAEF2xE,cAlFQ,WAmFN,OAAK3xE,KAAD,KAAaA,KAAjB,aAA2C,EAEpCA,KAAKwf,SAAS+xD,YAArB,OAEFpB,wBAvFQ,WAwFN,OAAInwE,KAAJ,gBAAiCyL,OAAOzL,KAAd,iBAEnBA,KAAK0xE,wBAA0B1xE,KAAKqL,MAAQ,GAAnD,KAEFumE,kBA5FQ,WA6FN,IACG5xE,KAAD,WACCA,KAAKywE,iBAAL,IAAwBzwE,KAAK6vE,eAAuB7vE,KAFvD,SAGE,OAAO,EAET,GAAIA,KAAJ,SAAmB,OAAO,EAE1B,IAAM6wE,EAAkB7wE,KAAK6wE,gBACzB7wE,KADoB,eAEpBA,KAFJ,sBAIA,OAAOA,KAAKigB,OAAS4wD,GAArB,GAEFgB,WA1GQ,WA2GN,OAAI7xE,KAAKywE,iBAAmBzwE,KAA5B,WACSA,KAAK6vE,cAAgB7vE,KAA5B,wBAGEA,KAAJ,gBACgC,IAAvBA,KAAK6vE,eACV7vE,KAAK4xE,kBADP,IAKC5xE,KAAD,YACAA,KAFK,kBAAP,IAGKA,KAAK4xE,mBAEZE,YAzHQ,WA0HN,OAAK9xE,KAAL,iBAIOA,KAAK6vE,cAAZ,EAHSkB,EAAA,uCAAP,OAKJgB,YAhIQ,WAiIN,OACEhB,EAAA,8CACA/wE,KAFF,gBAKFkX,OAtIQ,WAuIN,wCACK65D,EAAA,kCADE,OAAP,IAEEvjE,SAAU,eAAcxN,KAAD,iBAFlB,OAGLgyE,UAAW,eAAchyE,KAHpB,mBAILwhD,UAAW,cAAF,OAAgB,eAAcxhD,KAJlC,mBAII,KACTuL,KAAM,eAAcvL,KALf,cAMLwL,MAAO,eAAcxL,KAAD,mBAK1BwR,MAAO,CACL0+D,UADK,WAEL0B,kBAFK,WAUA5xE,KAAD,YACEA,KAAD,aAAsBA,KAFzB,eAKAA,KAAA,cAEF4wE,eAhBK,SAgBS,GACZ5wE,KAAA,UAAiB+K,GAAjB,IAAwB/K,KAAK6vE,gBAIjCp+D,QAlM+B,WAmMzBzR,KAAJ,iBAAyBA,KAAKkR,UAAW,IAG3CjF,QAAS,CACPgmE,cADO,WAEL,IAAMtuE,EAASotE,EAAA,wCAAf,MAMA,OAJAptE,EAAA,KAAc3D,KAAKo5B,GAAGz1B,EAAA,MAAR,GAA2BA,EAA3B,IAAwC,CACpDgK,MAAO,CAAEyR,QAASpf,KAAKyxE,mBAGzB,GAEFvC,kBAVO,WAWL,OAAOlvE,KAAK4wE,eAAL,EAEH5wE,KAAKkyE,eAAiBlyE,KAF1B,mBAIFqwE,aAfO,WAgBDrwE,KAAJ,eACEA,KAAA,SAAgBA,KAAK6vE,cAAgB7vE,KAArC,yBAIEA,KAAJ,eACEA,KAAA,SAAgBA,KAAK+vE,eACnB/vE,KAAK6vE,cAAgB7vE,KADvB,yBAIEA,KAAK8vE,iBAAmB9vE,KAA5B,0BAEAA,KAAA,YAAmBA,KAAnB,kBAIJ2D,OAtO+B,SAsOzB,GACJ,IAAMA,EAASotE,EAAA,8BAAf,GAaA,OAXAptE,EAAA,KAAcA,EAAA,MAAd,GAEI3D,KAAJ,YACE2D,EAAA,gBAAyBA,EAAA,iBAAzB,GACAA,EAAA,qBAA4B,CAC1B2vC,IAAKtzC,KADqB,aAE1BoC,KAF0B,SAG1ByE,MAAO7G,KAAKowE,YAIhB,M,kCC1RJ,IAAI/wE,EAAI,EAAQ,QACZuH,EAAU,EAAQ,QAItBvH,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,OAAQ,GAAGjI,SAAWA,GAAW,CACjEA,QAASA,K,uBCPX,IAAIwI,EAAS,EAAQ,QAErB7Q,EAAOC,QAAU4Q,G,uBCFjB,IAAInJ,EAAQ,EAAQ,QAChB+I,EAAU,EAAQ,QAElBlG,EAAQ,GAAGA,MAGfvK,EAAOC,QAAUyH,GAAM,WAGrB,OAAQxE,OAAO,KAAK0O,qBAAqB,MACtC,SAAUvO,GACb,MAAsB,UAAfoN,EAAQpN,GAAkBkH,EAAM/J,KAAK6C,EAAI,IAAMH,OAAOG,IAC3DH,Q,uBCZJ,IAAIrD,EAAkB,EAAQ,QAC1B8jB,EAAS,EAAQ,QACjB9G,EAAuB,EAAQ,QAE/BwjD,EAAcxgE,EAAgB,eAC9B+zE,EAAiB9vE,MAAMnB,eAIQpC,GAA/BqzE,EAAevT,IACjBxjD,EAAqB/Z,EAAE8wE,EAAgBvT,EAAa,CAClDtjD,cAAc,EACdzU,MAAOqb,EAAO,QAKlB3jB,EAAOC,QAAU,SAAUsI,GACzBqrE,EAAevT,GAAa93D,IAAO,I,uBClBrC,IAAIsI,EAAS,EAAQ,QAErB7Q,EAAOC,QAAU,SAAUQ,EAAGC,GAC5B,IAAIgyB,EAAU7hB,EAAO6hB,QACjBA,GAAWA,EAAQpvB,QACA,IAArBzC,UAAUP,OAAeoyB,EAAQpvB,MAAM7C,GAAKiyB,EAAQpvB,MAAM7C,EAAGC,M,uBCLjE,IAAIkB,EAAW,EAAQ,QACnB6O,EAAU,EAAQ,QAClB5Q,EAAkB,EAAQ,QAE1B49D,EAAQ59D,EAAgB,SAI5BG,EAAOC,QAAU,SAAUoD,GACzB,IAAIiG,EACJ,OAAO1H,EAASyB,UAAmC9C,KAA1B+I,EAAWjG,EAAGo6D,MAA0Bn0D,EAA0B,UAAfmH,EAAQpN,M,oCCTtF,IAAIvC,EAAI,EAAQ,QACZ+yE,EAAQ,EAAQ,QAAgCtnE,KAChD0D,EAAsB,EAAQ,QAC9BC,EAA0B,EAAQ,QAElCC,EAAgBF,EAAoB,QACpCG,EAAiBF,EAAwB,QAI7CpP,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,QAASH,IAAkBC,GAAkB,CAC7E7D,KAAM,SAAciE,GAClB,OAAOqjE,EAAMpyE,KAAM+O,EAAY3P,UAAUP,OAAS,EAAIO,UAAU,QAAKN,O,oCCZzE,IAAI8I,EAAgC,EAAQ,QACxCE,EAAW,EAAQ,QACnBtI,EAAW,EAAQ,QACnB8H,EAAyB,EAAQ,QACjCU,EAAqB,EAAQ,QAC7B82D,EAAa,EAAQ,QAGzBl3D,EAA8B,QAAS,GAAG,SAAUo0D,EAAOqW,EAAazpE,GACtE,MAAO,CAGL,SAAeqB,GACb,IAAIlK,EAAIuH,EAAuBtH,MAC3BsyE,OAAoBxzE,GAAVmL,OAAsBnL,EAAYmL,EAAO+xD,GACvD,YAAmBl9D,IAAZwzE,EAAwBA,EAAQvzE,KAAKkL,EAAQlK,GAAK,IAAI0I,OAAOwB,GAAQ+xD,GAAOv9D,OAAOsB,KAI5F,SAAUkK,GACR,IAAIC,EAAMtB,EAAgBypE,EAAapoE,EAAQjK,MAC/C,GAAIkK,EAAIC,KAAM,OAAOD,EAAIrD,MAEzB,IAAIuD,EAAKtC,EAASmC,GACdI,EAAI5L,OAAOuB,MAEf,IAAKoK,EAAGgF,OAAQ,OAAO0vD,EAAW10D,EAAIC,GAEtC,IAAIk1D,EAAcn1D,EAAGV,QACrBU,EAAGhB,UAAY,EACf,IAEI1C,EAFAxG,EAAI,GACJgC,EAAI,EAER,MAAwC,QAAhCwE,EAASo4D,EAAW10D,EAAIC,IAAc,CAC5C,IAAIo1D,EAAWhhE,OAAOiI,EAAO,IAC7BxG,EAAEgC,GAAKu9D,EACU,KAAbA,IAAiBr1D,EAAGhB,UAAYpB,EAAmBqC,EAAG7K,EAAS4K,EAAGhB,WAAYm2D,IAClFr9D,IAEF,OAAa,IAANA,EAAU,KAAOhC,Q,qFCjCf,qBAAiB,CAC9BkC,KAD8B,mBAG9BgB,MAAO,CAAEiQ,KAAMvH,SAEfH,SAAU,CACRyhE,OADQ,WAEN,OAAOptE,KAAKqT,KACRrT,KADG,WAEH,oCAFJ,QAMJ2D,OAb8B,WAe5B,OACE3D,KAAKoM,OAAO7I,SACZvD,KAAKoM,OAAO7I,QAAZ,MAA0B,SAAAwnB,GAAI,OAAKA,EAAD,WAFpC,MAEuDA,EAAA,Y,qBCxB3D,IAAIjjB,EAAW,EAAQ,QACnBpJ,EAAY,EAAQ,QACpBN,EAAkB,EAAQ,QAE1BsZ,EAAUtZ,EAAgB,WAI9BG,EAAOC,QAAU,SAAUuB,EAAGwyE,GAC5B,IACIloE,EADA9J,EAAIuH,EAAS/H,GAAGoC,YAEpB,YAAarD,IAANyB,QAAiDzB,IAA7BuL,EAAIvC,EAASvH,GAAGmX,IAAyB66D,EAAqB7zE,EAAU2L,K,qBCXrG,IAAIpE,EAAQ,EAAQ,QAEpB1H,EAAOC,UAAYiD,OAAOwO,wBAA0BhK,GAAM,WAGxD,OAAQxH,OAAO4e,c,oCCJjB,IAAIhe,EAAI,EAAQ,QACZmzE,EAAQ,EAAQ,QAA4Bz7B,KAC5C07B,EAAyB,EAAQ,QAIrCpzE,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMiP,OAAQ4jE,EAAuB,SAAW,CAC3E17B,KAAM,WACJ,OAAOy7B,EAAMxyE,U,wJCKXoQ,EAAa,eAAO,EAAD,KAAzB,QAMe,OAAAA,EAAA,OAAkB,CAC/BhO,KAD+B,cAG/BgB,MAAO,CACL0P,UAAW,CACTvP,QADS,KAETmvE,UAAY,SAAA3nE,GACV,MAAO,CAAC,SAAU,UAAU4P,SAAS,OAA9B,OAA8B,CAArC,MAGJrP,SAPK,QAQLqnE,kBARK,QASLC,YATK,QAULC,YAAa/mE,SAGfhI,KAAM,iBAAO,CAEXgvE,iBAFW,KAGXC,cAHW,GAIX/8B,OAAQ,CAAC,QAAS,aAAc,aAJrB,SAKXj2B,UAAW,KAGbvO,MAAO,CACLsB,UADK,iBAEL+/D,YAFK,iBAGLD,YAAa,kBAGf9oC,QA9B+B,WA+B7B,IAAMkpC,EAAW,eAAYhzE,KAAM,aAAnC,GAEIgzE,GAAY,CAAC,SAAU,UAAUr4D,SAArC,IACE,eAAa,kGAAb,MAGF3a,KAAA,sBAGF6R,cAxC+B,WAyC7B7R,KAAA,yBAGFiM,QAAS,CACPgnE,mBADO,WAEL,GACGjzE,KAAD,YACAA,KADA,UAECA,KAHH,gBAMAA,KAAA,UAAiBA,KAAjB,wBAGA,IAFA,IAAM6P,EAAOpO,OAAA,KAAYzB,KAAzB,WAEA,uBAAwB,CAAnB,IAAM8G,EAAX,KACE9G,KAAA,kCAA2CA,KAAK+f,UAAhD,OAGJmzD,aAfO,WAgBL,IAAMnoD,EAAO,eAAQ/qB,KAAM,YAAayB,OAAA,OAAczB,KAAd,gBAAoC,CAC1E+D,GAAI/D,KADsE,wBAE1EgN,MAAOhN,KAAKmzE,6BAFd,GAOA,OAFAnzE,KAAA,gBAEA,GAEFmzE,uBAzBO,WA0BL,MAAO,CACLllE,KADK,SAEL,iBAFK,EAGL,gBAAiBxP,OAAOuB,KAAD,YAG3BozE,sBAhCO,WAgCc,WACnB,GAAIpzE,KAAJ,SAAmB,MAAO,GAE1B,IAAM+f,EAAN,GAgCA,OA9BI/f,KAAJ,aACE+f,EAAA,WAAwB,SAAAtV,GACtB,kBACA,oBAEFsV,EAAA,WAAwB,SAAAtV,GACtB,kBACA,sBAGFsV,EAAA,MAAmB,SAAAtV,GACjB,IAAMqI,EAAY,eAAlB,GACA,GAAeA,EAAA,QAEfrI,EAAA,kBAEA,YAAiB,EAAjB,UAIAzK,KAAJ,cACE+f,EAAA,MAAmB,SAAAtV,GACjB,kBAEAA,EAAA,kBAEA,YAAiB,EAAjB,WAIJ,GAEF4oE,aArEO,SAqEK,GAEV,GAAIrzE,KAAJ,iBAA2B,OAAOA,KAAP,iBAE3B,IAAI8S,EAAJ,KAEA,GAAI9S,KAAJ,UAAoB,CAClB,IAAML,EAASK,KAAK2yE,kBAAoB3yE,KAAzB,IAAf,SAIE8S,EAFF,kBAAW9S,KAAP,UAEUL,EAAA,cAAqBK,KAAjC8S,WACU9S,KAAK8S,UAAV,IAEQ9S,KAAK8S,UAAlB,IAGY9S,KAAZ8S,eAEG,GAAkC,IAA9B9S,KAAK+yE,cAAcl0E,QAAiBmB,KAAK+yE,cAAcl0E,SAA3D,EAA0E,CAI/E,IAAMivB,EAAK9tB,KAAK+yE,cAAc,GAA9B,kBAOEjgE,EALAgb,GACAA,EAAA,SADA,QAEAA,EAAA,sBAAyB,SAAA+oC,GAAD,OAAYA,EAAA,SAAa,CAAC,cAAe,YAAYl8C,SAASk8C,EAAA,QAHxF,SAMe/oC,EAAb,eAEY9tB,KAAK+yE,cAAc,GAA/B,SAEOtoE,IAETqI,EAAarI,EAAA,eAAmBA,EAAhC,QAKF,OAFAzK,KAAA,mBAEOA,KAAP,kBAEFszE,eAhHO,WAiHL,OAAO,eAAQtzE,KAAM,UAAWA,KAAlB,iBAAd,IAEFuzE,cAnHO,WAoHL,IAAM/U,EAAN,KACA,MAAO,CACL,YACE,OAAOA,EAAP,UAEF,aACEA,EAAA,cAINgV,sBA9HO,WA+HL,GACGxzE,KAAD,WACCA,KAFH,kBAOA,IAFA,IAAM6P,EAAOpO,OAAA,KAAYzB,KAAzB,WAEA,uBAAwB,CAAnB,IAAM8G,EAAX,KACG9G,KAAA,uCAAuDA,KAAK+f,UAA5D,IAGH/f,KAAA,eAEFyzE,eA5IO,WA6ILzzE,KAAA,wBACAA,KAAA,sBACAA,KAAA,eACAA,KAAA,0B,uBChNN,IAAIX,EAAI,EAAQ,QACZsW,EAAa,EAAQ,QACrBjX,EAAY,EAAQ,QACpBoJ,EAAW,EAAQ,QACnB3H,EAAW,EAAQ,QACnB+hB,EAAS,EAAQ,QACjBphB,EAAO,EAAQ,QACfmF,EAAQ,EAAQ,QAEhBytE,EAAkB/9D,EAAW,UAAW,aAMxCg+D,EAAiB1tE,GAAM,WACzB,SAASyyD,KACT,QAASgb,GAAgB,cAA6B,GAAIhb,aAAcA,MAEtEkb,GAAY3tE,GAAM,WACpBytE,GAAgB,kBAEdj6D,EAASk6D,GAAkBC,EAE/Bv0E,EAAE,CAAEM,OAAQ,UAAWqG,MAAM,EAAM6I,OAAQ4K,EAAQQ,KAAMR,GAAU,CACjEnZ,UAAW,SAAmBuzE,EAAQpzE,GACpC/B,EAAUm1E,GACV/rE,EAASrH,GACT,IAAIqzE,EAAY10E,UAAUP,OAAS,EAAIg1E,EAASn1E,EAAUU,UAAU,IACpE,GAAIw0E,IAAaD,EAAgB,OAAOD,EAAgBG,EAAQpzE,EAAMqzE,GACtE,GAAID,GAAUC,EAAW,CAEvB,OAAQrzE,EAAK5B,QACX,KAAK,EAAG,OAAO,IAAIg1E,EACnB,KAAK,EAAG,OAAO,IAAIA,EAAOpzE,EAAK,IAC/B,KAAK,EAAG,OAAO,IAAIozE,EAAOpzE,EAAK,GAAIA,EAAK,IACxC,KAAK,EAAG,OAAO,IAAIozE,EAAOpzE,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACjD,KAAK,EAAG,OAAO,IAAIozE,EAAOpzE,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAG5D,IAAIszE,EAAQ,CAAC,MAEb,OADAA,EAAM3rE,KAAKjJ,MAAM40E,EAAOtzE,GACjB,IAAKK,EAAK3B,MAAM00E,EAAQE,IAGjC,IAAIn0E,EAAQk0E,EAAU5yE,UAClB8yE,EAAW9xD,EAAO/hB,EAASP,GAASA,EAAQ6B,OAAOP,WACnDwF,EAAS9F,SAASzB,MAAMJ,KAAK80E,EAAQG,EAAUvzE,GACnD,OAAON,EAASuG,GAAUA,EAASstE,M,uLC5BxB,sBAAO,EAAD,KAEnB,eAAmB,SAFN,OAIN,CACP5xE,KADO,SAGPkT,QAHO,WAIL,MAAO,CAAE44D,KAAMluE,OAGjBg0C,cAPO,EASP5wC,MAAO,CACLkI,SADK,QAEL2oE,eAFK,QAGL3H,SAHK,QAILzlE,MAAOiF,SAGThI,KAAM,iBAAO,CACXowE,OADW,GAEXxuC,SAFW,GAGXyuC,SAAU,KAGZ3iE,MAAO,CACL2iE,SAAU,CACRrgE,QADQ,SACD,GACL,IAAMsgE,EAAS3yE,OAAA,oBAAf,GAEAzB,KAAA,mBAEFikC,MANQ,EAORwC,WAAW,IAIfx6B,QAAS,CACPooE,WADO,SACG,GAAY,WACd/wC,EAAW,SAAA+gB,GACf,OAAOA,EAAA,mBAA0B,SAAAt5C,GAC/B,OAAU,EAAV,SAAyBs5C,EAAzB,UACC,CAAE5d,WAAW,KAGZf,EAAqB,CACzBmB,KAAMwd,EADmB,KAEzB6oB,MAAO,aACPW,eAAgB,cAiBlB,OAdI7tE,KAAJ,eAEE0lC,EAAA,eAA0B2e,EAAA,yBAAgC,SAAAt5C,GACxD,IAGI,0BAA6Bs5C,EAAjC,QAEA3e,EAAA,MAAiBpC,EAAjB,QAGFoC,EAAA,MAAiBpC,EAAjB,GAGF,GAGFmrC,SA/BO,WAgCL,WAAOzuE,KAAKk0E,OAAO5qC,QAAO,SAAA+a,GAAK,OAAKA,EAAA,UAA7B,cAGTkqB,MAnCO,WAoCLvuE,KAAA,gBAAoB,SAAAqkD,GAAK,OAAIA,EAA7B,WACArkD,KAAA,iBAEFs0E,cAvCO,WAuCM,WACPt0E,KAAJ,gBAEE2U,YAAW,WACT,gBADF,IAMJ65D,gBAhDO,WAiDLxuE,KAAA,gBAAoB,SAAAqkD,GAAK,OAAIA,EAA7B,qBACArkD,KAAA,iBAEFyvD,SApDO,SAoDC,GACNzvD,KAAA,eACAA,KAAA,cAAmBA,KAAKq0E,WAAxB,KAEFvkB,WAxDO,SAwDG,GACR,IAAMykB,EAAQv0E,KAAKk0E,OAAOjmB,MAAK,SAAAttD,GAAC,OAAIA,EAAA,OAAW0jD,EAA/C,QAEA,MAEA,IAAMmwB,EAAUx0E,KAAK0lC,SAASuoB,MAAK,SAAAttD,GAAC,OAAIA,EAAA,OAAW4zE,EAAnD,QACA,IACEC,EAAA,QACAA,EAAA,kBAGFx0E,KAAA,SAAgBA,KAAK0lC,SAAS4D,QAAO,SAAA3oC,GAAC,OAAIA,EAAA,OAAW4zE,EAArD,QACAv0E,KAAA,OAAcA,KAAKk0E,OAAO5qC,QAAO,SAAA3oC,GAAC,OAAIA,EAAA,OAAW4zE,EAAjD,QACAv0E,KAAA,QAAaA,KAAb,SAA4Bu0E,EAA5B,SAIJ5wE,OA3GO,SA2GD,GAAG,WACP,OAAOO,EAAE,OAAQ,CACf4I,YADe,SAEfE,MAAO,gBACLynE,YADK,GAEFz0E,KAAKiN,QAEVlJ,GAAI,CACF2wE,OAAS,SAAAjqE,GAAD,OAAc,uBAEvBzK,KAAKoM,OATR,a,kJClIW,gBAAW,CACxBhK,KADwB,iBAGxBgB,MAAO,CACLM,KADK,OAELR,OAFK,OAGLuB,WAAYhG,U,oCCeD,cAAAmf,EAAA,MAAO,EAAD,KAEnB,eAAoB,CAAC,OAFF,yBAAN,UAON,CACPxb,KADO,UAGPgB,MAAO,CACLuxE,OADK,QAELC,SAFK,QAGL32D,MAAO,CACL3a,KADK,OAELC,QAAS,WAEX4O,QAAS,CAAEzG,UAAU,GACrBmpE,IARK,QASLC,MAAO,CACLxxE,KADK,OAELC,QAAS,kBAEX2H,KAbK,OAcL6pE,OAdK,QAeLC,QAAS,CAACvpE,OAfL,QAgBLwpE,QAAS,CAACxpE,OAhBL,QAiBLypE,QAjBK,QAkBLC,KAlBK,QAmBL1wE,WAAY,CACVnB,KADU,OAEVC,QAAS,2BAEXsD,MAAO,CAAEtD,SAAS,IAGpBoI,SAAU,CACRyF,QADQ,WAEN,uBACE,kBAAmBpR,KADd,OAEL,oBAAqBA,KAFhB,SAGL,kBAAmBA,KAHd,OAIL,eAAgBA,KAJX,IAKL,gBALK,MAKYA,KAAKkL,KACtB,kBAAmBlL,KANd,OAOL,gBAAiBA,KAPZ,KAQL,mBAAoBA,KARf,QASL,gBAAiBA,KATZ,MAUFA,KAAKmN,eAGZioE,eAfQ,WAgBN,OAAOp1E,KAAKigB,OAAS,OAASjgB,KAA9B,iBAEFsxE,aAlBQ,WAmBN,OAAItxE,KAAJ,MACSA,KAAKuL,KAAOvL,KAAZ,gBAAP,OAGKA,KAAKuL,KAAO,OAASvL,KAA5B,iBAEF2xE,cAzBQ,WA0BN,OAAI3xE,KAAJ,MACSA,KAAKuL,KAAO,OAASvL,KAA5B,gBAGMA,KAAD,KAAsBA,KAA7B,gBAAO,QAETq1E,YAhCQ,WAiCN,OAAOr1E,KAAKigB,OAASjgB,KAAd,gBAAP,QAEFs1E,gBAnCQ,WAoCN,OAAOt1E,KAAKu1E,aAAav1E,KAAzB,UAEFw1E,gBAtCQ,WAuCN,OAAOx1E,KAAKu1E,aAAav1E,KAAzB,UAEFy1E,MAzCQ,WA0CN,OAAOz1E,KAAKwf,SAAZ,KAIF1a,OA9CQ,WA+CN,OAAI9E,KAAJ,QAAyBA,KAAK60E,IAAM,EAAlB,GACX70E,KAAK60E,IAAM,EAAlB,GAEF39D,OAlDQ,WAmDN,OAAIlX,KAAJ,OAAwB,GAEjB,CACLigB,OAAQjgB,KADH,eAELuL,KAAMvL,KAFD,aAGLwL,MAAOxL,KAHF,cAILkgB,IAAKlgB,KAAKq1E,eAKhBppE,QAAS,CACPspE,aADO,SACK,GACV,4BAAsB,eAAczwE,GAAU9E,KAA9C,cAEF01E,SAJO,WAKL,IAAMC,EAAO31E,KAAKwf,SAAlB,KACMs1D,EAAQ90E,KAAK0R,OAAO,eAAiBikE,EAAA,EAAO31E,KAAlD,OAEM8D,EAAO9D,KAAK0e,mBAAmB1e,KAAxB,MAAoC,CAC/C8M,YAD+C,iBAE/Ca,MAAO3N,KAFwC,OAG/CgN,MAAO,CACL,cAAehN,KAAK0R,OAAO,gBADtB,OAEL,aAFK,EAGL,YAAa1R,KAAK0R,OAAO,cAHpB,SAILkkE,MAAO51E,KAAK0R,OAJP,MAKLzD,KAAMjO,KAAK0R,OAAOzD,MAAQ,UAE5BoC,WAAY,CAAC,CACXjO,KADW,OAEXyE,MAAO7G,KAAKkR,aAIV2kE,EAAQ71E,KAAK2T,eAAe,OAAQ7P,EAAM,CAAC9D,KAAjD,oBAEA,OAAKA,KAAL,WAEOA,KAAK2T,eAAe,aAAc,CACvCvQ,MAAO,CACLhB,KAAMpC,KADD,WAELkD,OAAQlD,KAFH,OAGL0D,KAAM1D,KAAK0D,OAEZ,CANH,IAF6BmyE,GAU/BC,gBApCO,WAsCL,IAAI91E,KAAJ,KAEA,IAAM6f,EAAO,eAAQ7f,KAArB,SAEA,WACIA,KAAJ,QAAyBvB,OAAOuB,KAAd,SACdA,KAAJ,KAAsBA,KAAK2T,eAAevI,EAApB,KAA2BpL,KAAlC,WAAf,KAIF+1E,gBAhDO,WAiDL,OAAO/1E,KAAK2T,eAAe,OAAQ,CACjC7G,YAAa,oBACZ,CAAC9M,KAFJ,eAMJ2D,OAlJO,SAkJD,GACJ,IAAMkyE,EAAQ,CAAC71E,KAAf,mBACMsO,EAAW,CAAC,eAAlB,OAFO,EAUHtO,KAPJ,OAMKgN,GATE,EAIL,eAJK,EAKL,cALK,EAML,aANK,EAGD,KAHC,EAGD,MAHC,2EAeP,OAHIhN,KAAK+0E,QAAU/0E,KAAnB,KAA8BsO,EAAA,QAA9B,GACKA,EAAA,QAEEpK,EAAE,OAAQ,CACf4I,YADe,UAEfE,QACAD,MAAO/M,KAAKoR,SAHd,O,uBC/LJ,IAAIjQ,EAAkB,EAAQ,QAC1B3B,EAAW,EAAQ,QACnBijE,EAAkB,EAAQ,QAG1BuT,EAAe,SAAUtT,GAC3B,OAAO,SAAUC,EAAO1+D,EAAI2+D,GAC1B,IAGI/7D,EAHA9G,EAAIoB,EAAgBwhE,GACpB9jE,EAASW,EAASO,EAAElB,QACpBkL,EAAQ04D,EAAgBG,EAAW/jE,GAIvC,GAAI6jE,GAAez+D,GAAMA,GAAI,MAAOpF,EAASkL,EAG3C,GAFAlD,EAAQ9G,EAAEgK,KAENlD,GAASA,EAAO,OAAO,OAEtB,KAAMhI,EAASkL,EAAOA,IAC3B,IAAK24D,GAAe34D,KAAShK,IAAMA,EAAEgK,KAAW9F,EAAI,OAAOy+D,GAAe34D,GAAS,EACnF,OAAQ24D,IAAgB,IAI9BnkE,EAAOC,QAAU,CAGfmc,SAAUq7D,GAAa,GAGvBlmE,QAASkmE,GAAa,K,oCC7BxB,IAAI32E,EAAI,EAAQ,QACZ42E,EAAU,EAAQ,QAAgC3sC,OAClD4sC,EAA+B,EAAQ,QACvCznE,EAA0B,EAAQ,QAElC0nE,EAAsBD,EAA6B,UAEnDvnE,EAAiBF,EAAwB,UAK7CpP,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,QAASsnE,IAAwBxnE,GAAkB,CACnF26B,OAAQ,SAAgBv6B,GACtB,OAAOknE,EAAQj2E,KAAM+O,EAAY3P,UAAUP,OAAS,EAAIO,UAAU,QAAKN,O,oCCd3E,IAAIgC,EAAO,EAAQ,QACfvB,EAAW,EAAQ,QACnBgZ,EAA+B,EAAQ,QACvCF,EAAwB,EAAQ,QAChC7Y,EAAW,EAAQ,QACnB42E,EAAiB,EAAQ,QACzB99D,EAAoB,EAAQ,QAIhC/Z,EAAOC,QAAU,SAAc63E,GAC7B,IAOIx3E,EAAQ6H,EAAQsS,EAAMF,EAAU/C,EAAMlP,EAPtC9G,EAAIR,EAAS82E,GACb91E,EAAmB,mBAARP,KAAqBA,KAAOqC,MACvCi0E,EAAkBl3E,UAAUP,OAC5B03E,EAAQD,EAAkB,EAAIl3E,UAAU,QAAKN,EAC7C03E,OAAoB13E,IAAVy3E,EACVE,EAAiBn+D,EAAkBvY,GACnCgK,EAAQ,EAIZ,GAFIysE,IAASD,EAAQz1E,EAAKy1E,EAAOD,EAAkB,EAAIl3E,UAAU,QAAKN,EAAW,SAE3DA,GAAlB23E,GAAiCl2E,GAAK8B,OAASgW,EAAsBo+D,GAWvE,IAFA53E,EAASW,EAASO,EAAElB,QACpB6H,EAAS,IAAInG,EAAE1B,GACTA,EAASkL,EAAOA,IACpBlD,EAAQ2vE,EAAUD,EAAMx2E,EAAEgK,GAAQA,GAAShK,EAAEgK,GAC7CqsE,EAAe1vE,EAAQqD,EAAOlD,QAThC,IAHAiS,EAAW29D,EAAe13E,KAAKgB,GAC/BgW,EAAO+C,EAAS/C,KAChBrP,EAAS,IAAInG,IACLyY,EAAOjD,EAAKhX,KAAK+Z,IAAW3O,KAAMJ,IACxClD,EAAQ2vE,EAAUj+D,EAA6BO,EAAUy9D,EAAO,CAACv9D,EAAKnS,MAAOkD,IAAQ,GAAQiP,EAAKnS,MAClGuvE,EAAe1vE,EAAQqD,EAAOlD,GAWlC,OADAH,EAAO7H,OAASkL,EACTrD,I,kGCtBH,kBAMJ,IAAMuI,EAAI,eAAiB,IAAjB,UAAyD,CACjE7M,KADiE,YAGjEgB,MAAO,CACLgT,YAAa,CACX9S,KADW,OAEXC,QAFW,WAGT,GAAKvD,KAAL,GAEA,OAAOA,KAAK4sC,GAAZ,cAGJthC,SAAUQ,SAGZhI,KAfiE,WAgB/D,MAAO,CACLoN,UAAU,IAIdvF,SAAU,CACR+qE,aADQ,WAEN,OAAK12E,KAAL,YAEA,kBACGA,KAAD,YAAoBA,KAAKkR,UAHG,KAQlCO,QA/BiE,WAgC/DzR,KAAA,IAAoBA,KAAK4sC,GAAL,SAApB5sC,OAGF6R,cAnCiE,WAoC/D7R,KAAA,IAAoBA,KAAK4sC,GAAL,WAApB5sC,OAGFiM,QAAS,CACPsL,OADO,WAELvX,KAAA,oBAKN,SAIgB0+B,EAAlB,c,qCCxEA,IAAIr/B,EAAI,EAAQ,QACZX,EAAY,EAAQ,QACpBa,EAAW,EAAQ,QACnB0G,EAAQ,EAAQ,QAChBuI,EAAsB,EAAQ,QAE9BlQ,EAAO,GACPq4E,EAAar4E,EAAK0I,KAGlB4vE,EAAqB3wE,GAAM,WAC7B3H,EAAK0I,UAAKlI,MAGR+3E,EAAgB5wE,GAAM,WACxB3H,EAAK0I,KAAK,SAGR0H,EAAgBF,EAAoB,QAEpCiL,EAASm9D,IAAuBC,IAAkBnoE,EAItDrP,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,OAAQ4K,GAAU,CAClDzS,KAAM,SAAc8vE,GAClB,YAAqBh4E,IAAdg4E,EACHH,EAAW53E,KAAKQ,EAASS,OACzB22E,EAAW53E,KAAKQ,EAASS,MAAOtB,EAAUo4E,Q,oCC5BlD,IAAIC,EAAa,EAAQ,QACrBC,EAAmB,EAAQ,QAI/Bz4E,EAAOC,QAAUu4E,EAAW,OAAO,SAAUp8C,GAC3C,OAAO,WAAiB,OAAOA,EAAK36B,KAAMZ,UAAUP,OAASO,UAAU,QAAKN,MAC3Ek4E,I,gDCRH,IAAIv3E,EAAY,EAAQ,QAEpB4I,EAAMC,KAAKD,IAIf9J,EAAOC,QAAU,SAAUy4E,GACzB,OAAOA,EAAW,EAAI5uE,EAAI5I,EAAUw3E,GAAW,kBAAoB,I,mBCPrE,IAAItlE,EAAiB,GAAGA,eAExBpT,EAAOC,QAAU,SAAUoD,EAAIkF,GAC7B,OAAO6K,EAAe5S,KAAK6C,EAAIkF,K,kCCFjC,IAAIc,EAAgC,EAAQ,QACxCE,EAAW,EAAQ,QACnBvI,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAY,EAAQ,QACpB6H,EAAyB,EAAQ,QACjCU,EAAqB,EAAQ,QAC7B82D,EAAa,EAAQ,QAErB5lD,EAAM5Q,KAAK4Q,IACX7Q,EAAMC,KAAKD,IACXiZ,EAAQhZ,KAAKgZ,MACby9C,EAAuB,4BACvBC,EAAgC,oBAEhCC,EAAgB,SAAUr9D,GAC5B,YAAc9C,IAAP8C,EAAmBA,EAAKnD,OAAOmD,IAIxCgG,EAA8B,UAAW,GAAG,SAAUs3D,EAAS/C,EAAevzD,EAAiB42B,GAC7F,IAAI03C,EAA+C13C,EAAO03C,6CACtDC,EAAmB33C,EAAO23C,iBAC1BC,EAAoBF,EAA+C,IAAM,KAE7E,MAAO,CAGL,SAAiB9X,EAAaC,GAC5B,IAAIt/D,EAAIuH,EAAuBtH,MAC3Bq3E,OAA0Bv4E,GAAfsgE,OAA2BtgE,EAAYsgE,EAAYF,GAClE,YAAoBpgE,IAAbu4E,EACHA,EAASt4E,KAAKqgE,EAAar/D,EAAGs/D,GAC9BlD,EAAcp9D,KAAKN,OAAOsB,GAAIq/D,EAAaC,IAIjD,SAAUp1D,EAAQo1D,GAChB,IACI6X,GAAgDC,GACzB,kBAAjB9X,IAA0E,IAA7CA,EAAavvD,QAAQsnE,GAC1D,CACA,IAAIltE,EAAMtB,EAAgBuzD,EAAelyD,EAAQjK,KAAMq/D,GACvD,GAAIn1D,EAAIC,KAAM,OAAOD,EAAIrD,MAG3B,IAAIuD,EAAKtC,EAASmC,GACdI,EAAI5L,OAAOuB,MAEXs/D,EAA4C,oBAAjBD,EAC1BC,IAAmBD,EAAe5gE,OAAO4gE,IAE9C,IAAIjwD,EAAShF,EAAGgF,OAChB,GAAIA,EAAQ,CACV,IAAImwD,EAAcn1D,EAAGV,QACrBU,EAAGhB,UAAY,EAEjB,IAAIo2D,EAAU,GACd,MAAO,EAAM,CACX,IAAI94D,EAASo4D,EAAW10D,EAAIC,GAC5B,GAAe,OAAX3D,EAAiB,MAGrB,GADA84D,EAAQp3D,KAAK1B,IACR0I,EAAQ,MAEb,IAAIqwD,EAAWhhE,OAAOiI,EAAO,IACZ,KAAb+4D,IAAiBr1D,EAAGhB,UAAYpB,EAAmBqC,EAAG7K,EAAS4K,EAAGhB,WAAYm2D,IAKpF,IAFA,IAAIG,EAAoB,GACpBC,EAAqB,EAChBh/D,EAAI,EAAGA,EAAI6+D,EAAQ3gE,OAAQ8B,IAAK,CACvC+F,EAAS84D,EAAQ7+D,GAUjB,IARA,IAAIi/D,EAAUnhE,OAAOiI,EAAO,IACxBm5D,EAAW3mD,EAAI7Q,EAAI5I,EAAUiH,EAAOqD,OAAQM,EAAExL,QAAS,GACvDihE,EAAW,GAMNp9B,EAAI,EAAGA,EAAIh8B,EAAO7H,OAAQ6jC,IAAKo9B,EAAS13D,KAAK62D,EAAcv4D,EAAOg8B,KAC3E,IAAIq9B,EAAgBr5D,EAAO0yD,OAC3B,GAAIkG,EAAmB,CACrB,IAAIU,EAAe,CAACJ,GAAS3+D,OAAO6+D,EAAUD,EAAUx1D,QAClCvL,IAAlBihE,GAA6BC,EAAa53D,KAAK23D,GACnD,IAAIE,EAAcxhE,OAAO4gE,EAAalgE,WAAML,EAAWkhE,SAEvDC,EAAcC,EAAgBN,EAASv1D,EAAGw1D,EAAUC,EAAUC,EAAeV,GAE3EQ,GAAYF,IACdD,GAAqBr1D,EAAEjK,MAAMu/D,EAAoBE,GAAYI,EAC7DN,EAAqBE,EAAWD,EAAQ/gE,QAG5C,OAAO6gE,EAAoBr1D,EAAEjK,MAAMu/D,KAKvC,SAASO,EAAgBN,EAASn4D,EAAKo4D,EAAUC,EAAUC,EAAeE,GACxE,IAAIE,EAAUN,EAAWD,EAAQ/gE,OAC7Bg4D,EAAIiJ,EAASjhE,OACbuhE,EAAUpB,EAKd,YAJsBlgE,IAAlBihE,IACFA,EAAgBxgE,EAASwgE,GACzBK,EAAUrB,GAEL5C,EAAcp9D,KAAKkhE,EAAaG,GAAS,SAAUj3D,EAAO8mC,GAC/D,IAAIrf,EACJ,OAAQqf,EAAGhtB,OAAO,IAChB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAO28C,EACjB,IAAK,IAAK,OAAOn4D,EAAIrH,MAAM,EAAGy/D,GAC9B,IAAK,IAAK,OAAOp4D,EAAIrH,MAAM+/D,GAC3B,IAAK,IACHvvC,EAAUmvC,EAAc9vB,EAAG7vC,MAAM,GAAI,IACrC,MACF,QACE,IAAI8B,GAAK+tC,EACT,GAAU,IAAN/tC,EAAS,OAAOiH,EACpB,GAAIjH,EAAI20D,EAAG,CACT,IAAIx1D,EAAIigB,EAAMpf,EAAI,IAClB,OAAU,IAANb,EAAgB8H,EAChB9H,GAAKw1D,OAA8B/3D,IAApBghE,EAASz+D,EAAI,GAAmB4uC,EAAGhtB,OAAO,GAAK68C,EAASz+D,EAAI,GAAK4uC,EAAGhtB,OAAO,GACvF9Z,EAETynB,EAAUkvC,EAAS59D,EAAI,GAE3B,YAAmBpD,IAAZ8xB,EAAwB,GAAKA,U,kICnI3B,SAAS0mD,EAAQp2D,GAa9B,OATEo2D,EADoB,oBAAXj6D,QAAoD,kBAApBA,OAAOvE,SACtC,SAAiBoI,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAX7D,QAAyB6D,EAAI/e,cAAgBkb,QAAU6D,IAAQ7D,OAAOnc,UAAY,gBAAkBggB,GAItHo2D,EAAQp2D,K,0JCXjB,SAASqH,EAAQrS,EAAQqhE,GACvB,IAAI1nE,EAAOpO,OAAOoO,KAAKqG,GAEvB,GAAIzU,OAAOwO,sBAAuB,CAChC,IAAImwD,EAAU3+D,OAAOwO,sBAAsBiG,GACvCqhE,IAAgBnX,EAAUA,EAAQ92B,QAAO,SAAUkuC,GACrD,OAAO/1E,OAAOqB,yBAAyBoT,EAAQshE,GAAKjxD,eAEtD1W,EAAKzH,KAAKjJ,MAAM0Q,EAAMuwD,GAGxB,OAAOvwD,EAGM,SAAS4nE,EAAe93E,GACrC,IAAK,IAAIgB,EAAI,EAAGA,EAAIvB,UAAUP,OAAQ8B,IAAK,CACzC,IAAImJ,EAAyB,MAAhB1K,UAAUuB,GAAavB,UAAUuB,GAAK,GAE/CA,EAAI,EACN4nB,EAAQ9mB,OAAOqI,IAAS,GAAMlD,SAAQ,SAAUE,GAC9CX,eAAexG,EAAQmH,EAAKgD,EAAOhD,OAE5BrF,OAAOi2E,0BAChBj2E,OAAOopB,iBAAiBlrB,EAAQ8B,OAAOi2E,0BAA0B5tE,IAEjEye,EAAQ9mB,OAAOqI,IAASlD,SAAQ,SAAUE,GACxCrF,OAAO0E,eAAexG,EAAQmH,EAAKrF,OAAOqB,yBAAyBgH,EAAQhD,OAKjF,OAAOnH,I,8GCrBHg4E,EAAN,GAEA,SAASn2B,EAAT,KACEv9C,EAAA,qBACAA,EAAA,2BAGF,SAASmb,EAAT,KACEnb,EAAA,iBAAsB4C,EAAtB,WASF,SAAS+wE,EAAT,GACE,qBAAOntE,EAAA,iBAGT,SAASotE,EAAT,GACE,wBAAOptE,EAAA,iBAGT,IAAMqtE,EAAY,SAAC,EAAD,GAId,IADFjxE,EACE,uDAJc,GAKZkxE,EAAJ,EACIC,EAAJ,EAEA,IAAKH,EAAL,GAAyB,CACvB,IAAM/yE,EAASb,EAAf,wBACMtE,EAASi4E,EAAA,GAAkBntE,EAAA,QAAUA,EAAA,eAA5B,GAAf,EAEAstE,EAASp4E,EAAA,QAAiBmF,EAA1B,KACAkzE,EAASr4E,EAAA,QAAiBmF,EAA1B,IAGF,IAAImzE,EAAJ,EACIC,EAAJ,GACIj0E,EAAA,SAAcA,EAAA,QAAlB,QACEi0E,EAAA,IACAD,EAASh0E,EAAA,YAAT,EACAg0E,EAASpxE,EAAA,SAAwBoxE,EAAS3vE,KAAA,KAAU,SAACyvE,EAAD,cAA0BC,EAAD,EAAnC,IAA1C,GAEAC,EAAS3vE,KAAA,KAAU,SAAArE,EAAA,wBAAsBA,EAAA,aAAhC,IAAT,EAGF,IAAMk0E,EAAU,GAAH,QAAOl0E,EAAA,YAAD,EAAmBg0E,GAAtC,EAAa,MACPG,EAAU,GAAH,QAAOn0E,EAAA,aAAD,EAAoBg0E,GAAvC,EAAa,MAEP3zE,EAAIuC,EAAA,mBAA4BkxE,EAAtC,EAAU,MACJntE,EAAI/D,EAAA,mBAA4BmxE,EAAtC,EAAU,MAEV,MAAO,CAAEC,SAAQC,QAAO5zE,IAAGsG,IAAGutE,UAASC,YAGnCC,EAAU,CAEd3lE,KAFc,SAEV,KAGuB,IAAzB7L,EAAyB,uDAHvB,GAKF,GAAK5C,EAAD,SAAgBA,EAAA,QAApB,SAIA,IAAMq0E,EAAY7lE,SAAA,cAAlB,QACM8lE,EAAY9lE,SAAA,cAAlB,QAEA6lE,EAAA,eACAA,EAAA,gCAEIzxE,EAAJ,QACEyxE,EAAA,sBAA2BzxE,EAA3B,QAbuB,MAgByBixE,EAAUrtE,EAAGxG,EAA/D,GAAM,EAhBmB,EAgBnB,SAhBmB,EAgBnB,QAhBmB,EAgBnB,IAhBmB,EAgBnB,IAhBmB,EAgBnB,QAAgCm0E,EAhBb,EAgBaA,QAEhC9yE,EAAO,GAAH,OAAV,EAAgB2yE,EAAN,MACVM,EAAA,gCACAA,EAAA,cACAA,EAAA,eAEAt0E,EAAA,eAEA,IAAM0H,EAAWnK,OAAA,iBAAjB,GACImK,GAAJ,WAAgBA,EAAA,WACd1H,EAAA,0BACAA,EAAA,mCAGFs0E,EAAA,4CACAA,EAAA,8CACA/2B,EAAU+2B,EAAW,aAAZ,OAAyBj0E,EAAzB,aAA+BsG,EAA/B,qBAA6CstE,EAA7C,YAAsDA,EAAtD,YAAT,EAAS,MACT94D,EAAQm5D,EAAR,GACAA,EAAA,kBAA8B95E,OAAO6mB,YAArC,OAEA3Q,YAAW,WACT4jE,EAAA,+CACAA,EAAA,yCACA/2B,EAAU+2B,EAAW,aAAZ,OAAyBJ,EAAzB,aAAT,EAAS,qBACT/4D,EAAQm5D,EAAR,OAJF,KAQFrhB,KAlDc,SAkDV,GACF,GAAKjzD,GAAOA,EAAR,SAAuBA,EAAA,QAA3B,SAEA,IAAMo0E,EAAUp0E,EAAA,uBAAhB,uBAEA,OAAIo0E,EAAA,OAAJ,CACA,IAAME,EAAYF,EAAQA,EAAA,OAA1B,GAEA,IAAIE,EAAA,QAAJ,UACKA,EAAA,wBAEL,IAAMC,EAAOlzD,YAAA,MAAoB7Z,OAAO8sE,EAAA,QAAxC,WACM9jE,EAAQnM,KAAA,IAAS,IAAT,EAAd,GAEAqM,YAAW,WACT4jE,EAAA,4CACAA,EAAA,0CACAn5D,EAAQm5D,EAAR,GAEA5jE,YAAW,WACT,IAAM0jE,EAAUp0E,EAAA,uBAAhB,uBACI,IAAAo0E,EAAA,QAAwBp0E,EAAA,QAA5B,mBACEA,EAAA,eAAoBA,EAAA,QAApB,wBACOA,EAAA,QAAP,kBAGFs0E,EAAA,YAAwBt0E,EAAA,YAAes0E,EAAvC,cAPF,OALF,QAkBJ,SAASE,EAAT,GACE,MAAwB,qBAAV5xE,KAAd,EAGF,SAAS6xE,EAAT,GACE,IAAM7xE,EAAN,GACMq+D,EAAUz6D,EAAhB,cACA,GAAKy6D,GAAYA,EAAb,UAAgCA,EAAA,QAApC,SACA,GAAI0S,EAAJ,GACE1S,EAAA,mBACAA,EAAA,wBAMA,GAAIA,EAAA,QAAJ,QAA6B,OAO/B,GALAr+D,EAAA,OAAeq+D,EAAA,kBAA4B2S,EAA3C,GACI3S,EAAA,QAAJ,QACEr+D,EAAA,MAAcq+D,EAAA,QAAd,OAGE0S,EAAJ,GAAqB,CAEnB,GAAI1S,EAAA,QAAJ,gBAAqC,OAErCA,EAAA,wBAAkC,WAChCmT,EAAA,aAEFnT,EAAA,kBAA4B1jE,OAAA,YAAkB,WACxC0jE,GAAWA,EAAX,SAA8BA,EAAA,QAAlC,kBACEA,EAAA,0BACAA,EAAA,gCAHJ,QAOAmT,EAAA,aAIJ,SAASM,EAAT,GACE,IAAMzT,EAAUz6D,EAAhB,cACA,GAAKy6D,GAAYA,EAAjB,SAMA,GAJA1jE,OAAA,aAAoB0jE,EAAA,QAJO,WAQvB,aAAAz6D,EAAA,MAAyBy6D,EAAA,QAA7B,gBAQE,OAPAA,EAAA,0BACAA,EAAA,wBAF4D,UAK5DA,EAAA,kBAA4BvwD,YAAW,WACrCgkE,EAAA,OAKJn3E,OAAA,YAAkB,WACZ0jE,EAAJ,UACEA,EAAA,uBAGJmT,EAAA,SAGF,SAASO,EAAT,GACE,IAAM1T,EAAUz6D,EAAhB,cAEKy6D,GAAYA,EAAjB,UAEIA,EAAA,QAAJ,kBACEA,EAAA,8BAGF1jE,OAAA,aAAoB0jE,EAAA,QAApB,YAGF,IAAI2T,GAAJ,EAEA,SAASC,EAAT,GACOD,GAAmBpuE,EAAA,UAAc,OAAd,OAAgCA,EAAA,UAAc,OAAtE,QACEouE,GAAA,EACAH,EAAA,IAIJ,SAASK,EAAT,GACEF,GAAA,EACAF,EAAA,GAGF,SAASK,EAAT,OACE,IAAMC,EAAUR,EAAgBz6B,EAAhC,OACA,GACEq6B,EAAA,QAEFp0E,EAAA,QAAaA,EAAA,SAAb,GACAA,EAAA,kBACA,IAAM4C,EAAQm3C,EAAA,OAAd,GACIn3C,EAAJ,SACE5C,EAAA,qBAEE4C,EAAJ,QACE5C,EAAA,cAAmB+5C,EAAA,MAAnB,OAEEn3C,EAAJ,SACE5C,EAAA,eAAoB4C,EAApB,QAEEoyE,IAAJ,GACEh1E,EAAA,gCAA8C,CAAE0uB,SAAS,IACzD1uB,EAAA,8BAA4C,CAAE0uB,SAAS,IACvD1uB,EAAA,+BAAmD,CAAE0uB,SAAS,IAC9D1uB,EAAA,kCAEAA,EAAA,gCACAA,EAAA,8BACAA,EAAA,iCAEAA,EAAA,8BACAA,EAAA,yBAX0B,GAc1BA,EAAA,+BAA6C,CAAE0uB,SAAS,MAC9CsmD,GAAL,GACLC,EAAA,GAIJ,SAASA,EAAT,GACEj1E,EAAA,mCACAA,EAAA,oCACAA,EAAA,kCACAA,EAAA,mCACAA,EAAA,qCACAA,EAAA,iCACAA,EAAA,oCACAA,EAAA,iCACAA,EAAA,+BACAA,EAAA,mCAGF,SAAS85C,EAAT,OACEi7B,EAAa/0E,EAAI+5C,GAAjB,GAcF,SAASlsC,EAAT,UACS7N,EAAP,QACAi1E,EAAA,GAGF,SAAS5vD,EAAT,KACE,GAAI00B,EAAA,QAAkBA,EAAtB,UAIA,IAAMm7B,EAAaV,EAAgBz6B,EAAnC,UACAg7B,EAAa/0E,EAAI+5C,EAAjB,IAGK,IAAM7nC,EAAS,CACpBrV,KADoB,EAEpBgR,SACAwX,UAGF,U,qBC7UA,IAAIjjB,EAAU,EAAQ,QAClBgnD,EAAQ,EAAQ,SAEnB9uD,EAAOC,QAAU,SAAUsI,EAAKD,GAC/B,OAAOwmD,EAAMvmD,KAASumD,EAAMvmD,QAAiBhI,IAAV+H,EAAsBA,EAAQ,MAChE,WAAY,IAAIuB,KAAK,CACtBmiC,QAAS,QACT7mC,KAAM2C,EAAU,OAAS,SACzBy2D,UAAW,0C,gPCsBP1sD,EAAa,eAAO,EAAD,mBAIvB,eAJuB,QAAzB,QAkBe,OAAAA,EAAA,gBAAoC,CACjDhO,KADiD,eAGjDiO,WAAY,CAAEuG,OAAA,QAEdxT,MAAO,CACLgT,YAAa,CACX9S,KADW,OAEXC,QAAS,IAEX61E,WAAY,CACV91E,KADU,OAEVC,QAAS,WAEX0a,MAAO,CACL3a,KADK,OAELC,QAAS,WAEX+H,SAbK,QAcLjI,MAdK,OAeLg2E,SAfK,QAgBLC,YAhBK,OAiBL1iE,OAAQ,CACNtT,KAAM,CAACwI,QADD,QAENvI,SAAS,GAEXg2E,SAAUztE,SAGZH,SAAU,CACRyF,QADQ,WAEN,MAAO,CACL,uBAAwBpR,KADnB,SAEL,yBAA0BA,KAFrB,SAGL,0BAA2BA,KAHtB,SAIL,0BAA2BA,KAAKu5E,YAKtC/nE,MAAO,CACLN,SADK,SACG,IAEDlR,KAAD,UAAJ,GACEA,KAAA,MAAaA,KAAKU,KAAK84E,UAAUx5E,KAAjC,OAGJmX,OAAQ,iBAGV1F,QAlDiD,WAmD/CzR,KAAA,MAAaA,KAAKU,KAAK+uD,SAAvBzvD,MAEIA,KAAKqD,OACPrD,KADE,QAAJ,MAEEA,KAAK6G,QAEL7G,KAAA,SAAgBA,KAAKy5E,WAAWz5E,KAAKmX,OAArC,QAIJtF,cA7DiD,WA8D/C7R,KAAA,MAAaA,KAAKU,KAAKovD,WAAvB9vD,OAGFiM,QAAS,CACPD,MADO,SACF,GAAU,WACThM,KAAJ,WAEAA,KAAA,YAEAA,KAAA,iBACAA,KAAA,WAAe,kBAAO,YAAiB,EAAvC,cAEF05E,QATO,SASA,GACL,OAAO15E,KAAK2T,eAAe,EAApB,KAAP,IAEFgmE,cAZO,WAaL,IAAMzuE,GAAQlL,KAAD,UAAiBA,KAAjB,WAEb,OAAKkL,GAASlL,KAAKoM,OAAnB,WAEOpM,KAAK2T,eAAe,EAApB,KAAmC,CACxC7G,YAAa,qCACZ,CACD9M,KAAKoM,OAAOgtE,YAAcp5E,KAAK05E,QAHjC,KAF6C,MAQ/CE,UAvBO,WAwBL,OAAO55E,KAAK2T,eAAe,EAApB,KAA+B,CACpC7G,YADoC,uBAEpCE,MAAO,CACL,gBAAiBvO,OAAOuB,KADnB,UAELiO,KAAM,UAERlB,MAAO,kBACJ/M,KAAD,YAAoBA,KAAKkR,UAE3B9N,MAAO,CACLy2E,WAAY75E,KAAKkR,UAEnBb,WAAY,CAAC,CACXjO,KADW,SAEXyE,MAAO7G,KAAK4W,SAEd7S,GAAI,iCACC/D,KADD,YAAF,IAEAgM,MAAOhM,KAAKgM,SAEb,CACDhM,KADC,iBAEDA,KAAKoM,OAFJ,UAGDpM,KAvBF,mBA0BF85E,SAlDO,WAkDC,WACN,OAAO95E,KAAKoT,iBAAgB,iBAAM,CAChC,uBAA2B,CACzBtG,YADyB,sBAEzBuD,WAAY,CAAC,CACXjO,KADW,OAEXyE,MAAO,EAAKqK,YAEb,eAPL,SAUF6oE,eA7DO,WA8DL,IAAM7uE,EAAOlL,KAAKu5E,UAAL,MAAiBv5E,KAAKs5E,YAAtB,YAETt5E,KAFJ,YAIA,OAAKkL,GAASlL,KAAKoM,OAAnB,YAEOpM,KAAK2T,eAAe,EAApB,KAAmC,CACxC7G,YAAa,sCACZ,CACD9M,KAAKoM,OAAOktE,aAAet5E,KAAK05E,QAHlC,KAF8C,MAQhDpiE,cA1EO,SA0EM,GAEX,GAAKtX,KAAL,OAEA,IAAMkR,EAAWlR,KAAKy5E,WAAWhjE,EAAjC,MAGIvF,GAAYlR,KAAKkR,WAArB,GACElR,KAAA,MAAaA,KAAKU,KAAK84E,UAAUx5E,KAAjC,MAGFA,KAAA,aAEFuX,OAvFO,SAuFD,GAAa,WACXrG,EAAWlR,KAAK6mC,OAAtB,EAEA,IAAc7mC,KAAKg6E,UAAW,GAC9Bh6E,KAAA,WAAe,kBAAO,WAAtB,MAEFy5E,WA7FO,SA6FG,GACR,cAAOhjE,EAAA,MAASzW,KAAT,SAIX2D,OAnKiD,SAmK3C,GACJ,OAAOO,EAAE,MAAOlE,KAAK0V,aAAa1V,KAAKkR,UAAYlR,KAAnC,MAA+C,CAC7D8M,YAD6D,eAE7DC,MAAO/M,KAAKoR,UACV,CACFpR,KADE,YAEFkE,EAAE,EAAD,KAAoBlE,KALvB,kB,uBCpNJ,IAAI2V,EAAa,EAAQ,QACrBskE,EAA4B,EAAQ,QACpCC,EAA8B,EAAQ,QACtCpyE,EAAW,EAAQ,QAGvBvJ,EAAOC,QAAUmX,EAAW,UAAW,YAAc,SAAiB/T,GACpE,IAAIiO,EAAOoqE,EAA0B54E,EAAEyG,EAASlG,IAC5CqO,EAAwBiqE,EAA4B74E,EACxD,OAAO4O,EAAwBJ,EAAK5O,OAAOgP,EAAsBrO,IAAOiO,I,mBCP1EtR,EAAOC,QAAU,iD,uBCFjB,IAAI8I,EAAyB,EAAQ,QACjC6yE,EAAc,EAAQ,QAEtBC,EAAa,IAAMD,EAAc,IACjCE,EAAQ5xE,OAAO,IAAM2xE,EAAaA,EAAa,KAC/CE,EAAQ7xE,OAAO2xE,EAAaA,EAAa,MAGzCpE,EAAe,SAAUuE,GAC3B,OAAO,SAAU5X,GACf,IAAI15D,EAASxK,OAAO6I,EAAuBq7D,IAG3C,OAFW,EAAP4X,IAAUtxE,EAASA,EAAO0N,QAAQ0jE,EAAO,KAClC,EAAPE,IAAUtxE,EAASA,EAAO0N,QAAQ2jE,EAAO,KACtCrxE,IAIX1K,EAAOC,QAAU,CAGfmlB,MAAOqyD,EAAa,GAGpB1kC,IAAK0kC,EAAa,GAGlBj/B,KAAMi/B,EAAa,K,oCC1BrB,kDAKc,aAA2C,2BAA3C,EAA2C,yBAA3C,EAA2C,gBACvD,OAAO,cAAW,CAAEp4D,OAAQnd,M,uBCN9B,IAAIoH,EAAW,EAAQ,QAEvBtJ,EAAOC,QAAU,SAAUoD,GACzB,GAAIiG,EAASjG,GACX,MAAMuN,UAAU,iDAChB,OAAOvN,I,kGCGI,qBAAW,CACxBQ,KADwB,qBAGxBe,YAHwB,EAKxBQ,OALwB,SAKlB,EALkB,GAKoB,IAAjC,EAAiC,EAAjC,QAAiC,EAAjC,YAAiC,EAAjC,MAA2BG,EAAM,EAANA,KAC9BoK,EAAIzM,OAAA,SAAoB,CAC5BqL,YAAc,8BAAuBhJ,EAAA,aAAxB,IADe,OAE5BV,MAAO,oCAAF,IAEH8H,MAAM,IAERnH,GAAIgc,IAGAy6D,EAAcxlD,IAApB,QAEA,OAAO9wB,EAAE,EAAD,OAAUs2E,GAAe,CAACt2E,EAAE,EAAD,KAAnC,e,qBCzBJ3F,EAAOC,QAAU,SAAUu9D,EAAQl1D,GACjC,MAAO,CACL0f,aAAuB,EAATw1C,GACdzgD,eAAyB,EAATygD,GAChBv1C,WAAqB,EAATu1C,GACZl1D,MAAOA,K,0SCSI,SAAA+W,EAAA,MAAO,EAAD,YAAN,eAKN,CACPxb,KADO,WAGPgB,MAAO,CACLmI,KADK,QAELC,MAFK,QAGLlG,KAAM,CACJhC,KAAM,CAACmI,OADH,QAEJlI,QAAS,KAIboI,SAAU,CACRyF,QADQ,WAEN,uBACE,iBAAkBpR,KADb,KAEL,kBAAmBA,KAFd,OAGFA,KAAKy6E,iBAGZvjE,OARQ,WASN,uBACEtJ,OAAQ,eAAc5N,KADjB,MAELua,SAAU,eAAcva,KAFnB,MAGL6N,MAAO,eAAc7N,KAHhB,OAIFA,KAAKwa,oBAKd7W,OA9BO,SA8BD,GACJ,IAAMG,EAAO,CACXgJ,YADW,WAEXC,MAAO/M,KAFI,QAGX2N,MAAO3N,KAHI,OAIX+D,GAAI/D,KAAKiX,YAGX,OAAO/S,EAAE,MAAOlE,KAAK0e,mBAAmB1e,KAAxB,MAAR,GAAmDA,KAAKoM,OAAhE,YCtDJ,ICIe,WAAe,CAC5BhK,KAD4B,qBAG5BgB,MAAO,CACLs3E,WADK,QAELp1E,KAAM,CACJhC,KAAM,CAACmI,OADH,QAEJlI,QAAS,KAIboI,SAAU,CACRyF,QADQ,WAEN,sCACE,kCAAmCpR,KAD9B,YAEF,gCAFE,OAAP,IAGE,iBAAkBA,KAAKm1E,MAAQn1E,KAAK06E,eAK1C/2E,OArB4B,SAqBtB,GACJ,IAAMA,EAAS,2BAAf,GAKA,OAHAA,EAAA,KAAcA,EAAA,MAAd,GACAA,EAAA,yCAEA,K,YCxBSg3E,EAAsB,eAAuB,2BAAnD,QACMC,EAAmB,eAAuB,uBAAhD,OACMC,EAAiB,eAAuB,qBAA9C,OACMC,EAAoB,eAAuB,wBAAjD,OAcHC,EAAA,KACAC,EAAA,KACAC,EAAA,KACAC,EAAA,KAIAC,EAAA,KACAC,EAAA,M,6DCjCJ,IAAIC,EAAS,WACTnjE,EAAO,GACPojE,EAAO,EACPC,EAAO,GACPC,EAAO,GACPC,EAAO,IACPC,EAAc,GACdC,EAAW,IACXC,EAAY,IACZC,EAAgB,eAChBC,EAAkB,yBAClBC,EAAiB,kDACjBC,EAAgB9jE,EAAOojE,EACvBh6D,EAAQhZ,KAAKgZ,MACb26D,EAAqBx9E,OAAOy9E,aAS5BC,EAAa,SAAUlzE,GACzB,IAAIK,EAAS,GACTsoB,EAAU,EACV/yB,EAASoK,EAAOpK,OACpB,MAAO+yB,EAAU/yB,EAAQ,CACvB,IAAIgI,EAAQoC,EAAOod,WAAWuL,KAC9B,GAAI/qB,GAAS,OAAUA,GAAS,OAAU+qB,EAAU/yB,EAAQ,CAE1D,IAAIu9E,EAAQnzE,EAAOod,WAAWuL,KACN,QAAX,MAARwqD,GACH9yE,EAAOlB,OAAe,KAARvB,IAAkB,KAAe,KAARu1E,GAAiB,QAIxD9yE,EAAOlB,KAAKvB,GACZ+qB,UAGFtoB,EAAOlB,KAAKvB,GAGhB,OAAOyC,GAML+yE,EAAe,SAAUC,GAG3B,OAAOA,EAAQ,GAAK,IAAMA,EAAQ,KAOhCC,EAAQ,SAAUC,EAAOC,EAAWC,GACtC,IAAIte,EAAI,EAGR,IAFAoe,EAAQE,EAAYp7D,EAAMk7D,EAAQf,GAAQe,GAAS,EACnDA,GAASl7D,EAAMk7D,EAAQC,GAChBD,EAAQR,EAAgBT,GAAQ,EAAGnd,GAAKlmD,EAC7CskE,EAAQl7D,EAAMk7D,EAAQR,GAExB,OAAO16D,EAAM88C,GAAK4d,EAAgB,GAAKQ,GAASA,EAAQhB,KAQtDmB,EAAS,SAAUt4B,GACrB,IAAI/6C,EAAS,GAGb+6C,EAAQ83B,EAAW93B,GAGnB,IAMI1jD,EAAGi8E,EANHC,EAAcx4B,EAAMxlD,OAGpBqD,EAAIy5E,EACJa,EAAQ,EACRM,EAAOpB,EAIX,IAAK/6E,EAAI,EAAGA,EAAI0jD,EAAMxlD,OAAQ8B,IAC5Bi8E,EAAev4B,EAAM1jD,GACjBi8E,EAAe,KACjBtzE,EAAOlB,KAAK6zE,EAAmBW,IAInC,IAAIG,EAAczzE,EAAOzK,OACrBm+E,EAAiBD,EAGjBA,GACFzzE,EAAOlB,KAAKwzE,GAId,MAAOoB,EAAiBH,EAAa,CAEnC,IAAIhmB,EAAIwkB,EACR,IAAK16E,EAAI,EAAGA,EAAI0jD,EAAMxlD,OAAQ8B,IAC5Bi8E,EAAev4B,EAAM1jD,GACjBi8E,GAAgB16E,GAAK06E,EAAe/lB,IACtCA,EAAI+lB,GAKR,IAAIK,EAAwBD,EAAiB,EAC7C,GAAInmB,EAAI30D,EAAIof,GAAO+5D,EAASmB,GAASS,GACnC,MAAMt1E,WAAWo0E,GAMnB,IAHAS,IAAU3lB,EAAI30D,GAAK+6E,EACnB/6E,EAAI20D,EAECl2D,EAAI,EAAGA,EAAI0jD,EAAMxlD,OAAQ8B,IAAK,CAEjC,GADAi8E,EAAev4B,EAAM1jD,GACjBi8E,EAAe16E,KAAOs6E,EAAQnB,EAChC,MAAM1zE,WAAWo0E,GAEnB,GAAIa,GAAgB16E,EAAG,CAGrB,IADA,IAAIsI,EAAIgyE,EACCpe,EAAIlmD,GAA0BkmD,GAAKlmD,EAAM,CAChD,IAAI6+C,EAAIqH,GAAK0e,EAAOxB,EAAQld,GAAK0e,EAAOvB,EAAOA,EAAOnd,EAAI0e,EAC1D,GAAItyE,EAAIusD,EAAG,MACX,IAAImmB,EAAU1yE,EAAIusD,EACdomB,EAAajlE,EAAO6+C,EACxBztD,EAAOlB,KAAK6zE,EAAmBI,EAAatlB,EAAImmB,EAAUC,KAC1D3yE,EAAI8W,EAAM47D,EAAUC,GAGtB7zE,EAAOlB,KAAK6zE,EAAmBI,EAAa7xE,KAC5CsyE,EAAOP,EAAMC,EAAOS,EAAuBD,GAAkBD,GAC7DP,EAAQ,IACNQ,KAIJR,IACAt6E,EAEJ,OAAOoH,EAAOzI,KAAK,KAGrBtC,EAAOC,QAAU,SAAU6lD,GACzB,IAEI1jD,EAAGm0E,EAFHsI,EAAU,GACVC,EAASh5B,EAAMliC,cAAcxL,QAAQmlE,EAAiB,KAAUhzE,MAAM,KAE1E,IAAKnI,EAAI,EAAGA,EAAI08E,EAAOx+E,OAAQ8B,IAC7Bm0E,EAAQuI,EAAO18E,GACfy8E,EAAQh1E,KAAKyzE,EAAcv9E,KAAKw2E,GAAS,OAAS6H,EAAO7H,GAASA,GAEpE,OAAOsI,EAAQv8E,KAAK,O,gQCjJTy8E,EAAgB,eAAO,EAAD,KAAN,eAGpB,CACPl7E,KADO,kBAGPgB,MAAO,CACLgT,YAAa,CACX9S,KADW,OAEXC,QAAS,kBAEXg6E,UALK,QAMLrkE,IAAK,CACH5V,KAAM,CAACmI,OADJ,QAEHlI,QAAS,MAEXkpC,SAAU3gC,SAGZhI,KAhBO,WAiBL,MAAO,CAIL0a,uBAAkC1f,IAAfkB,KAAK6G,MACpB7G,KADe,MAEfA,KAAKysC,SAAW,QANf,EAOLlf,MAAO,KAIX5hB,SAAU,CACRyF,QADQ,WAEN,uBACE,gBADK,GAEFpR,KAAKmN,eAGZ0xC,cAPQ,WAQN,OAAQ7+C,KAAKw9E,cAAgBx9E,KAAKutB,MAAMzd,QAAQ9P,KAAzC,gBAAP,GAEFw9E,aAVQ,WAWN,IAAIx9E,KAAJ,SAEA,OAAOA,KAAKy9E,cAAZ,IAEFA,cAfQ,WAeK,WACX,OAAOz9E,KAAKutB,MAAM+b,QAAO,cACvB,OAAO,eAAkB,aAAzB,QAGJo0C,eApBQ,WAqBN,aAAI19E,KAAKguE,cAA8B,GAEhC3rE,MAAA,QAAcrC,KAAd,eACHA,KADG,cAEH,CAACA,KAFL,gBAIF29E,aA3BQ,WA2BI,WACV,IAAK39E,KAAL,SACE,OAAQ,SAAA6gB,GAAD,OAAY,kBAAnB,GAGF,IAAMmtD,EAAgBhuE,KAAtB,cACA,OAAIqC,MAAA,QAAJ,GACU,SAAAwe,GAAD,OAAYmtD,EAAA,SAAnB,IAGK,kBAAP,KAIJx8D,MAAO,CACLw8D,cADK,mBAELzgD,MAAO,oBAGT9b,QA1EO,WA2EDzR,KAAKysC,WAAapqC,MAAA,QAAcrC,KAApC,gBACE,eAAY,oEAAZ,OAIJiM,QAAS,CAEPwJ,QAFO,WAGL,MAAO,CACL1I,MAAO/M,KAAKoR,UAGhB+sC,SAPO,SAOC,KACN,OAAO,MAAA77B,EAAA,YAAsBA,EAAA,MAAtB3hB,EAEH2hB,EAFJ,OAIFtC,QAZO,SAYA,GACLhgB,KAAA,oBACEA,KAAKm+C,SAAS77B,EAAMtiB,KAAKutB,MAAMzd,QADjC,MAIF2/C,SAjBO,SAiBC,GAAyB,WACzB1lD,EAAQ/J,KAAKutB,MAAMnlB,KAAKka,GAA9B,EAEAA,EAAA,cAAmB,kBAAM,UAHM,MAO3BtiB,KAAKu9E,YAAcv9E,KAAK09E,eAA5B,QACE19E,KAAA,kBAGFA,KAAA,iBAEF8vD,WA9BO,SA8BG,GACR,IAAI9vD,KAAJ,cAEA,IAAM+J,EAAQ/J,KAAKutB,MAAMzd,QAAzB,GACMjJ,EAAQ7G,KAAKm+C,SAAS77B,EAA5B,GAEAtiB,KAAA,kBAEA,IAAM49E,EAAa59E,KAAK09E,eAAe5tE,QARN,GAWjC,KAAI8tE,EAAJ,IAGA,IAAK59E,KAAL,UACE,OAAOA,KAAK69E,oBAAZ,GAIE79E,KAAKysC,UAAYpqC,MAAA,QAAcrC,KAAnC,eACEA,KAAA,cAAqBA,KAAKguE,cAAc1kC,QAAO,SAAAzoB,GAAC,OAAIA,IAApD,KAEA7gB,KAAA,qBAMGA,KAAKy9E,cAAV,QACEz9E,KAAA,uBAGJ89E,WA9DO,SA8DG,KACR,IAAMj3E,EAAQ7G,KAAKm+C,SAAS77B,EAA5B,GAEAA,EAAA,SAAgBtiB,KAAK29E,aAArB,IAGFI,iBApEO,WAoES,WACd/9E,KAAA,WAAe,WACb,GAAI,cACD,gBADH,OAGE,OAAO,EAAP,kBAMF,gBAAmB,EAAnB,gBAGJ69E,oBAlFO,SAkFY,GACjB79E,KAAA,SACIA,KAAKg+E,eADT,GAEIh+E,KAAKi+E,aAFT,IAIFC,gBAvFO,SAuFQ,GACb,GAAKl+E,KAAKutB,MAAV,QAEA,IAAMA,EAAQvtB,KAAKutB,MAAnB,QAEA,GAAUA,EAAA,UAEV,IAAMjL,EAAOiL,EAAA,MAAW,SAAAjL,GAAI,OAAKA,EAPJ,YAW7B,MAEA,IAAMvY,EAAQ/J,KAAKutB,MAAMzd,QAAzB,GAEA9P,KAAA,oBACEA,KAAKm+C,SAAS77B,EADhB,OAIF07D,eA1GO,SA0GO,GACZ,IAAMG,EAAe97E,MAAA,QAAcrC,KAAd,eACjBA,KADiB,cAArB,GAGMguE,EAAgBmQ,EAAtB,QACMp0E,EAAQikE,EAAA,WAAwB,SAAAjjE,GAAG,OAAIA,IAA7C,KAGE/K,KAAKu9E,WAELxzE,GAFA,GAIAikE,EAAA,SALF,GAUE,MAAAhuE,KAAA,KAEA+J,EAFA,GAIAikE,EAAA,SAA2BhuE,KAN7B,MASA+J,GAAA,EACIikE,EAAA,SADJ,GAEIA,EAAA,KAFJ,GAIAhuE,KAAA,kBAEFi+E,aAxIO,SAwIK,GACV,IAAMG,EAASv3E,IAAU7G,KAAzB,cAEIA,KAAKu9E,WAAT,IAEAv9E,KAAA,cAAqBo+E,OAASt/E,EAA9B,KAIJ6E,OAjOO,SAiOD,GACJ,OAAOO,EAAE,MAAOlE,KAAR,UAAwBA,KAAKoM,OAArC,YAIW,OAAAkxE,EAAA,OAAqB,CAClCl7E,KADkC,eAGlCkT,QAHkC,WAIhC,MAAO,CACL+oE,UAAWr+E,U,oCClQjB,IAAIuC,EAAc,EAAQ,QACtB0D,EAAQ,EAAQ,QAChB8lE,EAAa,EAAQ,QACrBmO,EAA8B,EAAQ,QACtC13E,EAA6B,EAAQ,QACrCjD,EAAW,EAAQ,QACnB++E,EAAgB,EAAQ,QAExBC,EAAe98E,OAAO8gD,OACtBp8C,EAAiB1E,OAAO0E,eAI5B5H,EAAOC,SAAW+/E,GAAgBt4E,GAAM,WAEtC,GAAI1D,GAQiB,IARFg8E,EAAa,CAAEt/E,EAAG,GAAKs/E,EAAap4E,EAAe,GAAI,IAAK,CAC7EogB,YAAY,EACZngB,IAAK,WACHD,EAAenG,KAAM,IAAK,CACxB6G,MAAO,EACP0f,YAAY,OAGd,CAAEtnB,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAIiB,EAAI,GACJo6D,EAAI,GAEJ9hC,EAASnb,SACTmhE,EAAW,uBAGf,OAFAt+E,EAAEs4B,GAAU,EACZgmD,EAAS11E,MAAM,IAAIlC,SAAQ,SAAU63E,GAAOnkB,EAAEmkB,GAAOA,KACf,GAA/BF,EAAa,GAAIr+E,GAAGs4B,IAAgBuzC,EAAWwS,EAAa,GAAIjkB,IAAIz5D,KAAK,KAAO29E,KACpF,SAAgB7+E,EAAQmK,GAC3B,IAAIuwD,EAAI96D,EAASI,GACb22E,EAAkBl3E,UAAUP,OAC5BkL,EAAQ,EACRkG,EAAwBiqE,EAA4B74E,EACpD8O,EAAuB3N,EAA2BnB,EACtD,MAAOi1E,EAAkBvsE,EAAO,CAC9B,IAIIjD,EAJAuD,EAAIi0E,EAAcl/E,UAAU2K,MAC5B8F,EAAOI,EAAwB87D,EAAW1hE,GAAGpJ,OAAOgP,EAAsB5F,IAAM0hE,EAAW1hE,GAC3FxL,EAASgR,EAAKhR,OACd6jC,EAAI,EAER,MAAO7jC,EAAS6jC,EACd57B,EAAM+I,EAAK6yB,KACNngC,IAAe4N,EAAqBpR,KAAKsL,EAAGvD,KAAMuzD,EAAEvzD,GAAOuD,EAAEvD,IAEpE,OAAOuzD,GACPkkB,G,8SC5CEG,EAAc,CAAC,KAAM,KAAM,KAAjC,MAEMC,EAAmB,WACvB,OAAOD,EAAA,QAAmB,cAKxB,OAJAt7E,EAAA,GAAa,CACXE,KAAM,CAACwI,QAASrN,OADL,QAEX8E,SAAS,GAEX,IALF,IADuB,GAUnBq7E,EAAe,WACnB,OAAOF,EAAA,QAAmB,cAKxB,OAJAt7E,EAAM,SAAW,eAAjB,IAAoC,CAClCE,KAAM,CAAC7E,OAD2B,QAElC8E,QAAS,MAEX,IALF,IADmB,GAUfs7E,EAAc,WAClB,OAAOH,EAAA,QAAmB,cAKxB,OAJAt7E,EAAM,QAAU,eAAhB,IAAmC,CACjCE,KAAM,CAAC7E,OAD0B,QAEjC8E,QAAS,MAEX,IALF,IADkB,GAUdu7E,EAAU,CACdC,IAAKt9E,OAAA,KADS,GAEdqD,OAAQrD,OAAA,KAFM,GAGdu9E,MAAOv9E,OAAA,SAGT,SAASw9E,EAAT,OACE,IAAIC,EAAJ,EACA,GAAI,MAAAn0E,IAAJ,IAAmBA,EAAnB,CAGA,KAAU,CACR,IAAMo0E,EAAaxvD,EAAA,UAAnB,IACAuvD,GAAa,IAAJ,OAAT,GAKF,MAAI,QAAA57E,GAAmB,KAAAyH,IAAvB,IAAqCA,GAKrCm0E,GAAa,IAAJ,OAAT,GACOA,EAAP,eAJSA,EAAP,eAOJ,IAAMx8D,EAAQ,IAAd,IAEe,qBAAW,CACxBtgB,KADwB,QAExBe,YAFwB,EAGxBC,MAAO,6DACLg8E,KAAM,CACJ97E,KAAM,CAACwI,QAASrN,OADZ,QAEJ8E,SAAS,IAHN,GAAF,IAMHuB,OAAQ,CACNxB,KAAM,CAAC7E,OADD,QAEN8E,QAAS,OARN,GAAF,IAWHy7E,MAAO,CACL17E,KAAM,CAAC7E,OADF,QAEL8E,QAAS,OAbN,GAAF,IAgBH87E,UAAW,CACT/7E,KADS,OAETC,QAFS,KAGTmvE,UAAY,SAAAjrE,GAAD,MAAc,CAAC,OAAQ,QAAS,MAAO,SAAU,WAAY,WAAWkT,SAASlT,KAE9F7D,IAAK,CACHN,KADG,OAEHC,QAAS,SAGbI,OA7BwB,SA6BlB,EA7BkB,GA6BoB,IAAjC,EAAiC,EAAjC,QAAiC,EAAjC,OAAiC,EAAjC,SAEL27E,GAFsC,EAARljE,OAElC,IACA,IAAK,IAAL,OACEkjE,GAAY7gF,OAAQ2E,EAApB,IAEF,IAAIu1C,EAAYj2B,EAAA,IAAhB,GA4BA,OA1BA,GAAgB,iBAGd,EACA,SAHAi2B,EADc,GAId,EACEmmC,EAAA,YAAsB,SAAAnvD,GACpB,IAAM9oB,EAAoCzD,EAA1C,GACM87E,EAAYD,EAAgB37E,EAAMqsB,EAAxC,GACA,GAAegpB,EAAA,WAInB,IAAM4mC,EAAgB5mC,EAAA,MAAe,SAAAumC,GAAS,OAAIA,EAAA,WAAlD,WAEAvmC,EAAA,SAEEomC,KAAMQ,IAAkBn8E,EAFX,MAAf,+BAGUA,EAAR,MAAuBA,EAHV,MAAf,kCAIaA,EAAX,QAA4BA,EAJf,QAAf,iCAKYA,EAAV,OAA0BA,EALb,OAAf,sCAMiBA,EAAf,WAAmCA,EAAMi8E,WAN3C,IASA38D,EAAA,SAvBc,GA0BTxe,EAAEd,EAAD,IAAY,eAAUU,EAAM,CAAEiJ,MAAO4rC,IAA7C,O,mBC/HJp6C,EAAOC,QAAU,SAA4B4P,EAAWo5B,GACtD,IAAIhuB,EAAuC,oBAAtBpL,EAAU5P,QAC3B4P,EAAU5P,QAAQ+oC,cAClBn5B,EAAUoL,QAQd,IAAK,IAAI7Y,IANwB,oBAAtByN,EAAU5P,UACnBgb,EAAQguB,WAAap5B,EAAU5P,QAAQgb,QAAQguB,YAGjDhuB,EAAQguB,WAAahuB,EAAQguB,YAAc,GAE7BA,EACZhuB,EAAQguB,WAAW7mC,GAAK6Y,EAAQguB,WAAW7mC,IAAM6mC,EAAW7mC,K,qBChBhE,IAAIlB,EAAY,EAAQ,QACpB6H,EAAyB,EAAQ,QAGjC0uE,EAAe,SAAUwJ,GAC3B,OAAO,SAAU7c,EAAO9hB,GACtB,IAGI4+B,EAAOp4B,EAHPh9C,EAAI5L,OAAO6I,EAAuBq7D,IAClC9C,EAAWpgE,EAAUohD,GACrBv7C,EAAO+E,EAAExL,OAEb,OAAIghE,EAAW,GAAKA,GAAYv6D,EAAak6E,EAAoB,QAAK1gF,GACtE2gF,EAAQp1E,EAAEgc,WAAWw5C,GACd4f,EAAQ,OAAUA,EAAQ,OAAU5f,EAAW,IAAMv6D,IACtD+hD,EAASh9C,EAAEgc,WAAWw5C,EAAW,IAAM,OAAUxY,EAAS,MAC1Dm4B,EAAoBn1E,EAAE4Y,OAAO48C,GAAY4f,EACzCD,EAAoBn1E,EAAEjK,MAAMy/D,EAAUA,EAAW,GAA+BxY,EAAS,OAAlCo4B,EAAQ,OAAU,IAA0B,SAI7GlhF,EAAOC,QAAU,CAGfikD,OAAQuzB,GAAa,GAGrB/yD,OAAQ+yD,GAAa,K,kCCxBvB,IAAI7vE,EAAiB,EAAQ,QAAuC9E,EAChE6gB,EAAS,EAAQ,QACjBw9D,EAAc,EAAQ,QACtB5+E,EAAO,EAAQ,QACfwhD,EAAa,EAAQ,QACrB5pC,EAAU,EAAQ,QAClBy2D,EAAiB,EAAQ,QACzBwQ,EAAa,EAAQ,QACrBp9E,EAAc,EAAQ,QACtBq9E,EAAU,EAAQ,QAAkCA,QACpD/8B,EAAsB,EAAQ,QAE9BI,EAAmBJ,EAAoBp6B,IACvCo3D,EAAyBh9B,EAAoBM,UAEjD5kD,EAAOC,QAAU,CACfshF,eAAgB,SAAUC,EAAS1kE,EAAkB2kE,EAAQC,GAC3D,IAAI1/E,EAAIw/E,GAAQ,SAAUnhF,EAAM+Z,GAC9B2pC,EAAW1jD,EAAM2B,EAAG8a,GACpB4nC,EAAiBrkD,EAAM,CACrB0E,KAAM+X,EACNtR,MAAOmY,EAAO,MACdu9D,WAAO3gF,EACPw1B,UAAMx1B,EACNwG,KAAM,IAEH/C,IAAa3D,EAAK0G,KAAO,QACdxG,GAAZ6Z,GAAuBD,EAAQC,EAAU/Z,EAAKqhF,GAAQrhF,EAAMohF,MAG9D3Q,EAAmBwQ,EAAuBxkE,GAE1C6kE,EAAS,SAAUthF,EAAMkI,EAAKD,GAChC,IAEIs5E,EAAUp2E,EAFVu/C,EAAQ+lB,EAAiBzwE,GACzBo0D,EAAQotB,EAASxhF,EAAMkI,GAqBzB,OAlBEksD,EACFA,EAAMnsD,MAAQA,GAGdyiD,EAAMh1B,KAAO0+B,EAAQ,CACnBjpD,MAAOA,EAAQ61E,EAAQ94E,GAAK,GAC5BA,IAAKA,EACLD,MAAOA,EACPs5E,SAAUA,EAAW72B,EAAMh1B,KAC3Bve,UAAMjX,EACN6hD,SAAS,GAEN2I,EAAMm2B,QAAOn2B,EAAMm2B,MAAQzsB,GAC5BmtB,IAAUA,EAASpqE,KAAOi9C,GAC1BzwD,EAAa+mD,EAAMhkD,OAClB1G,EAAK0G,OAEI,MAAVyE,IAAeu/C,EAAMv/C,MAAMA,GAASipD,IACjCp0D,GAGPwhF,EAAW,SAAUxhF,EAAMkI,GAC7B,IAGIksD,EAHA1J,EAAQ+lB,EAAiBzwE,GAEzBmL,EAAQ61E,EAAQ94E,GAEpB,GAAc,MAAViD,EAAe,OAAOu/C,EAAMv/C,MAAMA,GAEtC,IAAKipD,EAAQ1J,EAAMm2B,MAAOzsB,EAAOA,EAAQA,EAAMj9C,KAC7C,GAAIi9C,EAAMlsD,KAAOA,EAAK,OAAOksD,GAiFjC,OA7EA0sB,EAAYn/E,EAAEW,UAAW,CAGvBwnB,MAAO,WACL,IAAI9pB,EAAOoB,KACPspD,EAAQ+lB,EAAiBzwE,GACzBkF,EAAOwlD,EAAMv/C,MACbipD,EAAQ1J,EAAMm2B,MAClB,MAAOzsB,EACLA,EAAMrS,SAAU,EACZqS,EAAMmtB,WAAUntB,EAAMmtB,SAAWntB,EAAMmtB,SAASpqE,UAAOjX,UACpDgF,EAAKkvD,EAAMjpD,OAClBipD,EAAQA,EAAMj9C,KAEhBuzC,EAAMm2B,MAAQn2B,EAAMh1B,UAAOx1B,EACvByD,EAAa+mD,EAAMhkD,KAAO,EACzB1G,EAAK0G,KAAO,GAInB,OAAU,SAAUwB,GAClB,IAAIlI,EAAOoB,KACPspD,EAAQ+lB,EAAiBzwE,GACzBo0D,EAAQotB,EAASxhF,EAAMkI,GAC3B,GAAIksD,EAAO,CACT,IAAIj9C,EAAOi9C,EAAMj9C,KACb84D,EAAO7b,EAAMmtB,gBACV72B,EAAMv/C,MAAMipD,EAAMjpD,OACzBipD,EAAMrS,SAAU,EACZkuB,IAAMA,EAAK94D,KAAOA,GAClBA,IAAMA,EAAKoqE,SAAWtR,GACtBvlB,EAAMm2B,OAASzsB,IAAO1J,EAAMm2B,MAAQ1pE,GACpCuzC,EAAMh1B,MAAQ0+B,IAAO1J,EAAMh1B,KAAOu6C,GAClCtsE,EAAa+mD,EAAMhkD,OAClB1G,EAAK0G,OACV,QAAS0tD,GAIbpsD,QAAS,SAAiBmI,GACxB,IAEIikD,EAFA1J,EAAQ+lB,EAAiBrvE,MACzBgB,EAAgBF,EAAKiO,EAAY3P,UAAUP,OAAS,EAAIO,UAAU,QAAKN,EAAW,GAEtF,MAAOk0D,EAAQA,EAAQA,EAAMj9C,KAAOuzC,EAAMm2B,MAAO,CAC/Cz+E,EAAcgyD,EAAMnsD,MAAOmsD,EAAMlsD,IAAK9G,MAEtC,MAAOgzD,GAASA,EAAMrS,QAASqS,EAAQA,EAAMmtB,WAKjDx9E,IAAK,SAAamE,GAChB,QAASs5E,EAASpgF,KAAM8G,MAI5B44E,EAAYn/E,EAAEW,UAAW8+E,EAAS,CAEhC55E,IAAK,SAAaU,GAChB,IAAIksD,EAAQotB,EAASpgF,KAAM8G,GAC3B,OAAOksD,GAASA,EAAMnsD,OAGxB4hB,IAAK,SAAa3hB,EAAKD,GACrB,OAAOq5E,EAAOlgF,KAAc,IAAR8G,EAAY,EAAIA,EAAKD,KAEzC,CAEF0V,IAAK,SAAa1V,GAChB,OAAOq5E,EAAOlgF,KAAM6G,EAAkB,IAAVA,EAAc,EAAIA,EAAOA,MAGrDtE,GAAa4D,EAAe5F,EAAEW,UAAW,OAAQ,CACnDkF,IAAK,WACH,OAAOipE,EAAiBrvE,MAAMsF,QAG3B/E,GAET8/E,UAAW,SAAU9/E,EAAG8a,EAAkB2kE,GACxC,IAAIM,EAAgBjlE,EAAmB,YACnCklE,EAA6BV,EAAuBxkE,GACpDmlE,EAA2BX,EAAuBS,GAGtDnR,EAAe5uE,EAAG8a,GAAkB,SAAUmoD,EAAUvL,GACtDhV,EAAiBjjD,KAAM,CACrBsD,KAAMg9E,EACN3gF,OAAQ6jE,EACRla,MAAOi3B,EAA2B/c,GAClCvL,KAAMA,EACN3jC,UAAMx1B,OAEP,WACD,IAAIwqD,EAAQk3B,EAAyBxgF,MACjCi4D,EAAO3O,EAAM2O,KACbjF,EAAQ1J,EAAMh1B,KAElB,MAAO0+B,GAASA,EAAMrS,QAASqS,EAAQA,EAAMmtB,SAE7C,OAAK72B,EAAM3pD,SAAY2pD,EAAMh1B,KAAO0+B,EAAQA,EAAQA,EAAMj9C,KAAOuzC,EAAMA,MAAMm2B,OAMjE,QAARxnB,EAAuB,CAAEpxD,MAAOmsD,EAAMlsD,IAAKqD,MAAM,GACzC,UAAR8tD,EAAyB,CAAEpxD,MAAOmsD,EAAMnsD,MAAOsD,MAAM,GAClD,CAAEtD,MAAO,CAACmsD,EAAMlsD,IAAKksD,EAAMnsD,OAAQsD,MAAM,IAN9Cm/C,EAAM3pD,YAASb,EACR,CAAE+H,WAAO/H,EAAWqL,MAAM,MAMlC61E,EAAS,UAAY,UAAWA,GAAQ,GAG3CL,EAAWtkE,M,uBCvLf,IAAIlb,EAAW,EAAQ,QACnB+c,EAAU,EAAQ,QAClB9e,EAAkB,EAAQ,QAE1BsZ,EAAUtZ,EAAgB,WAI9BG,EAAOC,QAAU,SAAUiiF,EAAe5hF,GACxC,IAAI0B,EASF,OARE2c,EAAQujE,KACVlgF,EAAIkgF,EAAct+E,YAEF,mBAAL5B,GAAoBA,IAAM8B,QAAS6a,EAAQ3c,EAAEW,WAC/Cf,EAASI,KAChBA,EAAIA,EAAEmX,GACI,OAANnX,IAAYA,OAAIzB,IAH+CyB,OAAIzB,GAKlE,SAAWA,IAANyB,EAAkB8B,MAAQ9B,GAAc,IAAX1B,EAAe,EAAIA,K,gDClBhE,IASI4pB,EAAKriB,EAAKzD,EATV+9E,EAAkB,EAAQ,QAC1BtxE,EAAS,EAAQ,QACjBjP,EAAW,EAAQ,QACnBmP,EAA8B,EAAQ,QACtCqxE,EAAY,EAAQ,QACpBC,EAAY,EAAQ,QACpBxmE,EAAa,EAAQ,QAErBymE,EAAUzxE,EAAOyxE,QAGjBC,EAAU,SAAUl/E,GACtB,OAAOe,EAAIf,GAAMwE,EAAIxE,GAAM6mB,EAAI7mB,EAAI,KAGjCuhD,EAAY,SAAUo3B,GACxB,OAAO,SAAU34E,GACf,IAAI0nD,EACJ,IAAKnpD,EAASyB,KAAQ0nD,EAAQljD,EAAIxE,IAAK0B,OAASi3E,EAC9C,MAAMprE,UAAU,0BAA4BorE,EAAO,aACnD,OAAOjxB,IAIb,GAAIo3B,EAAiB,CACnB,IAAIrzB,EAAQ,IAAIwzB,EACZE,EAAQ1zB,EAAMjnD,IACd46E,EAAQ3zB,EAAM1qD,IACds+E,EAAQ5zB,EAAM5kC,IAClBA,EAAM,SAAU7mB,EAAIs/E,GAElB,OADAD,EAAMliF,KAAKsuD,EAAOzrD,EAAIs/E,GACfA,GAET96E,EAAM,SAAUxE,GACd,OAAOm/E,EAAMhiF,KAAKsuD,EAAOzrD,IAAO,IAElCe,EAAM,SAAUf,GACd,OAAOo/E,EAAMjiF,KAAKsuD,EAAOzrD,QAEtB,CACL,IAAIu/E,EAAQP,EAAU,SACtBxmE,EAAW+mE,IAAS,EACpB14D,EAAM,SAAU7mB,EAAIs/E,GAElB,OADA5xE,EAA4B1N,EAAIu/E,EAAOD,GAChCA,GAET96E,EAAM,SAAUxE,GACd,OAAO++E,EAAU/+E,EAAIu/E,GAASv/E,EAAGu/E,GAAS,IAE5Cx+E,EAAM,SAAUf,GACd,OAAO++E,EAAU/+E,EAAIu/E,IAIzB5iF,EAAOC,QAAU,CACfiqB,IAAKA,EACLriB,IAAKA,EACLzD,IAAKA,EACLm+E,QAASA,EACT39B,UAAWA,I,oCC3DE,SAASshB,EAAkBxnD,EAAKwO,IAClC,MAAPA,GAAeA,EAAMxO,EAAIpe,UAAQ4sB,EAAMxO,EAAIpe,QAE/C,IAAK,IAAI8B,EAAI,EAAG+jE,EAAO,IAAIriE,MAAMopB,GAAM9qB,EAAI8qB,EAAK9qB,IAC9C+jE,EAAK/jE,GAAKsc,EAAItc,GAGhB,OAAO+jE,EAPT,mC,oCCCA,IAAIrlE,EAAI,EAAQ,QACZ+P,EAAS,EAAQ,QACjBmK,EAAW,EAAQ,QACnBH,EAAW,EAAQ,QACnBgoE,EAAyB,EAAQ,QACjC1oE,EAAU,EAAQ,QAClB4pC,EAAa,EAAQ,QACrBniD,EAAW,EAAQ,QACnB8F,EAAQ,EAAQ,QAChBo7E,EAA8B,EAAQ,QACtC1+B,EAAiB,EAAQ,QACzB2+B,EAAoB,EAAQ,QAEhC/iF,EAAOC,QAAU,SAAU6c,EAAkB0kE,EAASwB,GACpD,IAAIvB,GAA8C,IAArC3kE,EAAiBvL,QAAQ,OAClC0xE,GAAgD,IAAtCnmE,EAAiBvL,QAAQ,QACnCmwE,EAAQD,EAAS,MAAQ,MACzByB,EAAoBryE,EAAOiM,GAC3BqmE,EAAkBD,GAAqBA,EAAkBvgF,UACzDmU,EAAcosE,EACdE,EAAW,GAEXC,EAAY,SAAUroB,GACxB,IAAIM,EAAe6nB,EAAgBnoB,GACnCngD,EAASsoE,EAAiBnoB,EACjB,OAAPA,EAAe,SAAa1yD,GAE1B,OADAgzD,EAAa96D,KAAKiB,KAAgB,IAAV6G,EAAc,EAAIA,GACnC7G,MACE,UAAPu5D,EAAkB,SAAUzyD,GAC9B,QAAO06E,IAAYrhF,EAAS2G,KAAe+yD,EAAa96D,KAAKiB,KAAc,IAAR8G,EAAY,EAAIA,IAC1E,OAAPyyD,EAAe,SAAazyD,GAC9B,OAAO06E,IAAYrhF,EAAS2G,QAAOhI,EAAY+6D,EAAa96D,KAAKiB,KAAc,IAAR8G,EAAY,EAAIA,IAC9E,OAAPyyD,EAAe,SAAazyD,GAC9B,QAAO06E,IAAYrhF,EAAS2G,KAAe+yD,EAAa96D,KAAKiB,KAAc,IAAR8G,EAAY,EAAIA,IACjF,SAAaA,EAAKD,GAEpB,OADAgzD,EAAa96D,KAAKiB,KAAc,IAAR8G,EAAY,EAAIA,EAAKD,GACtC7G,QAMb,GAAIuZ,EAAS8B,EAA8C,mBAArBomE,KAAqCD,GAAWE,EAAgB96E,UAAYX,GAAM,YACtH,IAAIw7E,GAAoBhpB,UAAU1iD,YAGlCV,EAAcksE,EAAOzB,eAAeC,EAAS1kE,EAAkB2kE,EAAQC,GACvEmB,EAAuBS,UAAW,OAC7B,GAAItoE,EAAS8B,GAAkB,GAAO,CAC3C,IAAI24D,EAAW,IAAI3+D,EAEfysE,EAAiB9N,EAASiM,GAAOuB,EAAU,IAAM,EAAG,IAAMxN,EAE1D+N,EAAuB97E,GAAM,WAAc+tE,EAASrxE,IAAI,MAGxDq/E,EAAmBX,GAA4B,SAAU1oE,GAAY,IAAI8oE,EAAkB9oE,MAE3FspE,GAAcT,GAAWv7E,GAAM,WAEjC,IAAIi8E,EAAY,IAAIT,EAChB13E,EAAQ,EACZ,MAAOA,IAASm4E,EAAUjC,GAAOl2E,EAAOA,GACxC,OAAQm4E,EAAUv/E,KAAK,MAGpBq/E,IACH3sE,EAAc0qE,GAAQ,SAAUoC,EAAOxpE,GACrC2pC,EAAW6/B,EAAO9sE,EAAagG,GAC/B,IAAIzc,EAAO0iF,EAAkB,IAAIG,EAAqBU,EAAO9sE,GAE7D,YADgBvW,GAAZ6Z,GAAuBD,EAAQC,EAAU/Z,EAAKqhF,GAAQrhF,EAAMohF,GACzDphF,KAETyW,EAAYnU,UAAYwgF,EACxBA,EAAgBv/E,YAAckT,IAG5B0sE,GAAwBE,KAC1BL,EAAU,UACVA,EAAU,OACV5B,GAAU4B,EAAU,SAGlBK,GAAcH,IAAgBF,EAAU3B,GAGxCuB,GAAWE,EAAgBh5D,cAAcg5D,EAAgBh5D,MAU/D,OAPAi5D,EAAStmE,GAAoBhG,EAC7BhW,EAAE,CAAE+P,QAAQ,EAAMP,OAAQwG,GAAeosE,GAAqBE,GAE9Dh/B,EAAettC,EAAagG,GAEvBmmE,GAASD,EAAOlB,UAAUhrE,EAAagG,EAAkB2kE,GAEvD3qE,I,gDCjGT,IAAIjG,EAAS,EAAQ,QACjBE,EAA8B,EAAQ,QACtC3M,EAAM,EAAQ,QACd0W,EAAY,EAAQ,QACpBshD,EAAgB,EAAQ,QACxB9X,EAAsB,EAAQ,QAE9BwsB,EAAmBxsB,EAAoBz8C,IACvCg8E,EAAuBv/B,EAAoBi+B,QAC3CuB,EAAW5jF,OAAOA,QAAQqK,MAAM,WAEnCvK,EAAOC,QAAU,SAAUuB,EAAG+G,EAAKD,EAAO2S,GACzC,IAAI2B,IAAS3B,KAAYA,EAAQ2B,OAC7BmnE,IAAS9oE,KAAYA,EAAQ+M,WAC7BvM,IAAcR,KAAYA,EAAQQ,YAClB,mBAATnT,IACS,iBAAPC,GAAoBnE,EAAIkE,EAAO,SAASyI,EAA4BzI,EAAO,OAAQC,GAC9Fs7E,EAAqBv7E,GAAOiD,OAASu4E,EAASxhF,KAAmB,iBAAPiG,EAAkBA,EAAM,KAEhF/G,IAAMqP,GAIE+L,GAEAnB,GAAeja,EAAE+G,KAC3Bw7E,GAAS,UAFFviF,EAAE+G,GAIPw7E,EAAQviF,EAAE+G,GAAOD,EAChByI,EAA4BvP,EAAG+G,EAAKD,IATnCy7E,EAAQviF,EAAE+G,GAAOD,EAChBwS,EAAUvS,EAAKD,KAUrBjG,SAASM,UAAW,YAAY,WACjC,MAAsB,mBAARlB,MAAsBqvE,EAAiBrvE,MAAM8J,QAAU6wD,EAAc36D,U,uBChCrF,IAAIuC,EAAc,EAAQ,QACtBwpE,EAAa,EAAQ,QACrB5qE,EAAkB,EAAQ,QAC1BgP,EAAuB,EAAQ,QAA8C9O,EAG7E20E,EAAe,SAAUuM,GAC3B,OAAO,SAAU3gF,GACf,IAKIkF,EALA/G,EAAIoB,EAAgBS,GACpBiO,EAAOk8D,EAAWhsE,GAClBlB,EAASgR,EAAKhR,OACd8B,EAAI,EACJ+F,EAAS,GAEb,MAAO7H,EAAS8B,EACdmG,EAAM+I,EAAKlP,KACN4B,IAAe4N,EAAqBpR,KAAKgB,EAAG+G,IAC/CJ,EAAO0B,KAAKm6E,EAAa,CAACz7E,EAAK/G,EAAE+G,IAAQ/G,EAAE+G,IAG/C,OAAOJ,IAIXnI,EAAOC,QAAU,CAGfi6D,QAASud,GAAa,GAGtBjwE,OAAQiwE,GAAa,K,qBC9BvB,IAAI71E,EAAW,EAAQ,QACnBqiF,EAAiB,EAAQ,QAG7BjkF,EAAOC,QAAU,SAAUmkE,EAAOwf,EAAOM,GACvC,IAAIC,EAAWC,EAUf,OAPEH,GAE0C,mBAAlCE,EAAYP,EAAMhgF,cAC1BugF,IAAcD,GACdtiF,EAASwiF,EAAqBD,EAAUxhF,YACxCyhF,IAAuBF,EAAQvhF,WAC/BshF,EAAe7f,EAAOggB,GACjBhgB,I,oKCEM,qBAAc,CAC3BvgE,KAD2B,YAG3BgB,MAAO,CACLmd,SADK,QAELN,OAFK,QAGL+wD,SAHK,QAIL3lE,MAJK,QAKLu3E,SALK,QAMLC,gBAAiB,CACft/E,QADe,GAEfD,KAAM,CAACmI,OAAQhN,SAEjBoB,KAVK,QAWLijF,SAXK,QAYLC,UAZK,QAaLC,MAbK,QAcLz2D,IAAK,CACHjpB,KAAM,CAAC7E,OADJ,QAEH8E,QAAS,IAEXK,IAAK,CACHN,KADG,OAEHC,QAAS,WAIbO,KAAM,iBAAO,CACXm/E,YAAY,IAGdt3E,SAAU,CACRumE,eADQ,WAEN,IAAMtkE,EAAS5N,KAAf,sBAEA,IAAKA,KAAL,WAAsB,OAAO4N,EAE7B,IAAMi1E,EAAkBnuE,SAAS1U,KAAjC,iBAEA,OAAOA,KAAK8xE,YAAL,EAEHlkE,GAAWkU,MAAD,GAFd,EAEc,IAEhBmvD,sBAZQ,WAaN,OAAIjxE,KAAJ,OAAwB0U,SAAS1U,KAAhB,QACbA,KAAK+xE,aAAe/xE,KAAxB,MAA2C,GACvCA,KAAK+xE,aAAe/xE,KAAxB,MAA2C,IACvCA,KAAJ,YAA6B,IACzBA,KAAJ,MAAuB,GACnBA,KAAKgjF,OAAShjF,KAAKwf,SAAS2/D,WAAhC,UAA6D,GAC7D,IAEF/tE,QArBQ,WAsBN,wCACK,qCADE,OAAP,IAEE,aAFK,EAGL,sBAAuBpR,KAHlB,SAIL,oBAAqBA,KAJhB,OAKL,sBAAuBA,KALlB,SAML,uBAAwBA,KANnB,YAOL,mBAAoBA,KAPf,MAQL,sBAAuBA,KARlB,WASL,kBAAmBA,KATd,KAUL,sBAAuBA,KAVlB,SAWL,uBAAwBA,KAAK+xE,eAGjCD,YApCQ,WAqCN,OAAO9xE,KAAP,UAEF+xE,YAvCQ,WAwCN,OAAO/xE,KAAP,WAEFkX,OA1CQ,WA2CN,wCACKlX,KADE,kBAAP,IAEE4N,OAAQ,eAAc5N,KAAD,oBAK3ByR,QAjF2B,WAiFpB,WACCyxE,EAAgB,CACpB,CAAC,MADmB,mBAEpB,CAAC,gBAFmB,8BAGpB,CAAC,eAHmB,4BAIpB,CAAC,gBAJmB,6BAKpB,CAAC,kBALmB,+BAMpB,CAAC,oBANmB,iCAOpB,CAAC,gBAPmB,6BAQpB,CAAC,mBARmB,gCASpB,CAAC,OATH,qBAaAA,EAAA,SAAsB,YAA4B,0BAA3B,EAA2B,KAA5B,EAA4B,KAC5C,wBAAJ,IAA0C,eAAS13D,EAAUy0C,EAAnB,OAI9Ch0D,QAAS,CACPgmE,cADO,WAEL,IAAM7uE,EAAQ,CACZwK,OAAQ,eAAc5N,KADV,gBAEZusB,IAAKvsB,KAAKusB,KAGN42D,EAAQnjF,KAAKuR,aAAa6xE,IAC5BpjF,KAAKuR,aAAa6xE,IAAI,CAAEhgF,UACxBpD,KAAK2T,eAAe,EAApB,KAA0B,CAAEvQ,UAEhC,OAAOpD,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,oBACZ,CAFH,KAIFqG,WAfO,WAgBL,OAAOnT,KAAK2T,eAAe,MAAO,CAChC7G,YADgC,qBAEhCa,MAAO,CACLC,OAAQ,eAAc5N,KAAD,yBAEtB,eALH,QAOFqjF,aAvBO,WAwBL,OAAOrjF,KAAK2T,eAAe,MAAO,CAChC7G,YADgC,uBAEhCa,MAAO,CACLC,OAAQ,eAAc5N,KAAD,mBAEtB,eAAQA,KALX,gBASJ2D,OArI2B,SAqIrB,GACJ3D,KAAA,WAAkBA,KAAK4iF,YAAc5iF,KAAKuR,aAA1C,UAEA,IAAMjD,EAAW,CAACtO,KAAlB,cACM8D,EAAO9D,KAAK0e,mBAAmB1e,KAAxB,MAAoC,CAC/C+M,MAAO/M,KADwC,QAE/C2N,MAAO3N,KAFwC,OAG/C+D,GAAI/D,KAAKiX,aAMX,OAHIjX,KAAJ,YAAqBsO,EAAA,KAActO,KAAd,iBACjBA,KAAKusB,KAAOvsB,KAAKuR,aAArB,MAAuCjD,EAAA,QAAiBtO,KAAjB,iBAEhCkE,EAAElE,KAAD,MAAR,O,mBCnKJxB,EAAQ6C,EAAII,OAAOwO,uB,8CCAnB,IAAIoH,EAAO,EAAQ,QACf1U,EAAM,EAAQ,QACd2gF,EAA+B,EAAQ,QACvCn9E,EAAiB,EAAQ,QAAuC9E,EAEpE9C,EAAOC,QAAU,SAAUo5D,GACzB,IAAIv6C,EAAShG,EAAKgG,SAAWhG,EAAKgG,OAAS,IACtC1a,EAAI0a,EAAQu6C,IAAOzxD,EAAekX,EAAQu6C,EAAM,CACnD/wD,MAAOy8E,EAA6BjiF,EAAEu2D,O,sFCE3B,qCAEN,CACPx1D,KADO,QAGPgB,MAAO,CACLmN,KAAM,CACJjN,KADI,QAEJC,aAASzE,GAEXgqB,GAAI,CACFxlB,KADE,OAEFC,QAAS,OAEXkN,MAAO,CACLnN,KADK,QAELC,aAASzE,IAIb6M,SAAU,CACRyhE,OADQ,WAEN,OAAOptE,KAAKwf,SAAS+jE,MAArB,OAIJxmE,aAxBO,WAyBL,IAAK/c,KAAD,UAAmBA,KAAKwf,WAAaxf,KAAzC,MACE,MAAM,IAAIikE,MAAV,gIAIJtgE,OA9BO,SA8BD,GACJ,IAAMo8E,EAAU77E,EAAE,MAAO,CAAE4I,YAAa,uBAAyB9M,KAAKoM,OAAtE,SAEA,OAAOlI,EAAE,MAAO,CACd4I,YADc,gBAEdC,MAAO,gBACL,wBAAyB/M,KAAKwf,SADzB,IAEL,yBAA0Bxf,KAAKwf,SAF1B,KAGFxf,KAAKmN,cAEVH,MAAO,CAAE,YAAY,GACrBoqB,SAAU,CAAEtO,GAAI9oB,KAAK8oB,KACpB,CATH,Q,gGCnCE,cACJ,IAAMgF,EAAK,iCACNjqB,EADM,OAENA,EAAQo2B,YAEPmzC,EAASoW,EAAA,6BAAf,GACA,OAAOA,EAAA,mCAA6C,CAAEpW,WAIxD,IAAMoW,EAAY,uBAA+B,CAC/CphF,KAD+C,YAG/CkT,QAH+C,WAI7C,MAAO,CACLiuE,MAAOvjF,KAAKyjF,mBAIhBn1D,OAAQ,CACNi1D,MAAO,CACLhgF,QAAS,CACP6pE,QAAQ,KAKdhqE,MAAO,CACLmN,KAAM,CACJjN,KADI,QAEJC,QAAS,MAEXkN,MAAO,CACLnN,KADK,QAELC,QAAS,OAIbO,KA5B+C,WA6B7C,MAAO,CACL2/E,iBAAkB,CAChBrW,QAAQ,KAKdzhE,SAAU,CACR+3E,UADQ,WAEN,OAAO1jF,KAAKwf,SAAS+jE,MAAMhzE,OAA3B,GAEF68D,OAJQ,WAKN,WAAIptE,KAAKuQ,OAGF,IAAIvQ,KAAKyQ,OAKPzQ,KAAKujF,MAAZ,QAGJp2E,aAhBQ,WAiBN,MAAO,CACL,cAAenN,KADV,OAEL,gBAAiBA,KAAKotE,SAI1BuW,WAvBQ,WAwBN,WAAI3jF,KAAKuQ,OAGF,IAAIvQ,KAAKyQ,OAKPzQ,KAAP,WAGJ4jF,iBAnCQ,WAoCN,MAAO,CACL,cAAe5jF,KADV,WAEL,gBAAiBA,KAAK2jF,cAK5BnyE,MAAO,CACL47D,OAAQ,CACNt5D,QADM,SACC,KACDuZ,IAAJ,IACErtB,KAAA,wBAA+BA,KAA/B,SAGJymC,WAAW,MAKjB,U,oIC5FA,SAASo9C,EAAT,GACE,IAAMvgF,EAAO,eAAb,GAEA,MAAI,YAAAA,GAAJ,WAA0BA,GAEnByH,EAAA,WAAiB+4E,KAAxB,aAIa,qCAII,CACjB1hF,KADiB,aAGjBgB,MAAO,CACL6Q,OAAQ,CACN1Q,SADM,EAENmvE,UAAWmR,GAEbE,aAAc,CACZzgF,KADY,OAEZC,QAAS,KAIbO,KAAM,iBAAO,CACXivE,cADW,KAEXiR,aAAa,IAGfxyE,MAAO,CACLyC,OADK,WAEHjU,KAAA,eACAA,KAAA,cAEFikF,WALK,WAMHjkF,KAAA,UAAeA,KAAf,cAIJ4R,YA7BiB,WA6BN,WACT5R,KAAA,WAAe,WACb,GAAI,EAAJ,cAAwB,CACtB,IAAM8S,EAAYzQ,MAAA,QAAc,EAAd,eAAoC,EAApC,cAAyD,CAAC,EAA5E,eAEAyQ,EAAA,SAAkB,SAAAiY,GAChB,GAAKA,EAAL,KACK,MAAL,YAEA,IAAMprB,EAAS,QAAa,iBAAb,WACX,EADW,IAEX,MAFJ,YAIA,8BAAiCorB,EAAjC,gBAMR+e,QAhDiB,WAiDf9pC,KAAA,YAAmBA,KAAnB,cAGFgvE,YApDiB,WAqDfhvE,KAAA,aAGF6R,cAxDiB,WA0Df,IAQE,GANE7R,KAAKkS,MAAMC,SACXnS,KAAKkS,MAAMC,QAFb,YAIEnS,KAAA,qCAA0CA,KAAKkS,MAA/C,SAGElS,KAAJ,cAAwB,CACtB,IAAM8S,EAAYzQ,MAAA,QAAcrC,KAAd,eAAoCA,KAApC,cAAyD,CAACA,KAA5E,eACA8S,EAAA,SAAkB,SAAAiY,GAChBA,EAAA,KACEA,EAAA,IADF,YAEEA,EAAA,2BAAgCA,EAFlC,SAKJ,MAAOtgB,GAAKwmB,QAAA,SAGhBhlB,QAAS,CACPi4E,gBADO,WAEL,IAAMtoE,EAAU,eAAqB5b,KAAD,OAApC,6BAEA,OAAO4b,GAAW,kBAChB,EAAW,KAGfuoE,WARO,WAmBL,MAVInkF,KAAKiS,eACNjS,KAAKkS,MADJ,SAEFlS,KAFE,kBAKFA,KAAA,SALE,IAMFA,KAAA,QANF,WAOEA,KAAA,SAMAL,GAFF,IAAIK,KAAKiU,OAEExB,SAAA,cAAT,cACK,kBAAWzS,KAAP,OAEAyS,SAAA,cAAuBzS,KAAhC,QAGSA,KAAT,OAGF,GAKAL,EAAA,YAAmBK,KAAKkS,MAAxB,SAEAlS,KAAA,gBANE,eAAY,2BAAD,OAA4BA,KAAKiU,QAAjC,cAAX,Y,mBC5IR1V,EAAOC,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,Y,8CCRF,IAAI8I,EAAyB,EAAQ,QAIrC/I,EAAOC,QAAU,SAAUy4E,GACzB,OAAOx1E,OAAO6F,EAAuB2vE,M,0XCgBjC,cACJ,QAAO,KAAah5D,EAAA,MAApB,8BAGI,cACJ,MAEA,qBAAWA,EACTmmE,EAAA,MACK,sBAAWnmE,EAUhB,MAAM,IAAI9O,UAAU,mDAAd,OAAiE,MAAA8O,IAAwBA,EAAA,YAA/F,KAAM,aATN,IAAI/e,EAAI,MAAA+e,EAAA,GAAmBA,EAAA,UAAnB,GAAR,EACA,IAAI/e,EAAA,SACFA,EAAIA,EAAA,eAAgB,SAAAwmD,GAAI,OAAIA,EAAxB,UAAJ,KAEF,IAAIxmD,EAAA,QACF,eAAY,IAAD,OAAX,EAAW,+BAEbklF,EAAM1vE,SAASxV,EAAf,IAaF,OARIklF,EAAJ,GACE,eAAY,+BAAD,OAAX,EAAW,MACXA,EAAA,IACSA,EAAA,UAAkBtiE,MAAtB,MACL,eAAY,IAAD,OAAX,EAAW,+BACXsiE,EAAA,UAGF,EAyBI,cACJ,IAAIC,EAAmBpmE,EAAA,SAAvB,IAIA,OAFIomE,EAAA,OAAJ,IAAyBA,EAAW,IAAI98E,OAAO,EAAI88E,EAAf,QAAXA,GAElB,IAAP,EAGI,cACJ,OAAOC,EAASC,EAAhB,M,uBCrFF,IAmDIC,EAnDA18E,EAAW,EAAQ,QACnB+iB,EAAmB,EAAQ,QAC3B1Q,EAAc,EAAQ,QACtBC,EAAa,EAAQ,QACrB6xC,EAAO,EAAQ,QACfw4B,EAAwB,EAAQ,QAChC7D,EAAY,EAAQ,QAEpB8D,EAAK,IACLC,EAAK,IACL1pB,EAAY,YACZ2pB,EAAS,SACT7pB,EAAW6lB,EAAU,YAErBiE,EAAmB,aAEnBC,EAAY,SAAU3yE,GACxB,OAAOwyE,EAAKC,EAASF,EAAKvyE,EAAUwyE,EAAK,IAAMC,EAASF,GAItDK,EAA4B,SAAUP,GACxCA,EAAgBhpB,MAAMspB,EAAU,KAChCN,EAAgB1vE,QAChB,IAAIkwE,EAAOR,EAAgBS,aAAaxjF,OAExC,OADA+iF,EAAkB,KACXQ,GAILE,EAA2B,WAE7B,IAEI/pB,EAFAC,EAASqpB,EAAsB,UAC/BU,EAAK,OAASP,EAAS,IAU3B,OARAxpB,EAAOztD,MAAMyxC,QAAU,OACvB6M,EAAK/e,YAAYkuB,GAEjBA,EAAO7uC,IAAM9tB,OAAO0mF,GACpBhqB,EAAiBC,EAAOG,cAAc9oD,SACtC0oD,EAAetmD,OACfsmD,EAAeK,MAAMspB,EAAU,sBAC/B3pB,EAAermD,QACRqmD,EAAezC,GASpB0sB,EAAkB,WACpB,IAEEZ,EAAkB/xE,SAAS4yE,QAAU,IAAIC,cAAc,YACvD,MAAOzjF,IACTujF,EAAkBZ,EAAkBO,EAA0BP,GAAmBU,IACjF,IAAIrmF,EAASsb,EAAYtb,OACzB,MAAOA,WAAiBumF,EAAgBnqB,GAAW9gD,EAAYtb,IAC/D,OAAOumF,KAGThrE,EAAW2gD,IAAY,EAIvBx8D,EAAOC,QAAUiD,OAAOygB,QAAU,SAAgBniB,EAAGi5D,GACnD,IAAItyD,EAQJ,OAPU,OAAN3G,GACF8kF,EAAiB5pB,GAAanzD,EAAS/H,GACvC2G,EAAS,IAAIm+E,EACbA,EAAiB5pB,GAAa,KAE9Bv0D,EAAOq0D,GAAYh7D,GACd2G,EAAS0+E,SACMtmF,IAAfk6D,EAA2BtyD,EAASmkB,EAAiBnkB,EAAQsyD,K,oCC3EtE,IAAI35D,EAAI,EAAQ,QACZkmF,EAAQ,EAAQ,QAAgCt3B,KAChDsV,EAAmB,EAAQ,QAC3B90D,EAA0B,EAAQ,QAElC+2E,EAAO,OACPC,GAAc,EAEd92E,EAAiBF,EAAwB+2E,GAGzCA,IAAQ,IAAInjF,MAAM,GAAGmjF,IAAM,WAAcC,GAAc,KAI3DpmF,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,OAAQ42E,IAAgB92E,GAAkB,CAC1Es/C,KAAM,SAAcl/C,GAClB,OAAOw2E,EAAMvlF,KAAM+O,EAAY3P,UAAUP,OAAS,EAAIO,UAAU,QAAKN,MAKzEykE,EAAiBiiB,I,oCCtBjB,IAAInmF,EAAI,EAAQ,QACZqmF,EAA4B,EAAQ,QACpCruB,EAAiB,EAAQ,QACzBmrB,EAAiB,EAAQ,QACzB7/B,EAAiB,EAAQ,QACzBrzC,EAA8B,EAAQ,QACtC8J,EAAW,EAAQ,QACnBhb,EAAkB,EAAQ,QAC1BiI,EAAU,EAAQ,QAClB8wD,EAAY,EAAQ,QACpBwuB,EAAgB,EAAQ,QAExB5tB,EAAoB4tB,EAAc5tB,kBAClC6tB,EAAyBD,EAAcC,uBACvCt/E,EAAWlI,EAAgB,YAC3Bo5D,EAAO,OACPC,EAAS,SACTouB,EAAU,UAEVnuB,EAAa,WAAc,OAAO13D,MAEtCzB,EAAOC,QAAU,SAAUsnF,EAAUluB,EAAMmuB,EAAqBhwE,EAAM8hD,EAASC,EAAQr+C,GACrFisE,EAA0BK,EAAqBnuB,EAAM7hD,GAErD,IAkBIiwE,EAA0B/5E,EAASstD,EAlBnC0sB,EAAqB,SAAUC,GACjC,GAAIA,IAASruB,GAAWsuB,EAAiB,OAAOA,EAChD,IAAKP,GAA0BM,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,KAAK1uB,EAAM,OAAO,WAAkB,OAAO,IAAIuuB,EAAoB/lF,KAAMkmF,IACzE,KAAKzuB,EAAQ,OAAO,WAAoB,OAAO,IAAIsuB,EAAoB/lF,KAAMkmF,IAC7E,KAAKL,EAAS,OAAO,WAAqB,OAAO,IAAIE,EAAoB/lF,KAAMkmF,IAC/E,OAAO,WAAc,OAAO,IAAIH,EAAoB/lF,QAGpD3B,EAAgBu5D,EAAO,YACvByuB,GAAwB,EACxBD,EAAoBN,EAAS5kF,UAC7BolF,EAAiBF,EAAkB9/E,IAClC8/E,EAAkB,eAClBvuB,GAAWuuB,EAAkBvuB,GAC9BsuB,GAAmBP,GAA0BU,GAAkBL,EAAmBpuB,GAClF0uB,EAA4B,SAAR3uB,GAAkBwuB,EAAkB3tB,SAA4B6tB,EAiCxF,GA7BIC,IACFP,EAA2B3uB,EAAekvB,EAAkBxnF,KAAK,IAAI+mF,IACjE/tB,IAAsBt2D,OAAOP,WAAa8kF,EAAyBjwE,OAChE1P,GAAWgxD,EAAe2uB,KAA8BjuB,IACvDyqB,EACFA,EAAewD,EAA0BjuB,GACa,mBAAtCiuB,EAAyB1/E,IACzCgJ,EAA4B02E,EAA0B1/E,EAAUoxD,IAIpE/U,EAAeqjC,EAA0B3nF,GAAe,GAAM,GAC1DgI,IAAS8wD,EAAU94D,GAAiBq5D,KAKxCG,GAAWJ,GAAU6uB,GAAkBA,EAAelkF,OAASq1D,IACjE4uB,GAAwB,EACxBF,EAAkB,WAAoB,OAAOG,EAAevnF,KAAKiB,QAI7DqG,IAAWoT,GAAW2sE,EAAkB9/E,KAAc6/E,GAC1D72E,EAA4B82E,EAAmB9/E,EAAU6/E,GAE3DhvB,EAAUS,GAAQuuB,EAGdtuB,EAMF,GALA5rD,EAAU,CACRlG,OAAQkgF,EAAmBxuB,GAC3B5nD,KAAMioD,EAASquB,EAAkBF,EAAmBzuB,GACpDiB,QAASwtB,EAAmBJ,IAE1BpsE,EAAQ,IAAK8/C,KAAOttD,GAClB25E,GAA0BS,KAA2B9sB,KAAO6sB,KAC9DhtE,EAASgtE,EAAmB7sB,EAAKttD,EAAQstD,SAEtCl6D,EAAE,CAAEM,OAAQi4D,EAAMh4D,OAAO,EAAMiP,OAAQ+2E,GAA0BS,GAAyBp6E,GAGnG,OAAOA,I,oCCxFT,gBAOA,SAASu6E,EAAT,GACE,OAAO,SAAU,EAAV,GACL,IAAK,IAAL,OACO/kF,OAAA,gCAAL,IACEzB,KAAA,QAAaA,KAAKymF,MAAlB,MAGJ,IAAK,IAAL,OACEzmF,KAAA,KAAUA,KAAKymF,MAAf,KAAsC17E,EAAtC,KAKS,qBAAW,CACxBjH,KAAM,iBAAO,CACXmJ,OADW,GAEXlB,WAAY,KAGd0F,QANwB,WAStBzR,KAAA,gBAAsBwmF,EAAtB,UAA6C,CAAE//C,WAAW,IAC1DzmC,KAAA,oBAA0BwmF,EAA1B,cAAqD,CAAE//C,WAAW,Q,uBC9BtE,IAAIr3B,EAAS,EAAQ,QACjBurD,EAAgB,EAAQ,QAExBkmB,EAAUzxE,EAAOyxE,QAErBtiF,EAAOC,QAA6B,oBAAZqiF,GAA0B,cAAcviF,KAAKq8D,EAAckmB,K,qsCCA7E,cAGS,IADb58E,EACa,uDAHT,QAGS,uCAEb,OAAO,cAAW,CAChB7B,KAAMA,GAAQlD,EAAA,cADE,KAGhBiE,YAHgB,EAKhBQ,OALgB,SAKV,EALU,GAKa,IAAlB,EAAkB,EAAlB,KAAQ2K,EAAU,EAAVA,SAGjB,OAFAxK,EAAA,YAAoB,UAAG5E,EAAH,YAAQ4E,EAAA,aAAT,IAAnB,OAEOI,EAAED,EAAIH,EAAb,MAeA,kBAI8C,IAAlD0V,EAAkD,wDAE9CqL,EAAQ,SAARA,EAAQyO,GACV1e,EAAA,GACA3Q,EAAA,4BAGFA,EAAA,wBAGF,IAAIyiF,GAAJ,EACA,IACE,wBAAWllF,OAAwB,CACjC,IAAMmlF,EAAmBllF,OAAA,4BAAqC,CAC5D2E,IAAK,WACHsgF,GAAA,KAIJllF,OAAA,qCACAA,OAAA,yCAEF,MAAOiJ,GAAKwmB,QAAA,QAGR,oBAMJhtB,EAAA,uBAA+ByiF,GAAmBltE,GAG9C,kBACJ,IAAM8a,EAAOjd,EAAA,OAAb,EAEA,GAAIid,EAAJ,EAAc,YAAO,IAAApT,EAAA,EAAP,EAEd,IAAK,IAAIvgB,EAAT,EAAgBA,EAAhB,EAA0BA,IAAK,CAC7B,SAAIugB,EACF,SAEFA,EAAMA,EAAI7J,EAAV,IAGF,aAAI6J,QAEG,IAAAA,EAAI7J,EAAJ,IAFiB6e,EAE0BhV,EAAI7J,EAAtD,IAGI,gBACJ,GAAIrY,IAAJ,EAAa,OAAO,EAEpB,GAAIA,aAAA,MAAqBC,aAAzB,MAEMD,EAAA,YAAgBC,EAApB,UAAiC,OAAO,EAG1C,GAAID,IAAMyC,OAANzC,IAAmBC,IAAMwC,OAA7B,GAEE,SAGF,IAAM2B,EAAQ3B,OAAA,KAAd,GAEA,OAAI2B,EAAA,SAAiB3B,OAAA,QAArB,QAKO2B,EAAA,OAAY,SAAAmH,GAAC,OAAIq8E,EAAU5nF,EAAD,GAAOC,EAAxC,OAGI,kBAEJ,OAAI,MAAAiiB,GAAA,GAAJ,kBAAmC7J,OACnC,IAAI6J,EAAA,GAAgCA,EAAP,IAC7B7J,EAAOA,EAAA,qBAJmE,OAK1EA,EAAOA,EAAA,cALmE,IAMnEwvE,EAAe3lE,EAAK7J,EAAA,MAAN,KAArB,IAJ6D6e,EAOzD,kBAKJ,SAAIlJ,EAAkB,YAAO,IAAA1K,EAAA,EAAP,EAEtB,GAAIA,IAAS7gB,OAAb,GAA2B,YAAO,IAAAy0B,EAAA,EAAP,EAE3B,qBAAWlJ,EAAuB,OAAO85D,EAAqBxkE,EAAM0K,EAAlC,GAElC,GAAI3qB,MAAA,QAAJ,GAA6B,OAAOwkF,EAAevkE,EAAM0K,EAA5B,GAE7B,uBAAWA,EAAyB,OAAOkJ,EAE3C,IAAMrvB,EAAQmmB,EAAS1K,EAAvB,GAEA,MAAwB,qBAAVzb,EAAwBqvB,EAAtC,EAGI,cACJ,OAAO7zB,MAAA,KAAW,CAAExD,WAAU,qBAA9B,KAGI,cACJ,IAAKoF,GAAMA,EAAA,WAAgB6/E,KAA3B,aAA8C,OAAO,EAErD,IAAM/5E,GAASvI,OAAA,qCAAf,WAEA,UAAmBulF,EAAU9iF,EAAjB,YAId,IAAM+iF,EAAgB,CACpB,IADoB,QAEpB,IAFoB,OAGpB,IAAK,QAGD,cACJ,OAAOv/E,EAAA,kBAAsB,SAAA7D,GAAG,OAAIojF,EAAApjF,IAApC,KAGI,gBAGJ,IAFA,IAAMqjF,EAAN,GAEStmF,EAAT,EAAgBA,EAAIkP,EAApB,OAAiClP,IAAK,CACpC,IAAMmG,EAAM+I,EAAZ,GACA,qBAAWqR,EAAP,KACF+lE,EAAA,GAAgB/lE,EAAhB,IAIJ,SAGI,cAA6E,IAAXgmE,EAAW,uDAA7E,KACJ,OAAI,MAAAz/E,GAAJ,KAAmBA,OACjB,EACSqa,OAAJ,GACErjB,OAAP,GAEA,UAAUgN,OAAOhE,IAAjB,UAIE,cACJ,OAAQA,GAAD,uCAAP,cAGI,cACJ,OAAO,OAAAyZ,GAAP,WAAuB,kBAIlB,IAAMwE,EAAWjkB,OAAA,OAAc,CACpCmD,MADoC,GAEpCuiF,IAFoC,EAGpC98C,OAHoC,GAIpC+8C,IAJoC,GAKpCC,MALoC,GAMpCC,GANoC,GAOpCC,KAPoC,GAQpCh8E,KARoC,GASpCC,MAToC,GAUpC8lC,IAVoC,GAWpCk2C,KAXoC,GAYpCl6D,IAZoC,GAapCm6D,UAboC,EAcpCpsD,OAdoC,GAepCqsD,OAfoC,GAgBpCC,SAAU,KAKN,gBACJ,IAAKx7E,EAAA,WAAL,KACE,SAIF,IAAMy7E,EAAW,yBAAH,OAA4Bz7E,EAAA,4BANgB,OAU1D,OAAO26E,EAAqBh5D,EAAI85D,EAAhC,GAGI,cACJ,OAAOnmF,OAAA,KAAP,GAMF,IAAMmhB,EAAN,SACaC,EAAY,SAAApb,GACvB,OAAOA,EAAA,WAAwB,qBAAUvI,EAAIA,EAAH,cAA1C,OAiBI,cACJ,OAAOuI,EAAA,wBAA8BA,EAAA,MAArC,GA0BI,cAAgE,OAAO,MAAAoZ,EAAYxe,MAAA,aAAuB,CAAnCwe,GAAP,GAqEhE,kBACJ,OAAIiN,EAAA,WAAmBA,EAAA,aAAnB,IAA6CA,EAAA,gBAAjD,KACShlB,EAAQ,SAAf,SAEEglB,EAAA,OAAJ,GAA4B,SACxBA,EAAA,aAAJ,GAAkC,cAAlC,EA6BI,cAA8F,IAAlE1rB,EAAkE,uDAA9F,YAA8F,uCAAhBylF,EAAgB,wDAClG,OAAI/5D,EAAA,aAAJ,GACSA,EAAA,gBAAuBhqB,aAAA,SAA2BA,IAAzD,IACSgqB,EAAA,WAAqBhqB,IAAzB,SACEgqB,EAAA,OAAP,GAKE,cAAgD,IAAhBzlB,EAAgB,uDAAhD,EAAyC6Q,EAAO,uDAAhD,EACJ,OAAO5Q,KAAA,MAAcA,KAAA,MAArB,IAGI,gBAAyD,IAAVo9C,EAAU,uDAAzD,IACJ,OAAOj+C,EAAMi+C,EAAA,OAAYp9C,KAAA,MAAYzJ,EAAS4I,EAA9C,SAGI,cAAsC,IAARnC,EAAQ,uDAAtC,EACEwiF,EAAN,GACI/9E,EAAJ,EACA,MAAOA,EAAQtC,EAAf,OACEqgF,EAAA,KAAargF,EAAA,SAAb,IACAsC,GAAA,EAEF,SA2BI,aAEwB,IAD5BD,EAC4B,uDAFxB,GAEJnK,EAA4B,uDAFxB,GAIJ,IAAK,IAAL,OAA0B,CACxB,IAAMga,EAAiB7P,EAAvB,GACM4P,EAAiB/Z,EAFC,GAOtBQ,EAAA,IACAA,EAFF,GAIE2J,EAAA,GAAci+E,EAAUpuE,EAAxB,GAKF7P,EAAA,KAGF,W,oCCzcF,IAAIvK,EAAW,EAAQ,QACnBkjE,EAAkB,EAAQ,QAC1BjjE,EAAW,EAAQ,QAIvBjB,EAAOC,QAAU,SAAcqI,GAC7B,IAAI9G,EAAIR,EAASS,MACbnB,EAASW,EAASO,EAAElB,QACpBy3E,EAAkBl3E,UAAUP,OAC5BkL,EAAQ04D,EAAgB6T,EAAkB,EAAIl3E,UAAU,QAAKN,EAAWD,GACxEyyC,EAAMglC,EAAkB,EAAIl3E,UAAU,QAAKN,EAC3CkpF,OAAiBlpF,IAARwyC,EAAoBzyC,EAAS4jE,EAAgBnxB,EAAKzyC,GAC/D,MAAOmpF,EAASj+E,EAAOhK,EAAEgK,KAAWlD,EACpC,OAAO9G,I,uBCfT,IAAII,EAAW,EAAQ,QAEvB5B,EAAOC,QAAU,SAAUoD,GACzB,IAAKzB,EAASyB,GACZ,MAAMuN,UAAU1Q,OAAOmD,GAAM,qBAC7B,OAAOA,I,wLCQI,gBAAiB,CAC9BQ,KAD8B,sBAG9BgB,MAAO,CACL6kF,OADK,QAEL/pE,cAFK,QAGLgqE,OAAQ,CACN5kF,KAAM,CAACmI,OADD,QAENlI,QAAS,GAEX+B,KAAM,CACJhC,KAAM,CAACmI,OADH,QAEJlI,QAAS,IAEXsK,MAAO,CACLvK,KAAM,CAACmI,OADF,QAELlI,QAAS,GAEXsD,MAAO,CACLvD,KAAM,CAACmI,OADF,QAELlI,QAAS,IAIbO,KAAM,iBAAO,CACXm0E,OAAQ,KAGVtsE,SAAU,CACRw8E,eADQ,WAEN,OAAO18E,OAAOzL,KAAP,OAAqBA,KAAKioF,OAAS,EAA1C,IAGFG,cALQ,WAMN,OAAO,EAAI9/E,KAAJ,GAActI,KAArB,QAGFoR,QATQ,WAUN,MAAO,CACL,qCAAsCpR,KADjC,cAEL,8BAA+BA,KAAKioF,SAIxCtoE,gBAhBQ,WAiBN,OAAI3f,KAAK6G,MAAT,EACE,EAGE7G,KAAK6G,MAAT,IACE,IAGKsY,WAAWnf,KAAlB,QAGFqoF,gBA5BQ,WA6BN,OAAO//E,KAAA,UAAWtI,KAAKooF,eAAvB,KAGFE,iBAhCQ,WAiCN,OAAS,IAAMtoF,KAAP,iBAAD,IAAuCA,KAAvC,cAAP,MAGFuoF,YApCQ,WAqCN,OAAO98E,OAAOzL,KAAP,QAAsBA,KAAtB,KAAkCA,KAAlC,YAAP,GAGFkX,OAxCQ,WAyCN,MAAO,CACLtJ,OAAQ,eAAc5N,KADjB,gBAEL6N,MAAO,eAAc7N,KAAD,kBAIxBwoF,UA/CQ,WAgDN,MAAO,CACLhnC,UAAW,UAAF,OAAY/1C,OAAOzL,KAAD,QAAlB,UAIbyoF,YArDQ,WAsDN,OAAOzoF,KAAKi4E,QAAU,EAAIxsE,OAAOzL,KAAP,QAAsBA,KAAhD,QAIJiM,QAAS,CACPy8E,UADO,SACE,KACP,OAAO1oF,KAAK2T,eAAe,SAAU,CACnC5G,MAAO,wBAAF,OAD8B,GAEnCC,MAAO,CACL27E,KADK,cAELC,GAAI,EAAI5oF,KAFH,YAGL6oF,GAAI,EAAI7oF,KAHH,YAIL82D,EAAG92D,KAJE,OAKL,eAAgBA,KALX,YAML,mBAAoBA,KANf,gBAOL,oBAAqB8E,MAI3BgkF,OAfO,WAgBL,IAAMx6E,EAAW,CACftO,KAAKke,eAAiBle,KAAK0oF,UAAU,WADtB,GAEf1oF,KAAK0oF,UAAU,UAAW1oF,KAF5B,mBAKA,OAAOA,KAAK2T,eAAe,MAAO,CAChChG,MAAO3N,KADyB,UAEhCgN,MAAO,CACLe,MADK,6BAELC,QAAS,GAAF,OAAKhO,KAAKyoF,YAAV,YAAyBzoF,KAAKyoF,YAA9B,YAA6C,EAAIzoF,KAAKyoF,YAAtD,YAAqE,EAAIzoF,KAAKyoF,eAJzF,IAQFM,QA7BO,WA8BL,OAAO/oF,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,6BACZ9M,KAAKoM,OAFR,WAMJzI,OA1H8B,SA0HxB,GACJ,OAAOO,EAAE,MAAOlE,KAAK0V,aAAa1V,KAAlB,MAA8B,CAC5C8M,YAD4C,sBAE5CE,MAAO,CACLiB,KADK,cAEL,gBAFK,EAGL,gBAHK,IAIL,gBAAiBjO,KAAKke,mBAAgBpf,EAAYkB,KAAK2f,iBAEzD5S,MAAO/M,KARqC,QAS5C2N,MAAO3N,KATqC,OAU5C+D,GAAI/D,KAAKiX,aACP,CACFjX,KADE,SAEFA,KAbF,eCrIJ,I,oFCsBMoQ,EAAa,OAAAwN,EAAA,MAAO,EAAD,0BAKvB,eALuB,aAMvB,eAAkB,eAOL,OAAAxN,EAAA,gBAAoC,CACjDhO,KADiD,QAGjDgB,MAAO,CACLgT,YAAa,CACX9S,KADW,OAEXC,QAFW,WAGT,OAAKvD,KAAL,UAEOA,KAAKgpF,UAAZ,YAF4B,KAKhCC,MATK,QAULC,UAVK,QAWLC,IAXK,QAYLj+E,KAZK,QAaLiV,QAbK,QAcLipE,SAdK,QAeLC,mBAfK,QAgBLhrE,QAhBK,QAiBLza,IAAK,CACHN,KADG,OAEHC,QAAS,UAEX8I,KArBK,QAsBL8oE,KAtBK,QAuBL7xE,KAAM,CACJA,KADI,OAEJC,QAAS,UAEXsD,MAAO,MAGT/C,KAAM,iBAAO,CACX+S,WAAY,kBAGdlL,SAAU,CACRyF,QADQ,WAEN,mFACE,SADK,GAEF,qCAFE,OAAP,IAGE,kBAAmBpR,KAHd,SAIL,eAAgBA,KAJX,MAKL,gBAAiBA,KALZ,OAML,mBAAoBA,KANf,UAOL,mBAAqBA,KAAD,WAAoBA,KAPnC,SAQL,kBAAmBA,KARd,SASL,aAAcA,KATT,IAUL,eAAgBA,KAVX,MAWL,cAAeA,KAXV,OAYL,cAAeA,KAZV,KAaL,cAAeA,KAbV,KAcL,iBAAkBA,KAdb,QAeL,kBAAmBA,KAfd,SAgBL,eAAgBA,KAhBX,MAiBL,eAAgBA,KAjBX,QAkBL,iBAAkBA,KAlBb,QAmBL,gBAAiBA,KAnBZ,GAoBL,cAAeA,KApBV,KAqBL,cAAeA,KArBV,KAsBL,aAAcA,KAtBT,KAuBFA,KAvBE,cAwBFA,KAxBE,cAyBFA,KAzBE,kBA0BFA,KAAKspF,kBAGZC,UA/BQ,WAgCN,OAAOz9E,SACJ9L,KAAD,SACCA,KADD,YAICA,KALH,YAQF8W,eAxCQ,WAyCN,IAAM0yE,GAAgBxpF,KAAKkL,OAAQlL,KAAb,KAAwB,CAAEypF,QAAQ,GACxD,OAAIzpF,KAAJ,WAC2B,MAAfA,KAAK4W,OAAiB5W,KAAtB,OAAP,IAEP0pF,OA7CQ,WA8CN,OAAO59E,QACL9L,KAAKkL,MACLlL,KADA,MAEAA,KAHF,WAMF2pF,QApDQ,WAqDN,OAAO79E,QACL9L,KAAKkL,MACLlL,KAFF,MAKFkX,OA1DQ,WA2DN,yBACKlX,KAAKwa,oBAKd/I,QAtGiD,WAsG1C,WACCyxE,EAAgB,CACpB,CAAC,OADmB,QAEpB,CAAC,UAFmB,YAGpB,CAAC,QAHH,YAOAA,EAAA,SAAsB,YAA4B,0BAA3B,EAA2B,KAA5B,EAA4B,KAC5C,wBAAJ,IAA0C,eAAS13D,EAAUy0C,EAAnB,OAI9Ch0D,QAAS,CACPD,MADO,SACF,IAEFhM,KAAD,qBAA6BA,KAA7B,KAAyCyK,EAAzC,QAAqDzK,KAAKsS,IAA1D,OACAtS,KAAA,iBAEAA,KAAA,WAAkBA,KAAlB,UAEFmT,WARO,WASL,OAAOnT,KAAK2T,eAAe,OAAQ,CACjC7G,YAAa,kBACZ9M,KAAKoM,OAFR,UAIFw9E,UAbO,WAcL,OAAO5pF,KAAK2T,eAAe,OAAQ,CACjC5G,MAAO,iBACN/M,KAAKoM,OAAOy9E,QAAU,CAAC7pF,KAAK2T,eAAe,EAAmB,CAC/DvQ,MAAO,CACL8a,eADK,EAEL5Y,KAFK,GAGLuI,MAAO,SAMflK,OA7IiD,SA6I3C,GACJ,IAAM2K,EAAW,CACftO,KADe,aAEfA,KAAKmgB,SAAWngB,KAFlB,aAIM8pF,EAAY9pF,KAAD,OAAyCA,KAA1D,aAAgCA,KAAf,mBALV,EAMeA,KAAtB,oBAAM,EANC,EAMD,IAAO8D,EANN,EAMMA,KAUb,MARA,WAAIF,IACFE,EAAA,WAAmB9D,KAAnB,KACA8D,EAAA,eAAuB9D,KAAvB,UAEF8D,EAAA,YAAoB,CAAC,SAAU,UAAU6W,SAAS,OAA9B,OAA8B,CAAO3a,KAArC,QAChBA,KADgB,MAEhB2hB,KAAA,UAAe3hB,KAFnB,OAIOkE,EAAEN,EAAK5D,KAAKsL,SAAWxH,EAAOgmF,EAAS9pF,KAAD,MAArC,GAAR,O,uBCnMJ,IAAIiG,EAAQ,EAAQ,QAGpB1H,EAAOC,SAAWyH,GAAM,WACtB,OAA8E,GAAvExE,OAAO0E,eAAe,GAAI,EAAG,CAAEC,IAAK,WAAc,OAAO,KAAQ,O,kCCH1E,IAAI1D,EAAc,EAAQ,QACtB0Y,EAAuB,EAAQ,QAC/B3Y,EAA2B,EAAQ,QAEvClE,EAAOC,QAAU,SAAU0X,EAAQpP,EAAKD,GACtC,IAAIkjF,EAAcrnF,EAAYoE,GAC1BijF,KAAe7zE,EAAQkF,EAAqB/Z,EAAE6U,EAAQ6zE,EAAatnF,EAAyB,EAAGoE,IAC9FqP,EAAO6zE,GAAeljF,I,uBCR7B,IAAIS,EAAyB,EAAQ,QAEjC0iF,EAAO,KAIXzrF,EAAOC,QAAU,SAAUyK,EAAQrF,EAAKqmF,EAAWpjF,GACjD,IAAIwD,EAAI5L,OAAO6I,EAAuB2B,IAClCihF,EAAK,IAAMtmF,EAEf,MADkB,KAAdqmF,IAAkBC,GAAM,IAAMD,EAAY,KAAOxrF,OAAOoI,GAAO8P,QAAQqzE,EAAM,UAAY,KACtFE,EAAK,IAAM7/E,EAAI,KAAOzG,EAAM,M,qBCVrCrF,EAAOC,QAAU,SAAUoD,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,I,8LCUxC,SAAAgc,EAAA,qBAAyB,CACtCxb,KADsC,YAGtCe,YAHsC,EAKtCC,MAAO,CACLyD,MAAO,CACLvD,KAAM,CAACmI,OADF,QAELlI,QAAS,IAEX2V,IAAK,CAACzN,OAAQhN,SAGhBkF,OAbsC,SAahC,KAAQ,IACJP,EAAR,EAAQA,MACF8V,EAAMxE,SAAStR,EAAD,IAApB,IACMyD,EAAQ6N,SAAStR,EAAD,MAAtB,IACM+O,EAAU+G,EAAM,GAAH,OAAMrS,EAAN,iBAAyBpI,OAAO2E,EAAnD,OACM+mF,EAAYjxE,GAAQrS,EAA1B,EAEA,OAAO3C,EAAE,MAAO,CACd4I,YADc,YAEdC,MAAO,gBACL,cADK,GAEF,eAAuBsW,KAJ9B,MC5BJ,I,gDCMc,cACZ,MAAsB,qBAAX7hB,QAA4B,yBAAvC,OAKO,cAAW,CAChBY,KADgB,gBAGhB0nC,QAHgB,WAId,gBAAmB9pC,KAAnB,IAA4C,CAC1CoC,KAD0C,YAE1CyE,MAAO7G,KAAKoqF,aAIhBvgD,UAVgB,WAWd,cAAiB7pC,KAAjB,MAGFiM,QAAS,CACPm+E,UADO,SACE,OACP,KAEA,IAAK,IAAIzpF,EAAJ,EAAW9B,EAAS2a,EAAA,UAAzB,OAAmD7Y,EAAnD,EAA+DA,IAAK,CAClE,IAAMs8B,EAAYj9B,KAAawZ,EAAA,UAA/B,IAEA,oBAAWyjB,EAKX,OAAAhM,EAAA,MAAYzX,EAAA,aAAZ,0FAJEyjB,SAzBD,cAAW,CAAE76B,KAAM,kB,oDCcxBgO,EAAa,OAAAwN,EAAA,MAAO,EAAD,KAEvB,EAAc,CACZysE,UAAW,CAAC,gBAAD,qDAHf,QAsBMC,EAAa,CAAC,QAAS,OAAQ,OAAQ,OAAQ,iBAAkB,OAAvE,SAGe,OAAAl6E,EAAA,gBAAoC,CACjDhO,KADiD,eAGjDiO,WAAY,CAAEuG,SAAA,MAEdo9B,cALiD,EAOjD5wC,MAAO,CACLmnF,gBADK,OAELC,UAFK,QAGLC,UAHK,QAILC,UAAW,CACTpnF,KADS,OAETC,QAAS,UAEXquB,QAAS,CAAC9lB,QAASL,OARd,QASLk/E,aATK,SAULC,OAVK,QAWL/qF,KAXK,QAYLgrF,UAZK,QAaL/V,MAbK,OAcLsU,SAdK,QAeL1pC,YAfK,OAgBLorC,OAhBK,OAiBLC,iBAjBK,OAkBL3sE,QAlBK,QAmBLC,QAnBK,QAoBL2sE,OApBK,QAqBLC,WArBK,QAsBLC,KAtBK,QAuBLC,aAvBK,QAwBLC,OAxBK,OAyBL9nF,KAAM,CACJA,KADI,OAEJC,QAAS,SAIbO,KAAM,iBAAO,CACXunF,UADW,EAEXC,WAFW,EAGXC,YAHW,EAIXC,aAJW,EAKXC,aALW,KAMXzR,UANW,EAOX0R,YAAY,IAGd//E,SAAU,CACRyF,QADQ,WAEN,wCACKu6E,EAAA,mCADE,OAAP,IAEE,gBAFK,EAGL,2BAA4B3rF,KAHvB,UAIL,uBAAwBA,KAJnB,OAKL,4BAA6BA,KALxB,SAML,qBAAsBA,KANjB,OAOL,8BAA+BA,KAP1B,aAQL,0BAA2BA,KARtB,KASL,uBAAwBA,KATnB,OAUL,0BAA2BA,KAVtB,SAWL,yBAA0BA,KAXrB,WAYL,wBAAyBA,KAZpB,QAaL,yBAA0BA,KAbrB,SAcL,4BAA6BA,KAdxB,YAeL,wBAAyBA,KAfpB,QAgBL,uBAAwBA,KAAKgrF,UAGjC7d,cArBQ,WAsBN,IAAMA,EAAgB,2CAAtB,MAEA,OAAKntE,KAAD,cAAuBA,KAA3B,UAEOA,KAAKie,OAAZ,UAFkDkvD,GAIpDye,qBA5BQ,WA6BN,0BAAW5rF,KAAP,aACKA,KAAK2qF,aAAa3qF,KAAzB,gBAEMA,KAAKguE,eAAN,eAAP,QAEF6d,WAlCQ,WAmCN,OAAwB,IAAjB7rF,KAAK4xB,SAAZ,MAAiC5xB,KAAK4xB,SAExCk6D,WArCQ,WAsCN,OAAOH,EAAA,6CAAiD3rF,KAAxD,YAEFguE,cAAe,CACb5nE,IADa,WAEX,OAAOpG,KAAP,WAEFyoB,IAJa,SAIV,GACDzoB,KAAA,YACAA,KAAA,cAAoBA,KAApB,aAGJ+rF,QAjDQ,WAkDN,OAA0B,MAAlB/rF,KAAKitE,WACXjtE,KAAKitE,UAAU3rE,WAAWzC,OADrB,GAELmB,KAFF,UAIFgsF,WAtDQ,WAuDN,OACEhsF,KAAK4qF,QACL5qF,KADA,QAEAA,KAHF,UAMFisF,cA7DQ,WA8DN,OAAOjsF,KAAK+rF,SAAWzB,EAAA,SAAoBtqF,KAA3C,OAEFksF,SAhEQ,WAiEN,OACElsF,KAAKmsF,QACLnsF,KADA,YAEAA,KAFA,WAICA,KAAA,SAAgBA,KALnB,UAQFmsF,OAzEQ,WA0EN,OAAOnsF,KAAKkrF,MAAQlrF,KAApB,cAEFosF,cA5EQ,WA6EN,IAAItnF,EAAU9E,KAAK8qF,SAAW9qF,KAAjB,WAAoCA,KAApC,YAAb,EAIA,OAFIA,KAAKqsF,YAAcrsF,KAAvB,eAA0C8E,GAAU9E,KAAV,cAElCA,KAAKwf,SAASC,MAAQzf,KAAvB,QAAuC,CAC5CuL,KAD4C,EAE5CC,MAAO,QACL,CACFD,KADE,OAEFC,MAAO1G,IAGXwnF,UAzFQ,WA0FN,OAAOtsF,KAAKusF,YAAcvsF,KAAD,WAAoBA,KAAD,gBAAwBA,KAApE,cAEFqsF,WA5FQ,WA6FN,OAAQrsF,KAAD,UACL8L,QAAQ9L,KAAK+sE,WAAa/sE,KAAlB,eAAwCA,KADlD,eAKJwR,MAAO,CACL66E,WADK,gBAELjD,SAFK,gBAGLtU,MAHK,WAIH90E,KAAA,UAAeA,KAAf,gBAEF8qF,OANK,WAOH9qF,KAAA,UAAeA,KAAf,iBAEF+sE,UATK,cAULlmE,MAVK,SAUA,GACH7G,KAAA,cAIJyR,QAjKiD,WAmK3CzR,KAAK0R,OAAOC,eAAhB,QACE,eAAS,MAAO,SAAhB,MAIE3R,KAAK0R,OAAOC,eAAhB,yBACE,eAAS,uBAAwB,eAAjC,MAIE3R,KAAKgrF,UAAYhrF,KAAK4qF,QAAU5qF,KAAf,UAAgCA,KAArD,SACE,OAAAixB,EAAA,MAAY,uDAAZ,OAIJ6Y,QAlLiD,WAkL1C,WACL9pC,KAAA,WAAkBA,KAAlB,eACAA,KAAA,gBACAA,KAAA,iBACAA,KAAA,kBACA+E,uBAAsB,kBAAO,YAA7B,MAGFkH,QAAS,CAEPugF,MAFO,WAGLxsF,KAAA,WAGFysF,KANO,SAMH,GAAW,WAGbjrF,OAAA,uBAA6B,WAC3B,eAAoB,cAApB,WAGJkrF,kBAbO,WAaU,WACf1sF,KAAA,aAAoBA,KAAKkS,MAAMmyC,MAA/B,QACArkD,KAAA,WAAe,kBAAM,gBAArB,SAEF2sF,cAjBO,WAkBL,IAAM9sE,EAAN,GAQA,OANI7f,KAAKoM,OAAT,gBACEyT,EAAA,KAAU7f,KAAKoM,OAAf,iBACSpM,KAAJ,iBACL6f,EAAA,KAAU7f,KAAK05E,QAAf,gBAGK15E,KAAK4sF,QAAQ,SAAU,QAA9B,IAEFC,oBA5BO,WA6BL,IAAMhtE,EAAN,GAQA,OANI7f,KAAKoM,OAAT,iBACEyT,EAAA,KAAU7f,KAAKoM,OAAf,kBACSpM,KAAJ,kBACL6f,EAAA,KAAU7f,KAAK05E,QAAf,iBAGK15E,KAAK4sF,QAAQ,UAAW,QAA/B,IAEFE,YAvCO,WAwCL,IAAMjtE,EAAN,GAQA,OANI7f,KAAKoM,OAAT,UACEyT,EAAA,KAAU7f,KAAKoM,OAAf,WACSpM,KAAJ,YACL6f,EAAA,KAAU7f,KAAK05E,QAAf,WAGK15E,KAAK4sF,QAAQ,SAAU,QAA9B,IAEFG,aAlDO,WAmDL,IAAM1oC,EAAQsnC,EAAA,uCAAd,MAEM79B,EAAU9tD,KAAhB,sBAOA,OALA,IACEqkD,EAAA,SAAiBA,EAAA,UAAjB,GACAA,EAAA,qBAGF,GAEF2oC,aA9DO,WA+DL,IAAKhtF,KAAL,UAAqB,OAAO,KAE5B,IAAM8D,EAAO9D,KAAK+rF,aAAUjtF,EAAY,CAAEkO,MAAO,CAAE1B,UAAU,IAE7D,OAAOtL,KAAK4sF,QAAQ,SAAU,QAAS,CACrC5sF,KAAK05E,QAAQ,QAAS15E,KAAtB,kBADF,MAIFitF,WAvEO,WAwEL,IAAKjtF,KAAL,WAAsB,OAAO,KAE7B,IAAMkZ,GAAuB,IAAjBlZ,KAAK4xB,QAAmB5xB,KAAKiN,OAA7B,UAAgDjN,KAA5D,QAEA,OAAOA,KAAK2T,eAAe,EAAU,CACnCvQ,MAAO,CACLmN,KAAMvQ,KADD,KAELyQ,MAAOzQ,KAFF,MAGLkZ,MACArS,MAAO7G,KAAK4rF,yBAIlBsB,WArFO,WAsFL,OAAOvB,EAAA,qCAAP,OAEFwB,eAxFO,WAyFL,MAAO,CACLntF,KADK,cAELA,KAFK,mBAGLA,KAHK,eAILA,KAJK,cAKLA,KALF,gBAQFotF,YAjGO,WAkGL,OAAKptF,KAAL,SAEOA,KAAK2T,eAAe,WAAY,CACrC3G,MAAO,CACL,eAAe,IAEhB,CAAChN,KAJJ,cAF2B,MAQ7BqtF,SA1GO,WA2GL,IAAKrtF,KAAL,UAAqB,OAAO,KAE5B,IAAM8D,EAAO,CACXV,MAAO,CACLmd,UADK,EAELtC,MAAOje,KAFF,gBAGLuQ,KAAMvQ,KAHD,KAILsL,SAAUtL,KAJL,WAKLstF,SAAUttF,KAAD,WAAmBA,KAAK+sE,aAAe/sE,KAL3C,iBAMLutF,IAAKvtF,KANA,WAOLuL,KAAMvL,KAAKosF,cAPN,KAQL37E,MAAOzQ,KARF,MASLwL,MAAOxL,KAAKosF,cATP,MAULvlF,MAAO7G,KAAKqsF,aAIhB,OAAOrsF,KAAK2T,eAAe65E,EAApB,OAAkCxtF,KAAKoM,OAAO0oE,OAAS90E,KAA9D,QAEFytF,UA9HO,WA+HL,IAAM5/E,EAAS7N,KAAD,aAAqBA,KAAKqsF,aAAcrsF,KAAxC,QAAd,EAAsEA,KAAxD,WACR0tF,EAAO1tF,KAAK2T,eAAe,OAAQ,CACvCyjB,SAAU,CAAE0a,UAAW,aAGzB,OAAO9xC,KAAK2T,eAAe,SAAU,CACnChG,MAAO,CACLE,MAAQ7N,KAAD,cAAwClB,EAAvB,eAAjB,KAER,CAJH,KAMF6uF,SA1IO,WA2IL,IAAM5tE,EAAYte,OAAA,UAAkBzB,KAApC,YAGA,cAFO+f,EAFD,UAIC/f,KAAK2T,eAAe,QAAS,CAClChG,MADkC,GAElCypB,SAAU,CACRvwB,MAAsB,WAAd7G,KAAKsD,MAAqB7B,OAAA,GAAUzB,KAAV,WAA3B,QAAmEA,KAAKitE,WAEjFjgE,MAAO,iCACFhN,KADE,QAAF,IAEHwqF,UAAWxqF,KAFN,UAGLsL,SAAUtL,KAHL,WAIL8oB,GAAI9oB,KAJC,WAKL0/C,YAAa1/C,KALR,YAMLssE,SAAUtsE,KANL,WAOLsD,KAAMtD,KAAKsD,OAEbS,GAAItC,OAAA,SAAyB,CAC3BgrF,KAAMzsF,KADqB,OAE3BqkD,MAAOrkD,KAFoB,QAG3BwsF,MAAOxsF,KAHoB,QAI3BuT,QAASvT,KAAK4tF,YAEhBn6E,IAAK,WAGTo6E,YArKO,WAsKL,IAAK7tF,KAAL,YAAuB,OAAO,KAE9B,IAAM8tF,EAAenC,EAAA,sCAArB,MACMoC,EAAc/tF,KAApB,aAEA,OAAOA,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,yBACZ,CAAC,EAFJ,KAOFkhF,iBAlLO,WAmLL,OAAOhuF,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,sBACZ,CACD9M,KADC,WAEDA,KAAK8qF,OAAS9qF,KAAKiuF,SAAnB,UAFC,KAGDjuF,KAHC,WAIDA,KAAKorF,OAASprF,KAAKiuF,SAAnB,UANF,QASFA,SA5LO,SA4LC,GACN,OAAOjuF,KAAK2T,eAAe,MAAO,CAChC5G,MAAO,iBAAF,OAD2B,GAEhC0G,IAAKnQ,GACJtD,KAHH,KAKFkuF,OAlMO,SAkMD,GAAW,WACfluF,KAAA,aACAyK,GAAKzK,KAAKo+B,WAAU,kBAAM,eAA1B3zB,OAEFuV,QAtMO,WAuMDhgB,KAAK+sE,WAAa/sE,KAAlB,aAAsCA,KAAKkS,MAA/C,OAEAlS,KAAA,qBAEFmuF,QA3MO,SA2MA,GACL,GAAKnuF,KAAKkS,MAAV,MAEA,OAAIO,SAAA,gBAA2BzS,KAAKkS,MAApC,MACSlS,KAAKkS,MAAMmyC,MAAlB,aAGGrkD,KAAL,YACEA,KAAA,aACAyK,GAAKzK,KAAKygC,MAAM,QAAhBh2B,MAGJ2jF,QAvNO,SAuNA,GACL,IAAMzuF,EAAS8K,EAAf,OACAzK,KAAA,cAAqBL,EAArB,MACAK,KAAA,SAAgBL,EAAA,UAAmBA,EAAA,SAAnC,UAEFiuF,UA5NO,SA4NE,GACHnjF,EAAA,UAAc,OAAlB,OAAkCzK,KAAKygC,MAAM,SAAUzgC,KAArB,eAElCA,KAAA,oBAEFquF,YAjOO,SAiOI,GAEL5jF,EAAA,SAAazK,KAAKkS,MAAtB,QACEzH,EAAA,iBACAA,EAAA,mBAGFkhF,EAAA,+CAEF2C,UA1OO,SA0OE,GACHtuF,KAAJ,cAAuBA,KAAKwsF,QAE5Bb,EAAA,6CAEF4C,cA/OO,WAgPAvuF,KAAL,WAEAA,KAAA,WAAkBA,KAAKkS,MAAM4iE,MACzBxsE,KAAA,IAAwC,IAA/BtI,KAAKkS,MAAM4iE,MAAM0Z,YAA1B,EAAmDxuF,KAAKsS,IAAL,YADrC,IAAlB,IAIFm8E,eAtPO,WAuPAzuF,KAAKkS,MAAV,SAEAlS,KAAA,YAAmBA,KAAKkS,MAAM44E,OAA9B,cAEF4D,gBA3PO,WA4PA1uF,KAAD,UAAmBA,KAAKkS,MAA5B,mBAEAlS,KAAA,aAAoBA,KAAKkS,MAAM,iBAA/B,cAEFy8E,aAhQO,WAiQL,SACG3uF,KAAD,gCACOyS,WACNzS,KAAKkS,MAFN,OAGAO,SAAA,gBAA2BzS,KAAKkS,MAJlC,SAOAlS,KAAA,qBAEA,IAEF4uF,YA5QO,SA4QI,GAET5uF,KAAA,WAEA,EACEA,KAAA,aAAoBA,KAApB,UACSA,KAAKyrF,eAAiBzrF,KAA1B,WACLA,KAAA,eAAqBA,KAArB,gB,uJC9eO,8BAAgC,CAC7CoC,KAD6C,SAG7CkT,QAH6C,WAI3C,MAAO,CACLu5E,UADK,EAELnuF,KAAMV,OAIVsuB,OAAQ,CACNwgE,SAAU,CACRvrF,SAAS,GAEXwrF,QAAS,CACPxrF,SAAS,IAIbH,MAAO,CACLiI,MADK,QAELC,SAFK,QAGL0jF,OAHK,QAILnvF,KAJK,QAKLovF,IALK,QAML5wE,QANK,QAOL6wE,UAPK,QAQLC,UARK,QASLC,QAAStjF,SAGXhI,KAAM,iBAAO,CACXs1D,OAAQ,KAGVztD,SAAU,CACRyF,QADQ,WAEN,wCACK,qCADE,OAAP,IAEE,gBAAiBpR,KAFZ,MAGL,mBAAoBA,KAHf,SAIL,eAAgBA,KAJX,KAKL,cAAeA,KALV,IAML,kBAAmBA,KANd,QAOL,oBAAqBA,KAPhB,UAQL,mBAAoBA,KARf,QASL,qBAAsBA,KAAKmvF,cAKjCljF,QAAS,CACPwjD,SADO,SACC,GACNzvD,KAAA,gBAEF8vD,WAJO,SAIG,GACR,IAAM/lD,EAAQ/J,KAAKo5D,OAAOi2B,WAAU,SAAAjsB,GAAC,OAAIA,EAAA,OAAWjxD,EAApD,QAEIpI,GAAJ,GAAgB/J,KAAKo5D,OAAO72C,OAAOxY,EAAO,IAE5CyvE,UATO,SASE,GACP,IAAIx5E,KAAJ,QADoB,uBAGAA,KAApB,QAHoB,IAGpB,2BAAiC,KAAjC,EAAiC,QAC/BqD,EAAA,WAJkB,kCASxBM,OArE6C,SAqEvC,GACJ,IAAMG,EAAO,CACXgJ,YADW,SAEXC,MAAO/M,KAFI,QAGX2N,MAAO3N,KAHI,OAIXgN,MAAO,gBACLiB,KAAMjO,KAAK+uF,SAAW/uF,KAAhB,gBADD,QAEFA,KAAKiN,SAIZ,OAAO/I,EAAElE,KAAD,IAAWA,KAAK0e,mBAAmB1e,KAAxB,MAAX,GAAsD,CAACA,KAAKoM,OAApE,c,qBClGJ,IAAIihD,EAAQ,EAAQ,QAEhBiiC,EAAmB1uF,SAASU,SAGE,mBAAvB+rD,EAAMsN,gBACftN,EAAMsN,cAAgB,SAAU/4D,GAC9B,OAAO0tF,EAAiBvwF,KAAK6C,KAIjCrD,EAAOC,QAAU6uD,EAAMsN,e,6DCVvB,IAAI13C,EAAS,EAAQ,QAAiCA,OAItD1kB,EAAOC,QAAU,SAAU6L,EAAGN,EAAOL,GACnC,OAAOK,GAASL,EAAUuZ,EAAO5Y,EAAGN,GAAOlL,OAAS,K,wICLtD,oFAGM0wF,EAAoB,CACxB,CAAC,QAAD,QADwB,OAExB,eAFwB,OAGxB,CAAC,OAAD,KAHF,QAOMC,EAAwB,SAAAjvF,GAAD,OAC3BA,GAAA,eACIA,EACA,MAAQ,KAAR,IAAQA,EAAM,EAAd,KAHN,MAOMkvF,EAAoB,CACxB,CAAC,MAAQ,MADe,OAExB,CAAC,MAAQ,MAFe,OAGxB,CAAC,MAAQ,MAHX,QAOMC,EAAwB,SAAAnvF,GAAD,OAC3BA,GAAA,OACIA,EADJ,gBAEMA,EAAD,MAAD,MAHN,MAMM,cAMJ,IALA,IAAM6jF,EAAM/hF,MAAZ,GACMm/C,EAAN,EACMmuC,EAHyB,EAMtBhvF,EAAT,EAAgBA,EAAhB,MACEyjF,EAAA,GAAS97E,KAAA,MAAT,IAAoB,eAAMk5C,EACxBmuC,EAAA,MAAeC,EAAf,GACAD,EAAA,MAAeC,EADf,GAEAD,EAAA,MAAeC,EAHG,MAQtB,OAAQxL,EAAA,IAAD,KAAkBA,EAAA,IAAlB,IAAkCA,EAAA,IAAzC,GAGI,cAWJ,IAVA,IAAMwL,EAAW,CAAC,EAAG,EAArB,GACMpuC,EAAN,EACMmuC,EAH4B,EAM5B74B,EAAItV,GAAW4iC,GAAA,GAAD,KAApB,KACMhhB,EAAI5hB,GAAW4iC,GAAA,EAAD,KAApB,KACMnlF,EAAIuiD,GAAW4iC,GAAA,EAAD,KARc,KAWzBzjF,EAAT,EAAgBA,EAAhB,MACEivF,EAAA,GAASD,EAAA,QAAmBA,EAAA,MAAnB,EAAsCA,EAAA,MAA/C,EAGF,W,4HC9Da,gBAAW,CACxBvtF,KADwB,aAGxBgB,MAAO,CACLysF,UAAW,CAACpkF,OAAQhN,SAGtBkN,SAAU,CACRmkF,kBADQ,WAEN,OAAO9vF,KAAP,WAEF+vF,iBAJQ,WAKN,IAAMF,EAAY7vF,KAAlB,kBAEA,aAAI6vF,GACA/tE,MAAMpN,SAAV,IAD8B,GAE9B,sCAAuB1U,KAAd,YAAiC,O,gDCAjC,cAAA4d,EAAA,MAAO,EAAD,4BAAN,eAON,CACPxb,KADO,UAGPgB,MAAO,CACLgmF,SADK,QAEL4B,OAFK,QAGLpnF,IAAK,CACHN,KADG,OAEHC,QAAS,QAIboI,SAAU,CACRyF,QADQ,WAEN,qDACE,WADK,EAEL,oBAAqBpR,KAFhB,SAGL,kBAAmBA,KAHd,QAIFA,KAJE,cAKFA,KALE,kBAMFA,KAAKy6E,iBAGZvjE,OAXQ,WAYN,OAAOlX,KAAP,mBAIJ2D,OA5BO,SA4BD,GACJ,IAAMG,EAAO,CACXiJ,MAAO/M,KADI,QAEX2N,MAAO3N,KAFI,OAGX+D,GAAI/D,KAAK+L,YAGX,OAAO7H,EACLlE,KADM,IAENA,KAAK0e,mBAAmB1e,KAAxB,MAFM,GAGNA,KAAKoM,OAHP,a,gHC5CJ,SAASsf,EAAT,KACE,IAAMioB,EAAYqK,EAAA,WAAlB,GACMn3C,EAAQm3C,EAAd,MAFgE,EAGnC,+BAEzB,CAAElqC,QAAF,EAAkB0F,QAAS,IAFzB,EAH0D,EAG1D,QAAWA,EAH+C,EAG/CA,QAGXqY,EAAW,IAAIm+D,sBAAqB,WAGtC,IAFFv3B,EAEE,uDAHsC,KAGtC,uCAEF,GAAKx0D,EAAL,UAIA,GACE6P,KACG6/B,EAAD,OACA1vC,EAAA,SAHJ,MAKE,CACA,IAAMgsF,EAAiBnkF,QAAQ2sD,EAAA,MAAa,SAAAzF,GAAK,OAAIA,EAArD,mBAEAl/C,EAAQ2kD,EAAS5mC,EAAjB,GAKE5tB,EAAA,eAAoB0vC,EAAxB,KAAwC7hC,EAAxC,GAEM7N,EAAA,eAAD,KAxBP,GA2BAA,EAAA,SAAc,CAAE02B,MAAF,EAAe9I,YAE7BA,EAAApF,QAAA,GAGF,SAAS3a,EAAT,GAEO7N,EAAL,WAEAA,EAAA,4BAAAA,UACOA,EAAP,UAGK,IAAMisF,EAAY,CACvBxkE,WACA5Z,UAGF,U,qBCnEA,IAAIgX,EAAK,EACLqnE,EAAU7nF,KAAKg7D,SAEnB/kE,EAAOC,QAAU,SAAUsI,GACzB,MAAO,UAAYrI,YAAeK,IAARgI,EAAoB,GAAKA,GAAO,QAAUgiB,EAAKqnE,GAAS7uF,SAAS,M,qBCJ7F,IAAIiB,EAAc,EAAQ,QACtB6Y,EAAuB,EAAQ,QAC/B3Y,EAA2B,EAAQ,QAEvClE,EAAOC,QAAU+D,EAAc,SAAU2T,EAAQpP,EAAKD,GACpD,OAAOuU,EAAqB/Z,EAAE6U,EAAQpP,EAAKrE,EAAyB,EAAGoE,KACrE,SAAUqP,EAAQpP,EAAKD,GAEzB,OADAqP,EAAOpP,GAAOD,EACPqP,I,kCCPT,IAAI+lD,EAAc,EAAQ,QACtBm0B,EAAgB,EAAQ,QAExBl0B,EAAazzD,OAAOvH,UAAUgO,KAI9BitD,EAAgB19D,OAAOyC,UAAUyV,QAEjCylD,EAAcF,EAEdI,EAA2B,WAC7B,IAAIC,EAAM,IACNC,EAAM,MAGV,OAFAN,EAAWn9D,KAAKw9D,EAAK,KACrBL,EAAWn9D,KAAKy9D,EAAK,KACI,IAAlBD,EAAInzD,WAAqC,IAAlBozD,EAAIpzD,UALL,GAQ3BinF,EAAgBD,EAAcC,eAAiBD,EAAcE,aAG7D7zB,OAAuC39D,IAAvB,OAAOoQ,KAAK,IAAI,GAEhCwtD,EAAQJ,GAA4BG,GAAiB4zB,EAErD3zB,IACFN,EAAc,SAAc30D,GAC1B,IACI2B,EAAWuzD,EAAQxzD,EAAOxI,EAD1Bw4D,EAAKn5D,KAEL2J,EAAS0mF,GAAiBl3B,EAAGxvD,OAC7BJ,EAAQ0yD,EAAYl9D,KAAKo6D,GACzBrvD,EAASqvD,EAAGrvD,OACZymF,EAAa,EACbC,EAAU/oF,EA+Cd,OA7CIkC,IACFJ,EAAQA,EAAMoN,QAAQ,IAAK,KACC,IAAxBpN,EAAMuG,QAAQ,OAChBvG,GAAS,KAGXinF,EAAU/xF,OAAOgJ,GAAKrH,MAAM+4D,EAAG/vD,WAE3B+vD,EAAG/vD,UAAY,KAAO+vD,EAAG1vD,WAAa0vD,EAAG1vD,WAAuC,OAA1BhC,EAAI0xD,EAAG/vD,UAAY,MAC3EU,EAAS,OAASA,EAAS,IAC3B0mF,EAAU,IAAMA,EAChBD,KAIF5zB,EAAS,IAAIl0D,OAAO,OAASqB,EAAS,IAAKP,IAGzCkzD,IACFE,EAAS,IAAIl0D,OAAO,IAAMqB,EAAS,WAAYP,IAE7C+yD,IAA0BlzD,EAAY+vD,EAAG/vD,WAE7CD,EAAQ+yD,EAAWn9D,KAAK4K,EAASgzD,EAASxD,EAAIq3B,GAE1C7mF,EACER,GACFA,EAAMk7C,MAAQl7C,EAAMk7C,MAAMjkD,MAAMmwF,GAChCpnF,EAAM,GAAKA,EAAM,GAAG/I,MAAMmwF,GAC1BpnF,EAAMY,MAAQovD,EAAG/vD,UACjB+vD,EAAG/vD,WAAaD,EAAM,GAAGtK,QACpBs6D,EAAG/vD,UAAY,EACbkzD,GAA4BnzD,IACrCgwD,EAAG/vD,UAAY+vD,EAAG/pD,OAASjG,EAAMY,MAAQZ,EAAM,GAAGtK,OAASuK,GAEzDqzD,GAAiBtzD,GAASA,EAAMtK,OAAS,GAG3Cs9D,EAAcp9D,KAAKoK,EAAM,GAAIwzD,GAAQ,WACnC,IAAKh8D,EAAI,EAAGA,EAAIvB,UAAUP,OAAS,EAAG8B,SACf7B,IAAjBM,UAAUuB,KAAkBwI,EAAMxI,QAAK7B,MAK1CqK,IAIX5K,EAAOC,QAAU49D,G,uBCtFjB,IAAIn2D,EAAQ,EAAQ,QAEhBg6D,EAAc,kBAEd1mD,EAAW,SAAUk3E,EAASC,GAChC,IAAI7pF,EAAQ/C,EAAK4b,EAAU+wE,IAC3B,OAAO5pF,GAAS8pF,GACZ9pF,GAAS+pF,IACW,mBAAbF,EAA0BzqF,EAAMyqF,KACrCA,IAGJhxE,EAAYnG,EAASmG,UAAY,SAAUzW,GAC7C,OAAOxK,OAAOwK,GAAQ0N,QAAQspD,EAAa,KAAK99C,eAG9Cre,EAAOyV,EAASzV,KAAO,GACvB8sF,EAASr3E,EAASq3E,OAAS,IAC3BD,EAAWp3E,EAASo3E,SAAW,IAEnCpyF,EAAOC,QAAU+a,G,2DClBjB,EAAQ,QACR,IAAIla,EAAI,EAAQ,QACZsW,EAAa,EAAQ,QACrB0sC,EAAiB,EAAQ,QACzBjpC,EAAW,EAAQ,QACnBsmE,EAAc,EAAQ,QACtB/8B,EAAiB,EAAQ,QACzB+iC,EAA4B,EAAQ,QACpC7iC,EAAsB,EAAQ,QAC9BP,EAAa,EAAQ,QACrB9/B,EAAS,EAAQ,QACjB1hB,EAAO,EAAQ,QACfkO,EAAU,EAAQ,QAClBlH,EAAW,EAAQ,QACnB3H,EAAW,EAAQ,QACnB+hB,EAAS,EAAQ,QACjBzf,EAA2B,EAAQ,QACnCouF,EAAc,EAAQ,QACtBv4E,EAAoB,EAAQ,QAC5Bla,EAAkB,EAAQ,QAE1B0yF,EAASn7E,EAAW,SACpBo7E,EAAUp7E,EAAW,WACrBrP,EAAWlI,EAAgB,YAC3B4yF,EAAoB,kBACpBC,EAA6BD,EAAoB,WACjD/tC,EAAmBJ,EAAoBp6B,IACvCyoE,EAAyBruC,EAAoBM,UAAU6tC,GACvDxQ,EAA2B39B,EAAoBM,UAAU8tC,GAEzDE,EAAO,MACPC,EAAY/uF,MAAM,GAElBgvF,EAAkB,SAAUC,GAC9B,OAAOF,EAAUE,EAAQ,KAAOF,EAAUE,EAAQ,GAAK7oF,OAAO,qBAAuB6oF,EAAQ,KAAM,QAGjGC,EAAgB,SAAUC,GAC5B,IACE,OAAOC,mBAAmBD,GAC1B,MAAO3vF,GACP,OAAO2vF,IAIPE,EAAc,SAAU9vF,GAC1B,IAAI8E,EAAS9E,EAAG+U,QAAQw6E,EAAM,KAC1BG,EAAQ,EACZ,IACE,OAAOG,mBAAmB/qF,GAC1B,MAAO7E,GACP,MAAOyvF,EACL5qF,EAASA,EAAOiQ,QAAQ06E,EAAgBC,KAAUC,GAEpD,OAAO7qF,IAIPunD,EAAO,eAEPt3C,EAAU,CACZ,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,KAGL0gE,EAAW,SAAUluE,GACvB,OAAOwN,EAAQxN,IAGbwoF,EAAY,SAAU/vF,GACxB,OAAO2kD,mBAAmB3kD,GAAI+U,QAAQs3C,EAAMopB,IAG1Cua,EAAoB,SAAUlrF,EAAQyX,GACxC,GAAIA,EAAO,CACT,IAEI8rE,EAAWj3B,EAFX6T,EAAa1oD,EAAMrV,MAAM,KACzBiB,EAAQ,EAEZ,MAAOA,EAAQ88D,EAAWhoE,OACxBorF,EAAYpjB,EAAW98D,KACnBkgF,EAAUprF,SACZm0D,EAAQi3B,EAAUnhF,MAAM,KACxBpC,EAAO0B,KAAK,CACVtB,IAAK4qF,EAAY1+B,EAAMz+B,SACvB1tB,MAAO6qF,EAAY1+B,EAAMnyD,KAAK,WAOpCspD,EAAqB,SAAUhsC,GACjCne,KAAKy4D,QAAQ55D,OAAS,EACtB+yF,EAAkB5xF,KAAKy4D,QAASt6C,IAG9B0zE,EAA0B,SAAUC,EAAQpmF,GAC9C,GAAIomF,EAASpmF,EAAU,MAAMyD,UAAU,yBAGrC4iF,EAA0BrM,GAA0B,SAAkBnyD,EAAQ0kC,GAChFhV,EAAiBjjD,KAAM,CACrBsD,KAAM2tF,EACNn4E,SAAU+3E,EAAYK,EAAuB39D,GAAQklC,SACrDR,KAAMA,MAEP,YAAY,WACb,IAAI3O,EAAQk3B,EAAyBxgF,MACjCi4D,EAAO3O,EAAM2O,KACbj/C,EAAOswC,EAAMxwC,SAAS/C,OACtBi9C,EAAQh6C,EAAKnS,MAGf,OAFGmS,EAAK7O,OACR6O,EAAKnS,MAAiB,SAAToxD,EAAkBjF,EAAMlsD,IAAe,WAATmxD,EAAoBjF,EAAMnsD,MAAQ,CAACmsD,EAAMlsD,IAAKksD,EAAMnsD,QACxFmS,KAKPg5E,EAA6B,WAC/B1vC,EAAWtiD,KAAMgyF,EAA4BhB,GAC7C,IAGIva,EAAgB39D,EAAU/C,EAAMiD,EAAMi5E,EAAeC,EAAWzS,EAAOp4B,EAAQvgD,EAH/E6zB,EAAOv7B,UAAUP,OAAS,EAAIO,UAAU,QAAKN,EAC7CF,EAAOoB,KACPy4D,EAAU,GAUd,GAPAxV,EAAiBrkD,EAAM,CACrB0E,KAAM0tF,EACNv4B,QAASA,EACTrO,UAAW,aACXD,mBAAoBA,SAGTrrD,IAAT67B,EACF,GAAIx6B,EAASw6B,GAEX,GADA87C,EAAiBn+D,EAAkBqiB,GACL,oBAAnB87C,EAA+B,CACxC39D,EAAW29D,EAAe13E,KAAK47B,GAC/B5kB,EAAO+C,EAAS/C,KAChB,QAASiD,EAAOjD,EAAKhX,KAAK+Z,IAAW3O,KAAM,CAGzC,GAFA8nF,EAAgBpB,EAAY/oF,EAASkR,EAAKnS,QAC1CqrF,EAAYD,EAAcl8E,MAEvB0pE,EAAQyS,EAAUnzF,KAAKkzF,IAAgB9nF,OACvCk9C,EAAS6qC,EAAUnzF,KAAKkzF,IAAgB9nF,OACxC+nF,EAAUnzF,KAAKkzF,GAAe9nF,KAC/B,MAAMgF,UAAU,mCAClBspD,EAAQrwD,KAAK,CAAEtB,IAAK24E,EAAM54E,MAAQ,GAAIA,MAAOwgD,EAAOxgD,MAAQ,WAEzD,IAAKC,KAAO6zB,EAAUnY,EAAOmY,EAAM7zB,IAAM2xD,EAAQrwD,KAAK,CAAEtB,IAAKA,EAAKD,MAAO8zB,EAAK7zB,GAAO,UAE5F8qF,EAAkBn5B,EAAyB,kBAAT99B,EAAuC,MAAnBA,EAAK1X,OAAO,GAAa0X,EAAKv6B,MAAM,GAAKu6B,EAAOA,EAAO,KAK/Gw3D,EAA2BH,EAA2B9wF,UAE1Dw+E,EAAYyS,EAA0B,CAGpC97E,OAAQ,SAAgBjU,EAAMyE,GAC5BgrF,EAAwBzyF,UAAUP,OAAQ,GAC1C,IAAIyqD,EAAQ4nC,EAAuBlxF,MACnCspD,EAAMmP,QAAQrwD,KAAK,CAAEtB,IAAK1E,EAAO,GAAIyE,MAAOA,EAAQ,KACpDyiD,EAAMc,aAIR,OAAU,SAAUhoD,GAClByvF,EAAwBzyF,UAAUP,OAAQ,GAC1C,IAAIyqD,EAAQ4nC,EAAuBlxF,MAC/By4D,EAAUnP,EAAMmP,QAChB3xD,EAAM1E,EAAO,GACb2H,EAAQ,EACZ,MAAOA,EAAQ0uD,EAAQ55D,OACjB45D,EAAQ1uD,GAAOjD,MAAQA,EAAK2xD,EAAQl2C,OAAOxY,EAAO,GACjDA,IAEPu/C,EAAMc,aAIRhkD,IAAK,SAAahE,GAChByvF,EAAwBzyF,UAAUP,OAAQ,GAI1C,IAHA,IAAI45D,EAAUy4B,EAAuBlxF,MAAMy4D,QACvC3xD,EAAM1E,EAAO,GACb2H,EAAQ,EACLA,EAAQ0uD,EAAQ55D,OAAQkL,IAC7B,GAAI0uD,EAAQ1uD,GAAOjD,MAAQA,EAAK,OAAO2xD,EAAQ1uD,GAAOlD,MAExD,OAAO,MAITurF,OAAQ,SAAgBhwF,GACtByvF,EAAwBzyF,UAAUP,OAAQ,GAK1C,IAJA,IAAI45D,EAAUy4B,EAAuBlxF,MAAMy4D,QACvC3xD,EAAM1E,EAAO,GACbsE,EAAS,GACTqD,EAAQ,EACLA,EAAQ0uD,EAAQ55D,OAAQkL,IACzB0uD,EAAQ1uD,GAAOjD,MAAQA,GAAKJ,EAAO0B,KAAKqwD,EAAQ1uD,GAAOlD,OAE7D,OAAOH,GAIT/D,IAAK,SAAaP,GAChByvF,EAAwBzyF,UAAUP,OAAQ,GAC1C,IAAI45D,EAAUy4B,EAAuBlxF,MAAMy4D,QACvC3xD,EAAM1E,EAAO,GACb2H,EAAQ,EACZ,MAAOA,EAAQ0uD,EAAQ55D,OACrB,GAAI45D,EAAQ1uD,KAASjD,MAAQA,EAAK,OAAO,EAE3C,OAAO,GAIT2hB,IAAK,SAAarmB,EAAMyE,GACtBgrF,EAAwBzyF,UAAUP,OAAQ,GAQ1C,IAPA,IAMIm0D,EANA1J,EAAQ4nC,EAAuBlxF,MAC/By4D,EAAUnP,EAAMmP,QAChB8b,GAAQ,EACRztE,EAAM1E,EAAO,GACb2I,EAAMlE,EAAQ,GACdkD,EAAQ,EAELA,EAAQ0uD,EAAQ55D,OAAQkL,IAC7BipD,EAAQyF,EAAQ1uD,GACZipD,EAAMlsD,MAAQA,IACZytE,EAAO9b,EAAQl2C,OAAOxY,IAAS,IAEjCwqE,GAAQ,EACRvhB,EAAMnsD,MAAQkE,IAIfwpE,GAAO9b,EAAQrwD,KAAK,CAAEtB,IAAKA,EAAKD,MAAOkE,IAC5Cu+C,EAAMc,aAIRpjD,KAAM,WACJ,IAIIgsD,EAAOq/B,EAAcC,EAJrBhpC,EAAQ4nC,EAAuBlxF,MAC/By4D,EAAUnP,EAAMmP,QAEhBr4D,EAAQq4D,EAAQr4D,QAGpB,IADAq4D,EAAQ55D,OAAS,EACZyzF,EAAa,EAAGA,EAAalyF,EAAMvB,OAAQyzF,IAAc,CAE5D,IADAt/B,EAAQ5yD,EAAMkyF,GACTD,EAAe,EAAGA,EAAeC,EAAYD,IAChD,GAAI55B,EAAQ45B,GAAcvrF,IAAMksD,EAAMlsD,IAAK,CACzC2xD,EAAQl2C,OAAO8vE,EAAc,EAAGr/B,GAChC,MAGAq/B,IAAiBC,GAAY75B,EAAQrwD,KAAK4qD,GAEhD1J,EAAMc,aAGRxjD,QAAS,SAAiBq2B,GACxB,IAGI+1B,EAHAyF,EAAUy4B,EAAuBlxF,MAAMy4D,QACvCz3D,EAAgBF,EAAKm8B,EAAU79B,UAAUP,OAAS,EAAIO,UAAU,QAAKN,EAAW,GAChFiL,EAAQ,EAEZ,MAAOA,EAAQ0uD,EAAQ55D,OACrBm0D,EAAQyF,EAAQ1uD,KAChB/I,EAAcgyD,EAAMnsD,MAAOmsD,EAAMlsD,IAAK9G,OAI1C6P,KAAM,WACJ,OAAO,IAAIkiF,EAAwB/xF,KAAM,SAG3C+F,OAAQ,WACN,OAAO,IAAIgsF,EAAwB/xF,KAAM,WAG3Cy4D,QAAS,WACP,OAAO,IAAIs5B,EAAwB/xF,KAAM,aAE1C,CAAEumB,YAAY,IAGjBnN,EAAS+4E,EAA0B7rF,EAAU6rF,EAAyB15B,SAItEr/C,EAAS+4E,EAA0B,YAAY,WAC7C,IAGIn/B,EAHAyF,EAAUy4B,EAAuBlxF,MAAMy4D,QACvC/xD,EAAS,GACTqD,EAAQ,EAEZ,MAAOA,EAAQ0uD,EAAQ55D,OACrBm0D,EAAQyF,EAAQ1uD,KAChBrD,EAAO0B,KAAKupF,EAAU3+B,EAAMlsD,KAAO,IAAM6qF,EAAU3+B,EAAMnsD,QACzD,OAAOH,EAAO7F,KAAK,OACpB,CAAE0lB,YAAY,IAEjBo8B,EAAeqvC,EAA4BhB,GAE3C3xF,EAAE,CAAE+P,QAAQ,EAAMP,QAASwzC,GAAkB,CAC3Cn7C,gBAAiB8qF,IAKd3vC,GAAmC,mBAAVyuC,GAA0C,mBAAXC,GAC3D1xF,EAAE,CAAE+P,QAAQ,EAAMmX,YAAY,EAAM1X,QAAQ,GAAQ,CAClD0jF,MAAO,SAAeluC,GACpB,IACI1pB,EAAM0mB,EAAMmxC,EADZ/xF,EAAO,CAAC4jD,GAkBV,OAhBEjlD,UAAUP,OAAS,IACrB87B,EAAOv7B,UAAU,GACbe,EAASw6B,KACX0mB,EAAO1mB,EAAK0mB,KACRryC,EAAQqyC,KAAU2vC,IACpBwB,EAAU73D,EAAK63D,QAAU,IAAIzB,EAAQp2D,EAAK63D,SAAW,IAAIzB,EACpDyB,EAAQ7vF,IAAI,iBACf6vF,EAAQ/pE,IAAI,eAAgB,mDAE9BkS,EAAOzY,EAAOyY,EAAM,CAClB0mB,KAAM5+C,EAAyB,EAAGhE,OAAO4iD,IACzCmxC,QAAS/vF,EAAyB,EAAG+vF,OAI3C/xF,EAAK2H,KAAKuyB,IACHm2D,EAAO3xF,MAAMa,KAAMS,MAKlClC,EAAOC,QAAU,CACf0I,gBAAiB8qF,EACjBhvC,SAAUkuC,I,kCCxVZ,IAAI7xF,EAAI,EAAQ,QACZ6V,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QAIrC9V,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMiP,OAAQsG,EAAuB,SAAW,CAC3EqB,KAAM,SAAcjQ,GAClB,OAAO2O,EAAWlV,KAAM,IAAK,OAAQuG,O,oCCRzC,IAAIlH,EAAI,EAAQ,QACZ4G,EAAQ,EAAQ,QAChBiX,EAAU,EAAQ,QAClB/c,EAAW,EAAQ,QACnBZ,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnB42E,EAAiB,EAAQ,QACzB12E,EAAqB,EAAQ,QAC7Bw2E,EAA+B,EAAQ,QACvC93E,EAAkB,EAAQ,QAC1BqZ,EAAa,EAAQ,QAErBg7E,EAAuBr0F,EAAgB,sBACvCs0F,EAAmB,iBACnBC,EAAiC,iCAKjCC,EAA+Bn7E,GAAc,KAAOxR,GAAM,WAC5D,IAAI2R,EAAQ,GAEZ,OADAA,EAAM66E,IAAwB,EACvB76E,EAAM3W,SAAS,KAAO2W,KAG3Bi7E,EAAkB3c,EAA6B,UAE/C4c,EAAqB,SAAU/yF,GACjC,IAAKI,EAASJ,GAAI,OAAO,EACzB,IAAIgzF,EAAahzF,EAAE0yF,GACnB,YAAsB3zF,IAAfi0F,IAA6BA,EAAa71E,EAAQnd,IAGvD0Z,GAAUm5E,IAAiCC,EAK/CxzF,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,OAAQ4K,GAAU,CAClDxY,OAAQ,SAAgBqyC,GACtB,IAGI3yC,EAAGy9D,EAAGv/D,EAAQ4sB,EAAKunE,EAHnBjzF,EAAIR,EAASS,MACbE,EAAIR,EAAmBK,EAAG,GAC1BmC,EAAI,EAER,IAAKvB,GAAK,EAAG9B,EAASO,UAAUP,OAAQ8B,EAAI9B,EAAQ8B,IAElD,GADAqyF,GAAW,IAAPryF,EAAWZ,EAAIX,UAAUuB,GACzBmyF,EAAmBE,GAAI,CAEzB,GADAvnE,EAAMjsB,EAASwzF,EAAEn0F,QACbqD,EAAIupB,EAAMinE,EAAkB,MAAMvjF,UAAUwjF,GAChD,IAAKv0B,EAAI,EAAGA,EAAI3yC,EAAK2yC,IAAKl8D,IAASk8D,KAAK40B,GAAG5c,EAAel2E,EAAGgC,EAAG8wF,EAAE50B,QAC7D,CACL,GAAIl8D,GAAKwwF,EAAkB,MAAMvjF,UAAUwjF,GAC3Cvc,EAAel2E,EAAGgC,IAAK8wF,GAI3B,OADA9yF,EAAErB,OAASqD,EACJhC,M,oCCzDX,kIAGM+yF,EAAe,eAArB,mBACMC,EAAgB,eAAtB,oBACMC,EAAY,eAAlB,gBACMC,EAAa,eAAnB,iBAYI,Q,uBClBJ,IAAItrF,EAAW,EAAQ,QACnBwQ,EAAoB,EAAQ,QAEhC/Z,EAAOC,QAAU,SAAUoD,GACzB,IAAI60E,EAAiBn+D,EAAkB1W,GACvC,GAA6B,mBAAlB60E,EACT,MAAMtnE,UAAU1Q,OAAOmD,GAAM,oBAC7B,OAAOkG,EAAS2uE,EAAe13E,KAAK6C,M,uBCPxC,IAAIkG,EAAW,EAAQ,QAGvBvJ,EAAOC,QAAU,SAAUsa,EAAUna,EAAIkI,EAAOg/E,GAC9C,IACE,OAAOA,EAAUlnF,EAAGmJ,EAASjB,GAAO,GAAIA,EAAM,IAAMlI,EAAGkI,GAEvD,MAAOhF,GACP,IAAIwxF,EAAev6E,EAAS,UAE5B,WADqBha,IAAjBu0F,GAA4BvrF,EAASurF,EAAat0F,KAAK+Z,IACrDjX,K,uBCVV,IAAIU,EAAc,EAAQ,QACtBK,EAAiB,EAAQ,QACzBkF,EAAW,EAAQ,QACnBpF,EAAc,EAAQ,QAEtB4wF,EAAuB7xF,OAAO0E,eAIlC3H,EAAQ6C,EAAIkB,EAAc+wF,EAAuB,SAAwBvzF,EAAGgD,EAAG47D,GAI7E,GAHA72D,EAAS/H,GACTgD,EAAIL,EAAYK,GAAG,GACnB+E,EAAS62D,GACL/7D,EAAgB,IAClB,OAAO0wF,EAAqBvzF,EAAGgD,EAAG47D,GAClC,MAAO98D,IACT,GAAI,QAAS88D,GAAc,QAASA,EAAY,MAAMxvD,UAAU,2BAEhE,MADI,UAAWwvD,IAAY5+D,EAAEgD,GAAK47D,EAAW93D,OACtC9G,I,oCClBT,gBAGA,e,oCCHA,4BAkBe,8BAAsC,CACnDqC,KADmD,WAGnDgB,MAAO,CACLmwF,MAAOznF,SAGThI,KAAM,iBAAO,CACXk2E,UAAU,IAGZruE,SAAU,CACRs4E,WADQ,WAEN,OAAOjkF,KAAKg6E,UAAYh6E,KAAjB,OAA+BA,KAAtC,WAIJwR,MAAO,CACLN,SADK,WAEHlR,KAAA,cAIJyR,QAvBmD,WAyB7C,SAAUzR,KAAd,QACE,eAAQ,OAAR,OAIJiM,QAAS,CACPmH,gBADO,SACQ,GACb,OAAQpT,KAAKikF,YAAN,EAA+B9xE,IAAY,CAACnS,KAAnD,uB,6DCjDN,IAAI+3D,EAAoB,EAAQ,QAA+BA,kBAC3D71C,EAAS,EAAQ,QACjBzf,EAA2B,EAAQ,QACnCkgD,EAAiB,EAAQ,QACzBwU,EAAY,EAAQ,QAEpBO,EAAa,WAAc,OAAO13D,MAEtCzB,EAAOC,QAAU,SAAUunF,EAAqBnuB,EAAM7hD,GACpD,IAAI1X,EAAgBu5D,EAAO,YAI3B,OAHAmuB,EAAoB7kF,UAAYghB,EAAO61C,EAAmB,CAAEhiD,KAAMtT,EAAyB,EAAGsT,KAC9F4sC,EAAeojC,EAAqB1nF,GAAe,GAAO,GAC1D84D,EAAU94D,GAAiBq5D,EACpBquB,I,oCCZT,IAAI9/E,EAAQ,EAAQ,QAIpB,SAASutF,EAAG73C,EAAGt6C,GACb,OAAOoH,OAAOkzC,EAAGt6C,GAGnB7C,EAAQ6xF,cAAgBpqF,GAAM,WAE5B,IAAIkzD,EAAKq6B,EAAG,IAAK,KAEjB,OADAr6B,EAAG/vD,UAAY,EACW,MAAnB+vD,EAAGjqD,KAAK,WAGjB1Q,EAAQ8xF,aAAerqF,GAAM,WAE3B,IAAIkzD,EAAKq6B,EAAG,KAAM,MAElB,OADAr6B,EAAG/vD,UAAY,EACU,MAAlB+vD,EAAGjqD,KAAK,W,kCCpBjB,IAAI7P,EAAI,EAAQ,QACZi/E,EAAgB,EAAQ,QACxBn9E,EAAkB,EAAQ,QAC1BqN,EAAsB,EAAQ,QAE9BilF,EAAa,GAAG5yF,KAEhB6yF,EAAcpV,GAAiB78E,OAC/BiN,EAAgBF,EAAoB,OAAQ,KAIhDnP,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,OAAQ6kF,IAAgBhlF,GAAiB,CACzE7N,KAAM,SAAckI,GAClB,OAAO0qF,EAAW10F,KAAKoC,EAAgBnB,WAAqBlB,IAAdiK,EAA0B,IAAMA,O,wGCZnE,qBAAW,CACxB3G,KADwB,YAGxBgB,MAAO,CACLib,QAAS,CAACvS,QADL,QAELqpE,KAAMrpE,SAGRH,SAAU,CACR8uE,eADQ,WAEN,IAAMkZ,EAAN,GACMt1E,EAAU,kBAAOre,KAAP,QACZvB,OAAOuB,KADK,UAAhB,IAEIA,KAAKqe,QAET,GAAIre,KAAJ,KACE2zF,EAAA,uBACK,qBAAWt1E,EAAsB,CACtC,IADsC,EAChCtY,EAASsY,EAAA,MAAf,KADsC,iBAGtC,GAHsC,IAGtC,2BAA4B,KAA5B,EAA4B,QAC1Bs1E,EAAA,4BAJoC,oCAM7Bt1E,GACTs1E,EAAA,gBAGF,OAAOA,EAAA,2BACJA,EAAA,KAAD,MAAuB,GADzB,Q,4DClBN,SAASC,IACP,SAGF,SAAS71C,EAAT,OACE,IAAMjqC,EAAU,oBAAOkqC,EAAP,MAAsCA,EAAtC,MAAsDA,EAAA,MAAtE,QAEM9sC,EAAY,0BAAO8sC,EAAP,QAAqCA,EAAA,MAAtC,kBAHiE,EASlF,GAAKvzC,IAAL,IAAUyG,EAAA,MAOL,cAAezG,IAAMA,EAAtB,WACD,gBAAiBA,IAAMA,EAD1B,cAMA,IAAMopF,GAAa,0BAAO71C,EAAP,QAAqCA,EAAA,MAAtC,SAAiE,iBAtBD,OAwBlF61C,EAAA,KAxBkF,IA+BjFA,EAAA,MAAc,SAAA5vF,GAAE,OAAIA,EAAA,SAAYwG,EAAjC,YAAuDkK,YAAW,WAChEzD,EAAA,OAA0B4C,EAA1B,KADF,IAKK,IAAMxD,EAAe,CAM1Bob,SAN0B,SAMlB,KACN,IAAM1L,EAAW,SAAAvV,GAAD,OAAcszC,EAAUtzC,EAAD,EADgB,IAKjDkkE,EAAMl8D,SAAA,6BACVA,SANqD,KAOvDk8D,EAAA,+BACA1qE,EAAA,iBAGF6N,OAjB0B,SAiBpB,GACJ,GAAK7N,EAAL,eAEA,IAAM0qE,EAAMl8D,SAAA,6BACVA,SAJmB,KAKrBk8D,GAAOA,EAAA,4BAAiC1qE,EAAjC,eAAP,UACOA,EAAP,iBAIJ,U,kCC9EA,IAAIiZ,EAAU,EAAQ,QAClB1d,EAAW,EAAQ,QACnBsB,EAAO,EAAQ,QAIfxB,EAAmB,SAAUK,EAAQ6rB,EAAU1hB,EAAQ7J,EAAW0jB,EAAOmwE,EAAOC,EAAQC,GAC1F,IAGI9uB,EAHA+uB,EAActwE,EACduwE,EAAc,EACdC,IAAQJ,GAASjzF,EAAKizF,EAAQC,EAAS,GAG3C,MAAOE,EAAcj0F,EAAW,CAC9B,GAAIi0F,KAAepqF,EAAQ,CAGzB,GAFAo7D,EAAUivB,EAAQA,EAAMrqF,EAAOoqF,GAAcA,EAAa1oE,GAAY1hB,EAAOoqF,GAEzEJ,EAAQ,GAAK52E,EAAQgoD,GACvB+uB,EAAc30F,EAAiBK,EAAQ6rB,EAAU05C,EAAS1lE,EAAS0lE,EAAQrmE,QAASo1F,EAAaH,EAAQ,GAAK,MACzG,CACL,GAAIG,GAAe,iBAAkB,MAAM9kF,UAAU,sCACrDxP,EAAOs0F,GAAe/uB,EAGxB+uB,IAEFC,IAEF,OAAOD,GAGT11F,EAAOC,QAAUc,G,kCC9BjB,IAAID,EAAI,EAAQ,QACZojE,EAAkB,EAAQ,QAC1BhjE,EAAY,EAAQ,QACpBD,EAAW,EAAQ,QACnBD,EAAW,EAAQ,QACnBG,EAAqB,EAAQ,QAC7B02E,EAAiB,EAAQ,QACzBF,EAA+B,EAAQ,QACvCznE,EAA0B,EAAQ,QAElC0nE,EAAsBD,EAA6B,UACnDvnE,EAAiBF,EAAwB,SAAU,CAAE2lF,WAAW,EAAMC,EAAG,EAAGzlF,EAAG,IAE/EsK,EAAM5Q,KAAK4Q,IACX7Q,EAAMC,KAAKD,IACXqqF,EAAmB,iBACnB4B,EAAkC,kCAKtCj1F,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,QAASsnE,IAAwBxnE,GAAkB,CACnF4T,OAAQ,SAAgBoB,EAAO4wE,GAC7B,IAIIC,EAAaC,EAAmBv0F,EAAGk+D,EAAG97D,EAAMmU,EAJ5C1W,EAAIR,EAASS,MACbyrB,EAAMjsB,EAASO,EAAElB,QACjB61F,EAAcjyB,EAAgB9+C,EAAO8H,GACrC6qD,EAAkBl3E,UAAUP,OAWhC,GATwB,IAApBy3E,EACFke,EAAcC,EAAoB,EACL,IAApBne,GACTke,EAAc,EACdC,EAAoBhpE,EAAMipE,IAE1BF,EAAcle,EAAkB,EAChCme,EAAoBpsF,EAAI6Q,EAAIzZ,EAAU80F,GAAc,GAAI9oE,EAAMipE,IAE5DjpE,EAAM+oE,EAAcC,EAAoB/B,EAC1C,MAAMvjF,UAAUmlF,GAGlB,IADAp0F,EAAIR,EAAmBK,EAAG00F,GACrBr2B,EAAI,EAAGA,EAAIq2B,EAAmBr2B,IACjC97D,EAAOoyF,EAAct2B,EACjB97D,KAAQvC,GAAGq2E,EAAel2E,EAAGk+D,EAAGr+D,EAAEuC,IAGxC,GADApC,EAAErB,OAAS41F,EACPD,EAAcC,EAAmB,CACnC,IAAKr2B,EAAIs2B,EAAat2B,EAAI3yC,EAAMgpE,EAAmBr2B,IACjD97D,EAAO87D,EAAIq2B,EACXh+E,EAAK2nD,EAAIo2B,EACLlyF,KAAQvC,EAAGA,EAAE0W,GAAM1W,EAAEuC,UACbvC,EAAE0W,GAEhB,IAAK2nD,EAAI3yC,EAAK2yC,EAAI3yC,EAAMgpE,EAAoBD,EAAap2B,WAAYr+D,EAAEq+D,EAAI,QACtE,GAAIo2B,EAAcC,EACvB,IAAKr2B,EAAI3yC,EAAMgpE,EAAmBr2B,EAAIs2B,EAAat2B,IACjD97D,EAAO87D,EAAIq2B,EAAoB,EAC/Bh+E,EAAK2nD,EAAIo2B,EAAc,EACnBlyF,KAAQvC,EAAGA,EAAE0W,GAAM1W,EAAEuC,UACbvC,EAAE0W,GAGlB,IAAK2nD,EAAI,EAAGA,EAAIo2B,EAAap2B,IAC3Br+D,EAAEq+D,EAAIs2B,GAAet1F,UAAUg/D,EAAI,GAGrC,OADAr+D,EAAElB,OAAS4sB,EAAMgpE,EAAoBD,EAC9Bt0F,M,8DC1DL,aAEY,IADhByvB,EACgB,uDAFZ,QAEJ2D,EAAgB,uDAFZ,SAIJ,OAAO,cAAW,CAChBlxB,KADgB,YAGhBg6B,MAAO,CACLzM,OACA2D,SAGFlwB,MAAO,kBACL,EAAQ,CACNsI,UAAU,IAId5H,KAdgB,WAed,MAAO,CACL0a,kBAAmBxe,KAAK2vB,KAI5BhkB,SAAU,CACRqiE,cAAe,CACb5nE,IADa,WAEX,OAAOpG,KAAP,mBAEFyoB,IAJa,SAIV,GACG1d,IAAQ/K,KAAZ,oBAEAA,KAAA,oBAEAA,KAAA,eAKNwR,MAAO,kBACL,GADG,SACH,GACExR,KAAA,yBAOR,IAAM20F,EAAYj2D,IAElB,U,kCC1DA,IAAIr/B,EAAI,EAAQ,QACZ+P,EAAS,EAAQ,QACjBuG,EAAa,EAAQ,QACrBtP,EAAU,EAAQ,QAClB9D,EAAc,EAAQ,QACtBqyF,EAAgB,EAAQ,QACxBC,EAAoB,EAAQ,QAC5B5uF,EAAQ,EAAQ,QAChBtD,EAAM,EAAQ,QACdua,EAAU,EAAQ,QAClB/c,EAAW,EAAQ,QACnB2H,EAAW,EAAQ,QACnBvI,EAAW,EAAQ,QACnB4B,EAAkB,EAAQ,QAC1BuB,EAAc,EAAQ,QACtBD,EAA2B,EAAQ,QACnCqyF,EAAqB,EAAQ,QAC7B/oB,EAAa,EAAQ,QACrBkO,EAA4B,EAAQ,QACpC8a,EAA8B,EAAQ,QACtC7a,EAA8B,EAAQ,QACtC8a,EAAiC,EAAQ,QACzC55E,EAAuB,EAAQ,QAC/B5Y,EAA6B,EAAQ,QACrC8M,EAA8B,EAAQ,QACtC8J,EAAW,EAAQ,QACnBwkD,EAAS,EAAQ,QACjBgjB,EAAY,EAAQ,QACpBxmE,EAAa,EAAQ,QACrBwO,EAAM,EAAQ,QACdxqB,EAAkB,EAAQ,QAC1BklF,EAA+B,EAAQ,QACvC2R,EAAwB,EAAQ,QAChCtyC,EAAiB,EAAQ,QACzBE,EAAsB,EAAQ,QAC9B9tC,EAAW,EAAQ,QAAgCnO,QAEnDsuF,EAAStU,EAAU,UACnBpnB,EAAS,SACTyB,EAAY,YACZk6B,EAAe/2F,EAAgB,eAC/B6kD,EAAmBJ,EAAoBp6B,IACvC4mD,EAAmBxsB,EAAoBM,UAAUqW,GACjD47B,EAAkB3zF,OAAOw5D,GACzBo6B,EAAUjmF,EAAOiO,OACjBi4E,EAAa3/E,EAAW,OAAQ,aAChC9S,EAAiCmyF,EAA+B3zF,EAChEiyF,EAAuBl4E,EAAqB/Z,EAC5CD,EAA4B2zF,EAA4B1zF,EACxDk0F,EAA6B/yF,EAA2BnB,EACxDm0F,EAAa53B,EAAO,WACpB63B,EAAyB73B,EAAO,cAChC83B,GAAyB93B,EAAO,6BAChC+3B,GAAyB/3B,EAAO,6BAChCg4B,GAAwBh4B,EAAO,OAC/Bi4B,GAAUzmF,EAAOymF,QAEjBC,IAAcD,KAAYA,GAAQ56B,KAAe46B,GAAQ56B,GAAW86B,UAGpEC,GAAsBzzF,GAAe0D,GAAM,WAC7C,OAES,GAFF6uF,EAAmBxB,EAAqB,GAAI,IAAK,CACtDltF,IAAK,WAAc,OAAOktF,EAAqBtzF,KAAM,IAAK,CAAE6G,MAAO,IAAK7H,MACtEA,KACD,SAAUe,EAAGgD,EAAG47D,GACnB,IAAIs3B,EAA4BpzF,EAA+BuyF,EAAiBryF,GAC5EkzF,UAAkCb,EAAgBryF,GACtDuwF,EAAqBvzF,EAAGgD,EAAG47D,GACvBs3B,GAA6Bl2F,IAAMq1F,GACrC9B,EAAqB8B,EAAiBryF,EAAGkzF,IAEzC3C,EAEA4C,GAAO,SAAUtyF,EAAKuyF,GACxB,IAAI39D,EAASg9D,EAAW5xF,GAAOkxF,EAAmBO,EAAQp6B,IAO1D,OANAhY,EAAiBzqB,EAAQ,CACvBl1B,KAAMk2D,EACN51D,IAAKA,EACLuyF,YAAaA,IAEV5zF,IAAai2B,EAAO29D,YAAcA,GAChC39D,GAGL49D,GAAWvB,EAAoB,SAAUjzF,GAC3C,MAAoB,iBAANA,GACZ,SAAUA,GACZ,OAAOH,OAAOG,aAAeyzF,GAG3BgB,GAAkB,SAAwBt2F,EAAGgD,EAAG47D,GAC9C5+D,IAAMq1F,GAAiBiB,GAAgBZ,EAAwB1yF,EAAG47D,GACtE72D,EAAS/H,GACT,IAAI+G,EAAMpE,EAAYK,GAAG,GAEzB,OADA+E,EAAS62D,GACLh8D,EAAI6yF,EAAY1uF,IACb63D,EAAWp4C,YAIV5jB,EAAI5C,EAAGm1F,IAAWn1F,EAAEm1F,GAAQpuF,KAAM/G,EAAEm1F,GAAQpuF,IAAO,GACvD63D,EAAam2B,EAAmBn2B,EAAY,CAAEp4C,WAAY9jB,EAAyB,GAAG,OAJjFE,EAAI5C,EAAGm1F,IAAS5B,EAAqBvzF,EAAGm1F,EAAQzyF,EAAyB,EAAG,KACjF1C,EAAEm1F,GAAQpuF,IAAO,GAIVkvF,GAAoBj2F,EAAG+G,EAAK63D,IAC9B20B,EAAqBvzF,EAAG+G,EAAK63D,IAGpC23B,GAAoB,SAA0Bv2F,EAAGi5D,GACnDlxD,EAAS/H,GACT,IAAIw2F,EAAap1F,EAAgB63D,GAC7BnpD,EAAOk8D,EAAWwqB,GAAYt1F,OAAOu1F,GAAuBD,IAIhE,OAHAxhF,EAASlF,GAAM,SAAU/I,GAClBvE,IAAek0F,GAAsB13F,KAAKw3F,EAAYzvF,IAAMuvF,GAAgBt2F,EAAG+G,EAAKyvF,EAAWzvF,OAE/F/G,GAGL22F,GAAU,SAAgB32F,EAAGi5D,GAC/B,YAAsBl6D,IAAfk6D,EAA2B87B,EAAmB/0F,GAAKu2F,GAAkBxB,EAAmB/0F,GAAIi5D,IAGjGy9B,GAAwB,SAA8BE,GACxD,IAAI5zF,EAAIL,EAAYi0F,GAAG,GACnBpwE,EAAagvE,EAA2Bx2F,KAAKiB,KAAM+C,GACvD,QAAI/C,OAASo1F,GAAmBzyF,EAAI6yF,EAAYzyF,KAAOJ,EAAI8yF,EAAwB1yF,QAC5EwjB,IAAe5jB,EAAI3C,KAAM+C,KAAOJ,EAAI6yF,EAAYzyF,IAAMJ,EAAI3C,KAAMk1F,IAAWl1F,KAAKk1F,GAAQnyF,KAAKwjB,IAGlGqwE,GAA4B,SAAkC72F,EAAGgD,GACnE,IAAInB,EAAKT,EAAgBpB,GACrB+G,EAAMpE,EAAYK,GAAG,GACzB,GAAInB,IAAOwzF,IAAmBzyF,EAAI6yF,EAAY1uF,IAASnE,EAAI8yF,EAAwB3uF,GAAnF,CACA,IAAI8S,EAAa/W,EAA+BjB,EAAIkF,GAIpD,OAHI8S,IAAcjX,EAAI6yF,EAAY1uF,IAAUnE,EAAIf,EAAIszF,IAAWtzF,EAAGszF,GAAQpuF,KACxE8S,EAAW2M,YAAa,GAEnB3M,IAGLi9E,GAAuB,SAA6B92F,GACtD,IAAI4jE,EAAQviE,EAA0BD,EAAgBpB,IAClD2G,EAAS,GAIb,OAHAqO,EAAS4uD,GAAO,SAAU78D,GACnBnE,EAAI6yF,EAAY1uF,IAASnE,EAAIyX,EAAYtT,IAAMJ,EAAO0B,KAAKtB,MAE3DJ,GAGL8vF,GAAyB,SAA+Bz2F,GAC1D,IAAI+2F,EAAsB/2F,IAAMq1F,EAC5BzxB,EAAQviE,EAA0B01F,EAAsBrB,EAAyBt0F,EAAgBpB,IACjG2G,EAAS,GAMb,OALAqO,EAAS4uD,GAAO,SAAU78D,IACpBnE,EAAI6yF,EAAY1uF,IAAUgwF,IAAuBn0F,EAAIyyF,EAAiBtuF,IACxEJ,EAAO0B,KAAKotF,EAAW1uF,OAGpBJ,GAkHT,GA7GKkuF,IACHS,EAAU,WACR,GAAIr1F,gBAAgBq1F,EAAS,MAAMlmF,UAAU,+BAC7C,IAAIgnF,EAAe/2F,UAAUP,aAA2BC,IAAjBM,UAAU,GAA+BX,OAAOW,UAAU,SAA7BN,EAChE8E,EAAMglB,EAAIutE,GACVjpE,EAAS,SAAUrmB,GACjB7G,OAASo1F,GAAiBloE,EAAOnuB,KAAK02F,EAAwB5uF,GAC9DlE,EAAI3C,KAAMk1F,IAAWvyF,EAAI3C,KAAKk1F,GAAStxF,KAAM5D,KAAKk1F,GAAQtxF,IAAO,GACrEoyF,GAAoBh2F,KAAM4D,EAAKnB,EAAyB,EAAGoE,KAG7D,OADItE,GAAeuzF,IAAYE,GAAoBZ,EAAiBxxF,EAAK,CAAE0X,cAAc,EAAMmN,IAAKyE,IAC7FgpE,GAAKtyF,EAAKuyF,IAGnB/8E,EAASi8E,EAAQp6B,GAAY,YAAY,WACvC,OAAOoU,EAAiBrvE,MAAM4D,OAGhCwV,EAASi8E,EAAS,iBAAiB,SAAUc,GAC3C,OAAOD,GAAKttE,EAAIutE,GAAcA,MAGhC3zF,EAA2BnB,EAAIo1F,GAC/Br7E,EAAqB/Z,EAAIg1F,GACzBrB,EAA+B3zF,EAAIu1F,GACnC3c,EAA0B54E,EAAI0zF,EAA4B1zF,EAAIw1F,GAC9D3c,EAA4B74E,EAAIm1F,GAEhClT,EAA6BjiF,EAAI,SAAUe,GACzC,OAAO8zF,GAAK93F,EAAgBgE,GAAOA,IAGjCG,IAEF+wF,EAAqB+B,EAAQp6B,GAAY,cAAe,CACtD3/C,cAAc,EACdlV,IAAK,WACH,OAAOipE,EAAiBrvE,MAAMm2F,eAG7B9vF,GACH+S,EAASg8E,EAAiB,uBAAwBqB,GAAuB,CAAEt7E,QAAQ,MAKzF9b,EAAE,CAAE+P,QAAQ,EAAM8mF,MAAM,EAAMrnF,QAAS+lF,EAAe36E,MAAO26E,GAAiB,CAC5Ev3E,OAAQg4E,IAGVtgF,EAASg3D,EAAW6pB,KAAwB,SAAUxzF,GACpD6yF,EAAsB7yF,MAGxB/C,EAAE,CAAEM,OAAQ65D,EAAQxzD,MAAM,EAAM6I,QAAS+lF,GAAiB,CAGxD,IAAO,SAAU9tF,GACf,IAAImC,EAASxK,OAAOqI,GACpB,GAAInE,EAAI+yF,GAAwBzsF,GAAS,OAAOysF,GAAuBzsF,GACvE,IAAIuvB,EAAS68D,EAAQpsF,GAGrB,OAFAysF,GAAuBzsF,GAAUuvB,EACjCm9D,GAAuBn9D,GAAUvvB,EAC1BuvB,GAITu+D,OAAQ,SAAgBvf,GACtB,IAAK4e,GAAS5e,GAAM,MAAMroE,UAAUqoE,EAAM,oBAC1C,GAAI70E,EAAIgzF,GAAwBne,GAAM,OAAOme,GAAuBne,IAEtEwf,UAAW,WAAclB,IAAa,GACtCmB,UAAW,WAAcnB,IAAa,KAGxCz2F,EAAE,CAAEM,OAAQ,SAAUqG,MAAM,EAAM6I,QAAS+lF,EAAe36E,MAAO1X,GAAe,CAG9E2f,OAAQw0E,GAGRvwF,eAAgBkwF,GAGhBxrE,iBAAkByrE,GAGlBxzF,yBAA0B8zF,KAG5Bv3F,EAAE,CAAEM,OAAQ,SAAUqG,MAAM,EAAM6I,QAAS+lF,GAAiB,CAG1DlzF,oBAAqBm1F,GAGrB5mF,sBAAuBumF,KAKzBn3F,EAAE,CAAEM,OAAQ,SAAUqG,MAAM,EAAM6I,OAAQ5I,GAAM,WAAci0E,EAA4B74E,EAAE,OAAU,CACpG4O,sBAAuB,SAA+BrO,GACpD,OAAOs4E,EAA4B74E,EAAE9B,EAASqC,OAM9C0zF,EAAY,CACd,IAAI4B,IAAyBtC,GAAiB3uF,GAAM,WAClD,IAAIuyB,EAAS68D,IAEb,MAA+B,UAAxBC,EAAW,CAAC98D,KAEe,MAA7B88D,EAAW,CAAEt2F,EAAGw5B,KAEc,MAA9B88D,EAAW7zF,OAAO+2B,OAGzBn5B,EAAE,CAAEM,OAAQ,OAAQqG,MAAM,EAAM6I,OAAQqoF,IAAyB,CAE/Dt1E,UAAW,SAAmBhgB,EAAIy1E,EAAUgQ,GAC1C,IAEI8P,EAFA12F,EAAO,CAACmB,GACRmI,EAAQ,EAEZ,MAAO3K,UAAUP,OAASkL,EAAOtJ,EAAK2H,KAAKhJ,UAAU2K,MAErD,GADAotF,EAAY9f,GACPl3E,EAASk3E,SAAoBv4E,IAAP8C,KAAoBw0F,GAASx0F,GAMxD,OALKsb,EAAQm6D,KAAWA,EAAW,SAAUvwE,EAAKD,GAEhD,GADwB,mBAAbswF,IAAyBtwF,EAAQswF,EAAUp4F,KAAKiB,KAAM8G,EAAKD,KACjEuvF,GAASvvF,GAAQ,OAAOA,IAE/BpG,EAAK,GAAK42E,EACHie,EAAWn2F,MAAM,KAAMsB,MAO/B40F,EAAQp6B,GAAWk6B,IACtB7lF,EAA4B+lF,EAAQp6B,GAAYk6B,EAAcE,EAAQp6B,GAAW8C,SAInFpb,EAAe0yC,EAAS77B,GAExBp/C,EAAW86E,IAAU,G,kICnTP,cAEZ,OAAO,cAAW,CAChB9yF,KAAM,KAAF,OADY,GAGhBe,YAHgB,EAKhBC,MAAO,CACL0lB,GADK,OAELllB,IAAK,CACHN,KADG,OAEHC,QAAS,QAIbI,OAbgB,SAaV,EAbU,GAaoB,IAAzB,EAAyB,EAAzB,QAAyB,EAAzB,KAAe2K,EAAU,EAAVA,SACxBxK,EAAA,YAAoB,UAAG1B,EAAH,YAAW0B,EAAA,aAAZ,IAAnB,OADkC,IAG1BkJ,EAAR,EAAQA,MACR,KAAW,CAETlJ,EAAA,SACA,IAAMsN,EAAU3P,OAAA,gBAA0B,SAAAqF,GAGxC,YAAIA,EAAgB,OAAO,EAE3B,IAAMD,EAAQmG,EALgC,GAS9C,OAAIlG,EAAA,WAAJ,UACEhD,EAAA,YACA,GAGK+C,GAAP,kBAAuBA,KAGrBuK,EAAJ,SAAoBtN,EAAA,wBAAwBsN,EAAA,KAAxB,OAQtB,OALIhO,EAAJ,KACEU,EAAA,SAAgBA,EAAA,UAAhB,GACAA,EAAA,YAAmBV,EAAnB,IAGKc,EAAEd,EAAD,MAAR,M,gBC1CS,6BAAyB,CACtChB,KADsC,cAEtCe,YAFsC,EAGtCC,MAAO,CACL0lB,GADK,OAELllB,IAAK,CACHN,KADG,OAEHC,QAAS,OAEX6zF,MAAO,CACL9zF,KADK,QAELC,SAAS,IAGbI,OAdsC,SAchC,EAdgC,GAcF,IAClC,EADS,EAAyB,EAAzB,QAAyB,EAAzB,KAAe2K,EAAU,EAAVA,SAEhBtB,EAAR,EAAQA,MA2BR,OA1BA,IAEElJ,EAAA,SACAsN,EAAU3P,OAAA,gBAA0B,SAAAqF,GAGlC,YAAIA,EAAgB,OAAO,EAE3B,IAAMD,EAAQmG,EAL0B,GASxC,OAAIlG,EAAA,WAAJ,UACEhD,EAAA,YACA,GAGK+C,GAAP,kBAAuBA,MAIvBzD,EAAJ,KACEU,EAAA,SAAgBA,EAAA,UAAhB,GACAA,EAAA,YAAmBV,EAAnB,IAGKc,EACLd,EADM,IAEN,OAAAe,EAAA,MAAUL,EAAM,CACdgJ,YADc,YAEdC,MAAO1K,MAAW,CAChB,mBAAoBe,EAAMg0F,QADrB,OAEGhmF,GAFH,MAJX,O,kCClDJ,IAAI/R,EAAI,EAAQ,QACZg4F,EAAS,EAAQ,QAAgC9yE,MACjD/V,EAAsB,EAAQ,QAC9BC,EAA0B,EAAQ,QAElCC,EAAgBF,EAAoB,SACpCG,EAAiBF,EAAwB,SAI7CpP,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,QAASH,IAAkBC,GAAkB,CAC7E4V,MAAO,SAAexV,GACpB,OAAOsoF,EAAOr3F,KAAM+O,EAAY3P,UAAUP,OAAS,EAAIO,UAAU,QAAKN,O,qBCb1E,IAAIO,EAAI,EAAQ,QACZiD,EAAO,EAAQ,QACf++E,EAA8B,EAAQ,QAEtCiW,GAAuBjW,GAA4B,SAAU1oE,GAC/DtW,MAAMC,KAAKqW,MAKbtZ,EAAE,CAAEM,OAAQ,QAASqG,MAAM,EAAM6I,OAAQyoF,GAAuB,CAC9Dh1F,KAAMA,K,kCCVR,IAAI2D,EAAQ,EAAQ,QAEpB1H,EAAOC,QAAU,SAAUmZ,EAAas/D,GACtC,IAAI1rD,EAAS,GAAG5T,GAChB,QAAS4T,GAAUtlB,GAAM,WAEvBslB,EAAOxsB,KAAK,KAAMk4E,GAAY,WAAc,MAAM,GAAM,Q,mBCP5D,IAAInb,EAAOxzD,KAAKwzD,KACZx6C,EAAQhZ,KAAKgZ,MAIjB/iB,EAAOC,QAAU,SAAUy4E,GACzB,OAAOn1D,MAAMm1D,GAAYA,GAAY,GAAKA,EAAW,EAAI31D,EAAQw6C,GAAMmb,K,4DCI1D,gBAAmB,CAChC70E,KADgC,SAGhCgB,MAAO,CACLQ,IAAK,CACHN,KADG,OAEHC,QAAS,SAIboI,SAAU,CACRuL,OADQ,WACF,MAGAlX,KAAKwf,SAFT,YAAM,EADF,EACE,MADF,EACE,MADF,EACE,QADF,EACE,SADF,EACE,cADF,EACE,OAC0CjU,EAF5C,EAE4CA,KAGhD,MAAO,CACLgsF,WAAY,GAAF,OAAKr3E,EADV,EACK,MACVs3E,aAAc,GAAF,OAFP,EAEO,MACZC,cAAe,GAAF,OAAK/wB,EAAA,EAHb,EAGQ,MACbgxB,YAAa,GAAF,OAAKnsF,EAAL,SAKjB5H,OAzBgC,SAyB1B,GACJ,IAAMG,EAAO,CACXgJ,YADW,SAEXa,MAAO3N,KAFI,OAGXyT,IAAK,QAGP,OAAOvP,EAAElE,KAAD,MAAiB,CACvBkE,EAAE,MAEA,CAAE4I,YAAa,gBACf9M,KAAKoM,OAJT,c,YClCW,gBAAa,CAC1BhK,KAD0B,SAG1BqP,QAH0B,WAIxB,eAAU,YAAa,SAAvB,OAGF9N,OAP0B,SAOpB,GAEJ,IAAMonB,EAAO,2BAAb,GAKA,OAHAA,EAAA,+BACAA,EAAA,iDAEO7mB,EAAE6mB,EAAD,IAAWA,EAAX,KAAsBA,EAA9B,c,kCCrBJ,IAAI1rB,EAAI,EAAQ,QACZgH,EAAU,EAAQ,QAClBsxF,EAAgB,EAAQ,QACxB1xF,EAAQ,EAAQ,QAChB0P,EAAa,EAAQ,QACrB5N,EAAqB,EAAQ,QAC7B6vF,EAAiB,EAAQ,QACzBx+E,EAAW,EAAQ,QAGnBy+E,IAAgBF,GAAiB1xF,GAAM,WACzC0xF,EAAcz2F,UAAU,WAAWnC,KAAK,CAAE0iB,KAAM,eAA+B,kBAKjFpiB,EAAE,CAAEM,OAAQ,UAAWC,OAAO,EAAMk4F,MAAM,EAAMjpF,OAAQgpF,GAAe,CACrE,QAAW,SAAUE,GACnB,IAAIx3F,EAAIwH,EAAmB/H,KAAM2V,EAAW,YACxCklD,EAAiC,mBAAbk9B,EACxB,OAAO/3F,KAAKyhB,KACVo5C,EAAa,SAAUv2D,GACrB,OAAOszF,EAAer3F,EAAGw3F,KAAat2E,MAAK,WAAc,OAAOnd,MAC9DyzF,EACJl9B,EAAa,SAAUpwD,GACrB,OAAOmtF,EAAer3F,EAAGw3F,KAAat2E,MAAK,WAAc,MAAMhX,MAC7DstF,MAML1xF,GAAmC,mBAAjBsxF,GAAgCA,EAAcz2F,UAAU,YAC7EkY,EAASu+E,EAAcz2F,UAAW,UAAWyU,EAAW,WAAWzU,UAAU,a,gKC7BhE,qBAAW,CACxBkB,KADwB,YAGxBgB,MAAO,CACL6a,MAAOxf,QAGTwN,QAAS,CACPyS,mBADO,SACW,GAA8C,IAApB5a,EAAoB,uDAA9C,GAChB,wBAAWA,EAAP,OAEF,eAAa,0BAFqB,MAIlC,GAEF,kBAAWA,EAAP,OAEF,eAAa,0BAFqB,MAIlC,IAEE,eAAJ,GACEA,EAAA,uCACKA,EADQ,OAAb,IAEE,6BAFW,GAGX,yBAAmBma,KAEZA,IACTna,EAAA,uCACKA,EADQ,OAAb,qBAEE,GAAS,KAIb,IAGF4R,aA9BO,SA8BK,GAA8C,IAApB5R,EAAoB,uDAA9C,GACV,qBAAWA,EAAP,MAIF,OAFA,eAAa,0BAFqB,MAIlC,EAEF,qBAAWA,EAAP,MAIF,OAFA,eAAa,0BAFqB,MAIlC,EAEF,GAAI,eAAJ,GACEA,EAAA,uCACKA,EADQ,OAAb,IAEEma,MAAO,GAAF,OAFM,GAGX,wBAAkBA,UAEf,GAAIA,EAAO,OACmBA,EAAA,4BAAnC,GADgB,sBACV,EADU,KACV,EADU,KAEhBna,EAAA,uCACKA,EADQ,OAAb,qBAEGk0F,EAAD,UAAwB,IAE1B,IACEl0F,EAAA,MAAW,SAAX,OAGJ,c,kCCtEN,IAAIvB,EAAc,EAAQ,QACtB6M,EAAS,EAAQ,QACjBmK,EAAW,EAAQ,QACnBH,EAAW,EAAQ,QACnBzW,EAAM,EAAQ,QACdqM,EAAU,EAAQ,QAClBsyE,EAAoB,EAAQ,QAC5B5+E,EAAc,EAAQ,QACtBuD,EAAQ,EAAQ,QAChBic,EAAS,EAAQ,QACjBxgB,EAAsB,EAAQ,QAA8CL,EAC5EyB,EAA2B,EAAQ,QAAmDzB,EACtF8E,EAAiB,EAAQ,QAAuC9E,EAChE01C,EAAO,EAAQ,QAA4BA,KAE3CkhD,EAAS,SACTC,EAAe9oF,EAAO6oF,GACtBE,EAAkBD,EAAah3F,UAG/Bk3F,EAAiBppF,EAAQkT,EAAOi2E,KAAqBF,EAIrDp2E,EAAW,SAAUo1D,GACvB,IACIwI,EAAOl4B,EAAOxC,EAAOszC,EAASC,EAAQz5F,EAAQkL,EAAOu8C,EADrD1kD,EAAKc,EAAYu0E,GAAU,GAE/B,GAAiB,iBAANr1E,GAAkBA,EAAG/C,OAAS,EAGvC,GAFA+C,EAAKm1C,EAAKn1C,GACV69E,EAAQ79E,EAAGykB,WAAW,GACR,KAAVo5D,GAA0B,KAAVA,GAElB,GADAl4B,EAAQ3lD,EAAGykB,WAAW,GACR,KAAVkhC,GAA0B,MAAVA,EAAe,OAAOgxC,SACrC,GAAc,KAAV9Y,EAAc,CACvB,OAAQ79E,EAAGykB,WAAW,IACpB,KAAK,GAAI,KAAK,GAAI0+B,EAAQ,EAAGszC,EAAU,GAAI,MAC3C,KAAK,GAAI,KAAK,IAAKtzC,EAAQ,EAAGszC,EAAU,GAAI,MAC5C,QAAS,OAAQz2F,EAInB,IAFA02F,EAAS12F,EAAGxB,MAAM,GAClBvB,EAASy5F,EAAOz5F,OACXkL,EAAQ,EAAGA,EAAQlL,EAAQkL,IAI9B,GAHAu8C,EAAOgyC,EAAOjyE,WAAWtc,GAGrBu8C,EAAO,IAAMA,EAAO+xC,EAAS,OAAOE,IACxC,OAAO7jF,SAAS4jF,EAAQvzC,GAE5B,OAAQnjD,GAKZ,GAAI2X,EAAS0+E,GAASC,EAAa,UAAYA,EAAa,QAAUA,EAAa,SAAU,CAS3F,IARA,IAcqBpxF,EAdjB0xF,EAAgB,SAAgB3xF,GAClC,IAAIjF,EAAKxC,UAAUP,OAAS,EAAI,EAAIgI,EAChCs7E,EAAQniF,KACZ,OAAOmiF,aAAiBqW,IAElBJ,EAAiBnyF,GAAM,WAAckyF,EAAgBp6B,QAAQh/D,KAAKojF,MAAanzE,EAAQmzE,IAAU8V,GACjG3W,EAAkB,IAAI4W,EAAar2E,EAASjgB,IAAMugF,EAAOqW,GAAiB32E,EAASjgB,IAElFiO,EAAOtN,EAAcb,EAAoBw2F,GAAgB,6KAMhEpvF,MAAM,KAAM45B,EAAI,EAAQ7yB,EAAKhR,OAAS6jC,EAAGA,IACrC//B,EAAIu1F,EAAcpxF,EAAM+I,EAAK6yB,MAAQ//B,EAAI61F,EAAe1xF,IAC1DX,EAAeqyF,EAAe1xF,EAAKhE,EAAyBo1F,EAAcpxF,IAG9E0xF,EAAct3F,UAAYi3F,EAC1BA,EAAgBh2F,YAAcq2F,EAC9Bp/E,EAAShK,EAAQ6oF,EAAQO,K;;;;;;;ACtE3B,SAASlhB,EAAQp2D,GAWf,OATEo2D,EADoB,oBAAXj6D,QAAoD,kBAApBA,OAAOvE,SACtC,SAAUoI,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,oBAAX7D,QAAyB6D,EAAI/e,cAAgBkb,QAAU6D,IAAQ7D,OAAOnc,UAAY,gBAAkBggB,GAItHo2D,EAAQp2D,GAGjB,SAASu3E,EAAgBv3E,EAAKpa,EAAKD,GAYjC,OAXIC,KAAOoa,EACTzf,OAAO0E,eAAe+a,EAAKpa,EAAK,CAC9BD,MAAOA,EACP0f,YAAY,EACZjL,cAAc,EACdkL,UAAU,IAGZtF,EAAIpa,GAAOD,EAGNqa,EAGT,SAASw3E,IAeP,OAdAA,EAAWj3F,OAAO8gD,QAAU,SAAU5iD,GACpC,IAAK,IAAIgB,EAAI,EAAGA,EAAIvB,UAAUP,OAAQ8B,IAAK,CACzC,IAAImJ,EAAS1K,UAAUuB,GAEvB,IAAK,IAAImG,KAAOgD,EACVrI,OAAOP,UAAUyQ,eAAe5S,KAAK+K,EAAQhD,KAC/CnH,EAAOmH,GAAOgD,EAAOhD,IAK3B,OAAOnH,GAGF+4F,EAASv5F,MAAMa,KAAMZ,WAG9B,SAASu5F,EAAch5F,GACrB,IAAK,IAAIgB,EAAI,EAAGA,EAAIvB,UAAUP,OAAQ8B,IAAK,CACzC,IAAImJ,EAAyB,MAAhB1K,UAAUuB,GAAavB,UAAUuB,GAAK,GAC/C4nB,EAAU9mB,OAAOoO,KAAK/F,GAEkB,oBAAjCrI,OAAOwO,wBAChBsY,EAAUA,EAAQtnB,OAAOQ,OAAOwO,sBAAsBnG,GAAQw/B,QAAO,SAAUkuC,GAC7E,OAAO/1E,OAAOqB,yBAAyBgH,EAAQ0tE,GAAKjxD,gBAIxDgC,EAAQ3hB,SAAQ,SAAUE,GACxB2xF,EAAgB94F,EAAQmH,EAAKgD,EAAOhD,OAIxC,OAAOnH,EAGT,SAAS+P,EAA8B5F,EAAQ6F,GAC7C,GAAc,MAAV7F,EAAgB,MAAO,GAC3B,IAEIhD,EAAKnG,EAFLhB,EAAS,GACTiQ,EAAanO,OAAOoO,KAAK/F,GAG7B,IAAKnJ,EAAI,EAAGA,EAAIiP,EAAW/Q,OAAQ8B,IACjCmG,EAAM8I,EAAWjP,GACbgP,EAASG,QAAQhJ,IAAQ,IAC7BnH,EAAOmH,GAAOgD,EAAOhD,IAGvB,OAAOnH,EAGT,SAASoQ,EAAyBjG,EAAQ6F,GACxC,GAAc,MAAV7F,EAAgB,MAAO,GAE3B,IAEIhD,EAAKnG,EAFLhB,EAAS+P,EAA8B5F,EAAQ6F,GAInD,GAAIlO,OAAOwO,sBAAuB,CAChC,IAAIC,EAAmBzO,OAAOwO,sBAAsBnG,GAEpD,IAAKnJ,EAAI,EAAGA,EAAIuP,EAAiBrR,OAAQ8B,IACvCmG,EAAMoJ,EAAiBvP,GACnBgP,EAASG,QAAQhJ,IAAQ,GACxBrF,OAAOP,UAAUiP,qBAAqBpR,KAAK+K,EAAQhD,KACxDnH,EAAOmH,GAAOgD,EAAOhD,IAIzB,OAAOnH,EAGT,SAAS4d,EAAmBN,GAC1B,OAAOD,EAAmBC,IAAQE,EAAiBF,IAAQK,IAG7D,SAASN,EAAmBC,GAC1B,GAAI5a,MAAM6a,QAAQD,GAAM,CACtB,IAAK,IAAItc,EAAI,EAAG+jE,EAAO,IAAIriE,MAAM4a,EAAIpe,QAAS8B,EAAIsc,EAAIpe,OAAQ8B,IAAK+jE,EAAK/jE,GAAKsc,EAAItc,GAEjF,OAAO+jE,GAIX,SAASvnD,EAAiBC,GACxB,GAAIC,OAAOvE,YAAYrX,OAAO2b,IAAkD,uBAAzC3b,OAAOP,UAAUI,SAASvC,KAAKqe,GAAgC,OAAO/a,MAAMC,KAAK8a,GAG1H,SAASE,IACP,MAAM,IAAInO,UAAU,mDA7HtB,kIAgIA,IAAIo7B,EAAU,SAEd,SAAS/yB,EAAU2xB,GACjB,GAAsB,qBAAX3nC,QAA0BA,OAAO4lB,UAC1C,QAEAA,UAAU5P,UAAUrO,MAAMggC,GAI9B,IAAIyvD,EAAaphF,EAAU,yDACvBqhF,EAAOrhF,EAAU,SACjBshF,EAAUthF,EAAU,YACpBuhF,EAASvhF,EAAU,aAAeA,EAAU,aAAeA,EAAU,YACrEwhF,EAAMxhF,EAAU,mBAChByhF,EAAmBzhF,EAAU,YAAcA,EAAU,YAErD0hF,EAAc,CAChBtoE,SAAS,EACT+B,SAAS,GAGX,SAAS5uB,EAAGE,EAAIqvB,EAAO30B,GACrBsF,EAAG4jB,iBAAiByL,EAAO30B,GAAKi6F,GAAcM,GAGhD,SAASC,EAAIl1F,EAAIqvB,EAAO30B,GACtBsF,EAAGwwC,oBAAoBnhB,EAAO30B,GAAKi6F,GAAcM,GAGnD,SAAShwD,EAETjlC,EAEAm1F,GACE,GAAKA,EAAL,CAGA,GAFgB,MAAhBA,EAAS,KAAeA,EAAWA,EAASC,UAAU,IAElDp1F,EACF,IACE,GAAIA,EAAGilC,QACL,OAAOjlC,EAAGilC,QAAQkwD,GACb,GAAIn1F,EAAGq1F,kBACZ,OAAOr1F,EAAGq1F,kBAAkBF,GACvB,GAAIn1F,EAAGs1F,sBACZ,OAAOt1F,EAAGs1F,sBAAsBH,GAElC,MAAOt2E,GACP,OAAO,EAIX,OAAO,GAGT,SAAS02E,EAAgBv1F,GACvB,OAAOA,EAAGmD,MAAQnD,IAAOwO,UAAYxO,EAAGmD,KAAKgrC,SAAWnuC,EAAGmD,KAAOnD,EAAGknC,WAGvE,SAASsuD,EAETx1F,EAEAm1F,EAEA/1E,EAAKq2E,GACH,GAAIz1F,EAAI,CACNof,EAAMA,GAAO5Q,SAEb,EAAG,CACD,GAAgB,MAAZ2mF,IAAqC,MAAhBA,EAAS,GAAan1F,EAAGknC,aAAe9nB,GAAO6lB,EAAQjlC,EAAIm1F,GAAYlwD,EAAQjlC,EAAIm1F,KAAcM,GAAcz1F,IAAOof,EAC7I,OAAOpf,EAGT,GAAIA,IAAOof,EAAK,YAETpf,EAAKu1F,EAAgBv1F,IAGhC,OAAO,KAGT,IAgWI01F,EAhWAC,EAAU,OAEd,SAASC,EAAY51F,EAAI7B,EAAMknD,GAC7B,GAAIrlD,GAAM7B,EACR,GAAI6B,EAAG00C,UACL10C,EAAG00C,UAAU2Q,EAAQ,MAAQ,UAAUlnD,OAClC,CACL,IAAI88E,GAAa,IAAMj7E,EAAGi7E,UAAY,KAAKvoE,QAAQijF,EAAS,KAAKjjF,QAAQ,IAAMvU,EAAO,IAAK,KAC3F6B,EAAGi7E,WAAaA,GAAa51B,EAAQ,IAAMlnD,EAAO,KAAKuU,QAAQijF,EAAS,MAK9E,SAAS5gD,EAAI/0C,EAAI0rB,EAAM5kB,GACrB,IAAI4C,EAAQ1J,GAAMA,EAAG0J,MAErB,GAAIA,EAAO,CACT,QAAY,IAAR5C,EAOF,OANI0H,SAASqnF,aAAernF,SAASqnF,YAAY/+C,iBAC/ChwC,EAAM0H,SAASqnF,YAAY/+C,iBAAiB92C,EAAI,IACvCA,EAAG81F,eACZhvF,EAAM9G,EAAG81F,mBAGK,IAATpqE,EAAkB5kB,EAAMA,EAAI4kB,GAE7BA,KAAQhiB,IAAsC,IAA5BgiB,EAAK7f,QAAQ,YACnC6f,EAAO,WAAaA,GAGtBhiB,EAAMgiB,GAAQ5kB,GAAsB,kBAARA,EAAmB,GAAK,OAK1D,SAAS4kF,EAAO1rF,EAAI+1F,GAClB,IAAIC,EAAoB,GAExB,GAAkB,kBAAPh2F,EACTg2F,EAAoBh2F,OAEpB,EAAG,CACD,IAAIu9C,EAAYxI,EAAI/0C,EAAI,aAEpBu9C,GAA2B,SAAdA,IACfy4C,EAAoBz4C,EAAY,IAAMy4C,UAIhCD,IAAa/1F,EAAKA,EAAGknC,aAGjC,IAAI+uD,EAAW14F,OAAO24F,WAAa34F,OAAO44F,iBAAmB54F,OAAO64F,WAAa74F,OAAO84F,YAGxF,OAAOJ,GAAY,IAAIA,EAASD,GAGlC,SAAShsC,EAAK5qC,EAAKmpB,EAAS1zB,GAC1B,GAAIuK,EAAK,CACP,IAAI3iB,EAAO2iB,EAAI2gD,qBAAqBx3B,GAChC7rC,EAAI,EACJuB,EAAIxB,EAAK7B,OAEb,GAAIia,EACF,KAAOnY,EAAIuB,EAAGvB,IACZmY,EAASpY,EAAKC,GAAIA,GAItB,OAAOD,EAGT,MAAO,GAGT,SAAS65F,IACP,IAAIC,EAAmB/nF,SAAS+nF,iBAEhC,OAAIA,GAGK/nF,SAAS2xD,gBAcpB,SAASq2B,EAAQx2F,EAAIy2F,EAA2BC,EAA2BC,EAAWtiB,GACpF,GAAKr0E,EAAG68C,uBAAyB78C,IAAOzC,OAAxC,CACA,IAAIq5F,EAAQ36E,EAAK3U,EAAM0U,EAAQzU,EAAOoC,EAAQC,EAmB9C,GAjBI5J,IAAOzC,QAAUyC,IAAOs2F,KAC1BM,EAAS52F,EAAG68C,wBACZ5gC,EAAM26E,EAAO36E,IACb3U,EAAOsvF,EAAOtvF,KACd0U,EAAS46E,EAAO56E,OAChBzU,EAAQqvF,EAAOrvF,MACfoC,EAASitF,EAAOjtF,OAChBC,EAAQgtF,EAAOhtF,QAEfqS,EAAM,EACN3U,EAAO,EACP0U,EAASze,OAAOs5F,YAChBtvF,EAAQhK,OAAOu5F,WACfntF,EAASpM,OAAOs5F,YAChBjtF,EAAQrM,OAAOu5F,aAGZL,GAA6BC,IAA8B12F,IAAOzC,SAErE82E,EAAYA,GAAar0E,EAAGknC,YAGvBytD,GACH,GACE,GAAItgB,GAAaA,EAAUx3B,wBAA0D,SAAhC9H,EAAIs/B,EAAW,cAA2BqiB,GAA4D,WAA/B3hD,EAAIs/B,EAAW,aAA2B,CACpK,IAAI0iB,EAAgB1iB,EAAUx3B,wBAE9B5gC,GAAO86E,EAAc96E,IAAMxL,SAASskC,EAAIs/B,EAAW,qBACnD/sE,GAAQyvF,EAAczvF,KAAOmJ,SAASskC,EAAIs/B,EAAW,sBACrDr4D,EAASC,EAAM26E,EAAOjtF,OACtBpC,EAAQD,EAAOsvF,EAAOhtF,MACtB,aAIKyqE,EAAYA,EAAUntC,YAInC,GAAIyvD,GAAa32F,IAAOzC,OAAQ,CAE9B,IAAIy5F,EAAWtL,EAAOrX,GAAar0E,GAC/Bi3F,EAASD,GAAYA,EAASj8F,EAC9Bm8F,EAASF,GAAYA,EAAS/sF,EAE9B+sF,IACF/6E,GAAOi7E,EACP5vF,GAAQ2vF,EACRrtF,GAASqtF,EACTttF,GAAUutF,EACVl7E,EAASC,EAAMtS,EACfpC,EAAQD,EAAOsC,GAInB,MAAO,CACLqS,IAAKA,EACL3U,KAAMA,EACN0U,OAAQA,EACRzU,MAAOA,EACPqC,MAAOA,EACPD,OAAQA,IAYZ,SAASwtF,EAAen3F,EAAIo3F,EAAQC,GAClC,IAAIl/E,EAASm/E,EAA2Bt3F,GAAI,GACxCu3F,EAAYf,EAAQx2F,GAAIo3F,GAG5B,MAAOj/E,EAAQ,CACb,IAAIq/E,EAAgBhB,EAAQr+E,GAAQk/E,GAChCI,OAAU,EAQd,GALEA,EADiB,QAAfJ,GAAuC,SAAfA,EAChBE,GAAaC,EAEbD,GAAaC,GAGpBC,EAAS,OAAOt/E,EACrB,GAAIA,IAAWm+E,IAA6B,MAC5Cn+E,EAASm/E,EAA2Bn/E,GAAQ,GAG9C,OAAO,EAYT,SAAS0yC,EAAS7qD,EAAI03F,EAAUniF,GAC9B,IAAIoiF,EAAe,EACfj7F,EAAI,EACJ2N,EAAWrK,EAAGqK,SAElB,MAAO3N,EAAI2N,EAASzP,OAAQ,CAC1B,GAAkC,SAA9ByP,EAAS3N,GAAGgN,MAAMyxC,SAAsB9wC,EAAS3N,KAAOk7F,GAASC,OAASxtF,EAAS3N,KAAOk7F,GAASE,SAAWtC,EAAQnrF,EAAS3N,GAAI6Y,EAAQ0uD,UAAWjkE,GAAI,GAAQ,CACpK,GAAI23F,IAAiBD,EACnB,OAAOrtF,EAAS3N,GAGlBi7F,IAGFj7F,IAGF,OAAO,KAUT,SAASq7F,EAAU/3F,EAAIm1F,GACrB,IAAI9kE,EAAOrwB,EAAGg4F,iBAEd,MAAO3nE,IAASA,IAASunE,GAASC,OAAkC,SAAzB9iD,EAAI1kB,EAAM,YAAyB8kE,IAAalwD,EAAQ5U,EAAM8kE,IACvG9kE,EAAOA,EAAK4nE,uBAGd,OAAO5nE,GAAQ,KAWjB,SAASvqB,EAAM9F,EAAIm1F,GACjB,IAAIrvF,EAAQ,EAEZ,IAAK9F,IAAOA,EAAGknC,WACb,OAAQ,EAKV,MAAOlnC,EAAKA,EAAGi4F,uBACqB,aAA9Bj4F,EAAG2jE,SAAS7kD,eAAgC9e,IAAO43F,GAASphE,OAAW2+D,IAAYlwD,EAAQjlC,EAAIm1F,IACjGrvF,IAIJ,OAAOA,EAUT,SAASoyF,EAAwBl4F,GAC/B,IAAIm4F,EAAa,EACbC,EAAY,EACZC,EAAc/B,IAElB,GAAIt2F,EACF,EAAG,CACD,IAAIg3F,EAAWtL,EAAO1rF,GAClBi3F,EAASD,EAASj8F,EAClBm8F,EAASF,EAAS/sF,EACtBkuF,GAAcn4F,EAAGs4F,WAAarB,EAC9BmB,GAAap4F,EAAGu4F,UAAYrB,QACrBl3F,IAAOq4F,IAAgBr4F,EAAKA,EAAGknC,aAG1C,MAAO,CAACixD,EAAYC,GAUtB,SAASI,EAAcx/E,EAAKiE,GAC1B,IAAK,IAAIvgB,KAAKsc,EACZ,GAAKA,EAAItL,eAAehR,GAExB,IAAK,IAAImG,KAAOoa,EACd,GAAIA,EAAIvP,eAAe7K,IAAQoa,EAAIpa,KAASmW,EAAItc,GAAGmG,GAAM,OAAO2E,OAAO9K,GAI3E,OAAQ,EAGV,SAAS46F,EAA2Bt3F,EAAIy4F,GAEtC,IAAKz4F,IAAOA,EAAG68C,sBAAuB,OAAOy5C,IAC7C,IAAIoC,EAAO14F,EACP24F,GAAU,EAEd,GAEE,GAAID,EAAKE,YAAcF,EAAKnO,aAAemO,EAAKG,aAAeH,EAAKI,aAAc,CAChF,IAAIC,EAAUhkD,EAAI2jD,GAElB,GAAIA,EAAKE,YAAcF,EAAKnO,cAAqC,QAArBwO,EAAQC,WAA4C,UAArBD,EAAQC,YAA0BN,EAAKG,aAAeH,EAAKI,eAAsC,QAArBC,EAAQE,WAA4C,UAArBF,EAAQE,WAAwB,CACpN,IAAKP,EAAK77C,uBAAyB67C,IAASlqF,SAAS4uC,KAAM,OAAOk5C,IAClE,GAAIqC,GAAWF,EAAa,OAAOC,EACnCC,GAAU,UAKPD,EAAOA,EAAKxxD,YAErB,OAAOovD,IAGT,SAAS12E,EAAOs5E,EAAK5wE,GACnB,GAAI4wE,GAAO5wE,EACT,IAAK,IAAIzlB,KAAOylB,EACVA,EAAI5a,eAAe7K,KACrBq2F,EAAIr2F,GAAOylB,EAAIzlB,IAKrB,OAAOq2F,EAGT,SAASC,EAAYC,EAAOC,GAC1B,OAAOh1F,KAAKi1F,MAAMF,EAAMn9E,OAAS5X,KAAKi1F,MAAMD,EAAMp9E,MAAQ5X,KAAKi1F,MAAMF,EAAM9xF,QAAUjD,KAAKi1F,MAAMD,EAAM/xF,OAASjD,KAAKi1F,MAAMF,EAAMzvF,UAAYtF,KAAKi1F,MAAMD,EAAM1vF,SAAWtF,KAAKi1F,MAAMF,EAAMxvF,SAAWvF,KAAKi1F,MAAMD,EAAMzvF,OAKvN,SAAS2vF,EAASvgE,EAAUwgE,GAC1B,OAAO,WACL,IAAK9D,EAAkB,CACrB,IAAIl5F,EAAOrB,UACP0mE,EAAQ9lE,KAEQ,IAAhBS,EAAK5B,OACPo+B,EAASl+B,KAAK+mE,EAAOrlE,EAAK,IAE1Bw8B,EAAS99B,MAAM2mE,EAAOrlE,GAGxBk5F,EAAmBhlF,YAAW,WAC5BglF,OAAmB,IAClB8D,KAKT,SAASC,IACPnpF,aAAaolF,GACbA,OAAmB,EAGrB,SAASgE,EAAS15F,EAAIK,EAAGsG,GACvB3G,EAAGs4F,YAAcj4F,EACjBL,EAAGu4F,WAAa5xF,EAGlB,SAAS6vB,EAAMx2B,GACb,IAAI25F,EAAUp8F,OAAOo8F,QACjBv+F,EAAImC,OAAOq8F,QAAUr8F,OAAOs8F,MAEhC,OAAIF,GAAWA,EAAQG,IACdH,EAAQG,IAAI95F,GAAI69C,WAAU,GACxBziD,EACFA,EAAE4E,GAAIw2B,OAAM,GAAM,GAElBx2B,EAAG69C,WAAU,GAIxB,SAASk8C,EAAQ/5F,EAAIg6F,GACnBjlD,EAAI/0C,EAAI,WAAY,YACpB+0C,EAAI/0C,EAAI,MAAOg6F,EAAK/9E,KACpB84B,EAAI/0C,EAAI,OAAQg6F,EAAK1yF,MACrBytC,EAAI/0C,EAAI,QAASg6F,EAAKpwF,OACtBmrC,EAAI/0C,EAAI,SAAUg6F,EAAKrwF,QAGzB,SAASswF,EAAUj6F,GACjB+0C,EAAI/0C,EAAI,WAAY,IACpB+0C,EAAI/0C,EAAI,MAAO,IACf+0C,EAAI/0C,EAAI,OAAQ,IAChB+0C,EAAI/0C,EAAI,QAAS,IACjB+0C,EAAI/0C,EAAI,SAAU,IAGpB,IAAIk6F,EAAU,YAAa,IAAI35E,MAAOC,UAEtC,SAAS25E,IACP,IACIC,EADAC,EAAkB,GAEtB,MAAO,CACLC,sBAAuB,WAErB,GADAD,EAAkB,GACbt+F,KAAKwZ,QAAQ++D,UAAlB,CACA,IAAIjqE,EAAW,GAAGlO,MAAMrB,KAAKiB,KAAKiE,GAAGqK,UACrCA,EAAS1H,SAAQ,SAAUgkB,GACzB,GAA8B,SAA1BouB,EAAIpuB,EAAO,YAAyBA,IAAUixE,GAASC,MAA3D,CACAwC,EAAgBl2F,KAAK,CACnBzI,OAAQirB,EACRqzE,KAAMxD,EAAQ7vE,KAGhB,IAAI4zE,EAAW7F,EAAc,GAAI2F,EAAgBA,EAAgBz/F,OAAS,GAAGo/F,MAG7E,GAAIrzE,EAAM6zE,sBAAuB,CAC/B,IAAIC,EAAc/O,EAAO/kE,GAAO,GAE5B8zE,IACFF,EAASt+E,KAAOw+E,EAAYr9F,EAC5Bm9F,EAASjzF,MAAQmzF,EAAYj0F,GAIjCmgB,EAAM4zE,SAAWA,QAGrBG,kBAAmB,SAA2Br1C,GAC5Cg1C,EAAgBl2F,KAAKkhD,IAEvBs1C,qBAAsB,SAA8Bj/F,GAClD2+F,EAAgB/7E,OAAOk6E,EAAc6B,EAAiB,CACpD3+F,OAAQA,IACN,IAENk/F,WAAY,SAAoB5hE,GAC9B,IAAI6oC,EAAQ9lE,KAEZ,IAAKA,KAAKwZ,QAAQ++D,UAGhB,OAFAhkE,aAAa8pF,QACW,oBAAbphE,GAAyBA,KAItC,IAAI6hE,GAAY,EACZC,EAAgB,EACpBT,EAAgB13F,SAAQ,SAAU0iD,GAChC,IAAI4M,EAAO,EACPv2D,EAAS2pD,EAAM3pD,OACf6+F,EAAW7+F,EAAO6+F,SAClBQ,EAASvE,EAAQ96F,GACjBs/F,EAAet/F,EAAOs/F,aACtBC,EAAav/F,EAAOu/F,WACpBC,EAAgB71C,EAAM20C,KACtBmB,EAAezP,EAAOhwF,GAAQ,GAE9By/F,IAEFJ,EAAO9+E,KAAOk/E,EAAa/9F,EAC3B29F,EAAOzzF,MAAQ6zF,EAAa30F,GAG9B9K,EAAOq/F,OAASA,EAEZr/F,EAAO8+F,uBAELrB,EAAY6B,EAAcD,KAAY5B,EAAYoB,EAAUQ,KAC/DG,EAAcj/E,IAAM8+E,EAAO9+E,MAAQi/E,EAAc5zF,KAAOyzF,EAAOzzF,SAAWizF,EAASt+E,IAAM8+E,EAAO9+E,MAAQs+E,EAASjzF,KAAOyzF,EAAOzzF,QAE9H2qD,EAAOmpC,EAAkBF,EAAeF,EAAcC,EAAYp5B,EAAMtsD,UAKvE4jF,EAAY4B,EAAQR,KACvB7+F,EAAOs/F,aAAeT,EACtB7+F,EAAOu/F,WAAaF,EAEf9oC,IACHA,EAAO4P,EAAMtsD,QAAQ++D,WAGvBzS,EAAM90D,QAAQrR,EAAQw/F,EAAeH,EAAQ9oC,IAG3CA,IACF4oC,GAAY,EACZC,EAAgBz2F,KAAK4Q,IAAI6lF,EAAe7oC,GACxC3hD,aAAa5U,EAAO2/F,qBACpB3/F,EAAO2/F,oBAAsB3qF,YAAW,WACtChV,EAAOo/F,cAAgB,EACvBp/F,EAAOs/F,aAAe,KACtBt/F,EAAO6+F,SAAW,KAClB7+F,EAAOu/F,WAAa,KACpBv/F,EAAO8+F,sBAAwB,OAC9BvoC,GACHv2D,EAAO8+F,sBAAwBvoC,MAGnC3hD,aAAa8pF,GAERS,EAGHT,EAAsB1pF,YAAW,WACP,oBAAbsoB,GAAyBA,MACnC8hE,GAJqB,oBAAb9hE,GAAyBA,IAOtCqhE,EAAkB,IAEpBttF,QAAS,SAAiBrR,EAAQ4/F,EAAaP,EAAQ3iD,GACrD,GAAIA,EAAU,CACZrD,EAAIr5C,EAAQ,aAAc,IAC1Bq5C,EAAIr5C,EAAQ,YAAa,IACzB,IAAIs7F,EAAWtL,EAAO3vF,KAAKiE,IACvBi3F,EAASD,GAAYA,EAASj8F,EAC9Bm8F,EAASF,GAAYA,EAAS/sF,EAC9BsxF,GAAcD,EAAYh0F,KAAOyzF,EAAOzzF,OAAS2vF,GAAU,GAC3DuE,GAAcF,EAAYr/E,IAAM8+E,EAAO9+E,MAAQi7E,GAAU,GAC7Dx7F,EAAO+/F,aAAeF,EACtB7/F,EAAOggG,aAAeF,EACtBzmD,EAAIr5C,EAAQ,YAAa,eAAiB6/F,EAAa,MAAQC,EAAa,SAC5EG,EAAQjgG,GAERq5C,EAAIr5C,EAAQ,aAAc,aAAe08C,EAAW,MAAQr8C,KAAKwZ,QAAQqmF,OAAS,IAAM7/F,KAAKwZ,QAAQqmF,OAAS,KAC9G7mD,EAAIr5C,EAAQ,YAAa,sBACE,kBAApBA,EAAOmgG,UAAyBvrF,aAAa5U,EAAOmgG,UAC3DngG,EAAOmgG,SAAWnrF,YAAW,WAC3BqkC,EAAIr5C,EAAQ,aAAc,IAC1Bq5C,EAAIr5C,EAAQ,YAAa,IACzBA,EAAOmgG,UAAW,EAClBngG,EAAO+/F,YAAa,EACpB//F,EAAOggG,YAAa,IACnBtjD,MAMX,SAASujD,EAAQjgG,GACf,OAAOA,EAAOogG,YAGhB,SAASV,EAAkBF,EAAeX,EAAUQ,EAAQxlF,GAC1D,OAAOlR,KAAK03F,KAAK13F,KAAK86C,IAAIo7C,EAASt+E,IAAMi/E,EAAcj/E,IAAK,GAAK5X,KAAK86C,IAAIo7C,EAASjzF,KAAO4zF,EAAc5zF,KAAM,IAAMjD,KAAK03F,KAAK13F,KAAK86C,IAAIo7C,EAASt+E,IAAM8+E,EAAO9+E,IAAK,GAAK5X,KAAK86C,IAAIo7C,EAASjzF,KAAOyzF,EAAOzzF,KAAM,IAAMiO,EAAQ++D,UAG7N,IAAItoB,GAAU,GACVgwC,GAAW,CACbC,qBAAqB,GAEnBC,GAAgB,CAClBC,MAAO,SAAer4D,GAEpB,IAAK,IAAI6W,KAAUqhD,GACbA,GAAStuF,eAAeitC,MAAaA,KAAU7W,KACjDA,EAAO6W,GAAUqhD,GAASrhD,IAI9BqR,GAAQ7nD,KAAK2/B,IAEfs4D,YAAa,SAAqBC,EAAWC,EAAUr5B,GACrD,IAAIpB,EAAQ9lE,KAEZA,KAAKwgG,eAAgB,EAErBt5B,EAAIu5B,OAAS,WACX36B,EAAM06B,eAAgB,GAGxB,IAAIE,EAAkBJ,EAAY,SAClCrwC,GAAQrpD,SAAQ,SAAUmhC,GACnBw4D,EAASx4D,EAAO44D,cAEjBJ,EAASx4D,EAAO44D,YAAYD,IAC9BH,EAASx4D,EAAO44D,YAAYD,GAAiB/H,EAAc,CACzD4H,SAAUA,GACTr5B,IAKDq5B,EAAS/mF,QAAQuuB,EAAO44D,aAAeJ,EAASx4D,EAAO44D,YAAYL,IACrEC,EAASx4D,EAAO44D,YAAYL,GAAW3H,EAAc,CACnD4H,SAAUA,GACTr5B,SAIT05B,kBAAmB,SAA2BL,EAAUt8F,EAAIg8F,EAAUzmF,GAYpE,IAAK,IAAIolC,KAXTqR,GAAQrpD,SAAQ,SAAUmhC,GACxB,IAAI44D,EAAa54D,EAAO44D,WACxB,GAAKJ,EAAS/mF,QAAQmnF,IAAgB54D,EAAOm4D,oBAA7C,CACA,IAAIW,EAAc,IAAI94D,EAAOw4D,EAAUt8F,EAAIs8F,EAAS/mF,SACpDqnF,EAAYN,SAAWA,EACvBM,EAAYrnF,QAAU+mF,EAAS/mF,QAC/B+mF,EAASI,GAAcE,EAEvBnI,EAASuH,EAAUY,EAAYZ,cAGdM,EAAS/mF,QAC1B,GAAK+mF,EAAS/mF,QAAQ7H,eAAeitC,GAArC,CACA,IAAInX,EAAWznC,KAAK8gG,aAAaP,EAAU3hD,EAAQ2hD,EAAS/mF,QAAQolC,IAE5C,qBAAbnX,IACT84D,EAAS/mF,QAAQolC,GAAUnX,KAIjCs5D,mBAAoB,SAA4B3+F,EAAMm+F,GACpD,IAAIS,EAAkB,GAMtB,OALA/wC,GAAQrpD,SAAQ,SAAUmhC,GACc,oBAA3BA,EAAOi5D,iBAElBtI,EAASsI,EAAiBj5D,EAAOi5D,gBAAgBjiG,KAAKwhG,EAASx4D,EAAO44D,YAAav+F,OAE9E4+F,GAETF,aAAc,SAAsBP,EAAUn+F,EAAMyE,GAClD,IAAIo6F,EASJ,OARAhxC,GAAQrpD,SAAQ,SAAUmhC,GAEnBw4D,EAASx4D,EAAO44D,aAEjB54D,EAAOm5D,iBAA2D,oBAAjCn5D,EAAOm5D,gBAAgB9+F,KAC1D6+F,EAAgBl5D,EAAOm5D,gBAAgB9+F,GAAMrD,KAAKwhG,EAASx4D,EAAO44D,YAAa95F,OAG5Eo6F,IAIX,SAASliD,GAAcgqB,GACrB,IAAIw3B,EAAWx3B,EAAKw3B,SAChBY,EAASp4B,EAAKo4B,OACd/+F,EAAO2mE,EAAK3mE,KACZg/F,EAAWr4B,EAAKq4B,SAChBC,EAAUt4B,EAAKs4B,QACfC,EAAOv4B,EAAKu4B,KACZC,EAASx4B,EAAKw4B,OACd93B,EAAWV,EAAKU,SAChBC,EAAWX,EAAKW,SAChB83B,EAAoBz4B,EAAKy4B,kBACzBC,EAAoB14B,EAAK04B,kBACzBz5B,EAAgBe,EAAKf,cACrB05B,EAAc34B,EAAK24B,YACnBC,EAAuB54B,EAAK44B,qBAEhC,GADApB,EAAWA,GAAYY,GAAUA,EAAOhD,GACnCoC,EAAL,CACA,IAAIr5B,EACA1tD,EAAU+mF,EAAS/mF,QACnBooF,EAAS,KAAOx/F,EAAK6gB,OAAO,GAAGF,cAAgB3gB,EAAKy/F,OAAO,IAE3DrgG,OAAOsgG,aAAgBlJ,GAAeC,GAMxC3xB,EAAMz0D,SAAS0wB,YAAY,SAC3B+jC,EAAIpoB,UAAU18C,GAAM,GAAM,IAN1B8kE,EAAM,IAAI46B,YAAY1/F,EAAM,CAC1B2/F,SAAS,EACTC,YAAY,IAOhB96B,EAAIzwD,GAAK6qF,GAAQH,EACjBj6B,EAAI5kE,KAAOi/F,GAAUJ,EACrBj6B,EAAI5kD,KAAO8+E,GAAYD,EACvBj6B,EAAIzsC,MAAQ4mE,EACZn6B,EAAIuC,SAAWA,EACfvC,EAAIwC,SAAWA,EACfxC,EAAIs6B,kBAAoBA,EACxBt6B,EAAIu6B,kBAAoBA,EACxBv6B,EAAIc,cAAgBA,EACpBd,EAAIyD,SAAW+2B,EAAcA,EAAYO,iBAAcnjG,EAEvD,IAAIojG,EAAqBvJ,EAAc,GAAIgJ,EAAsBxB,GAAcY,mBAAmB3+F,EAAMm+F,IAExG,IAAK,IAAI3hD,KAAUsjD,EACjBh7B,EAAItoB,GAAUsjD,EAAmBtjD,GAG/BuiD,GACFA,EAAOpiD,cAAcmoB,GAGnB1tD,EAAQooF,IACVpoF,EAAQooF,GAAQ7iG,KAAKwhG,EAAUr5B,IAInC,IAAIm5B,GAAc,SAAqBC,EAAWC,GAChD,IAAIx3B,EAAO3pE,UAAUP,OAAS,QAAsBC,IAAjBM,UAAU,GAAmBA,UAAU,GAAK,GAC3E4oE,EAAgBe,EAAK7B,IACrBpjE,EAAOiM,EAAyBg5D,EAAM,CAAC,QAE3Co3B,GAAcE,YAAYv/F,KAAK+6F,GAA/BsE,CAAyCG,EAAWC,EAAU5H,EAAc,CAC1EwJ,OAAQA,GACRC,SAAUA,GACVC,QAASA,GACTlB,OAAQA,GACRmB,OAAQA,GACRC,WAAYA,GACZlB,QAASA,GACTmB,YAAaA,GACbC,YAAalhD,GACbmgD,YAAaA,GACbgB,eAAgB7G,GAASh+E,OACzBmqD,cAAeA,EACfyB,SAAUA,GACV+3B,kBAAmBA,GACnB93B,SAAUA,GACV+3B,kBAAmBA,GACnBkB,mBAAoBC,GACpBC,qBAAsBC,GACtBC,eAAgB,WACdP,IAAc,GAEhBQ,cAAe,WACbR,IAAc,GAEhBS,sBAAuB,SAA+B7gG,GACpD8gG,GAAe,CACb3C,SAAUA,EACVn+F,KAAMA,EACN4lE,cAAeA,MAGlBlkE,KAGL,SAASo/F,GAAe1yE,GACtBuuB,GAAc45C,EAAc,CAC1B+I,YAAaA,GACbL,QAASA,GACTD,SAAUe,GACVhB,OAAQA,GACR13B,SAAUA,GACV+3B,kBAAmBA,GACnB93B,SAAUA,GACV+3B,kBAAmBA,IAClBjxE,IAGL,IAAI2xE,GACAC,GACAC,GACAlB,GACAmB,GACAC,GACAlB,GACAmB,GACA/4B,GACAC,GACA83B,GACAC,GACA0B,GACAzB,GAIA0B,GACAC,GACAC,GACAC,GACAC,GACAC,GACAliD,GACAmiD,GACAC,GAGAC,GAEJC,GAhBIC,IAAsB,EACtBC,IAAkB,EAClBC,GAAY,GAUZC,IAAwB,EACxBC,IAAyB,EAIzBC,GAAmC,GAEvCC,IAAU,EACNC,GAAoB,GAGpBC,GAAqC,qBAAb7xF,SACxB8xF,GAA0BvL,EAC1BwL,GAAmB3L,GAAQD,EAAa,WAAa,QAEzD6L,GAAmBH,KAAmBrL,IAAqBD,GAAO,cAAevmF,SAASvM,cAAc,OACpGw+F,GAA0B,WAC5B,GAAKJ,GAAL,CAEA,GAAI1L,EACF,OAAO,EAGT,IAAI30F,EAAKwO,SAASvM,cAAc,KAEhC,OADAjC,EAAG0J,MAAMspC,QAAU,sBACe,SAA3BhzC,EAAG0J,MAAMg3F,eATY,GAW1BC,GAAmB,SAA0B3gG,EAAIuV,GACnD,IAAIqrF,EAAQ7rD,EAAI/0C,GACZ6gG,EAAUpwF,SAASmwF,EAAMh3F,OAAS6G,SAASmwF,EAAMnN,aAAehjF,SAASmwF,EAAMrN,cAAgB9iF,SAASmwF,EAAME,iBAAmBrwF,SAASmwF,EAAMG,kBAChJC,EAASn2C,EAAS7qD,EAAI,EAAGuV,GACzB0rF,EAASp2C,EAAS7qD,EAAI,EAAGuV,GACzB2rF,EAAgBF,GAAUjsD,EAAIisD,GAC9BG,EAAiBF,GAAUlsD,EAAIksD,GAC/BG,EAAkBF,GAAiBzwF,SAASywF,EAAcG,YAAc5wF,SAASywF,EAAcI,aAAe9K,EAAQwK,GAAQp3F,MAC9H23F,EAAmBJ,GAAkB1wF,SAAS0wF,EAAeE,YAAc5wF,SAAS0wF,EAAeG,aAAe9K,EAAQyK,GAAQr3F,MAEtI,GAAsB,SAAlBg3F,EAAMzlD,QACR,MAA+B,WAAxBylD,EAAMY,eAAsD,mBAAxBZ,EAAMY,cAAqC,WAAa,aAGrG,GAAsB,SAAlBZ,EAAMzlD,QACR,OAAOylD,EAAMa,oBAAoB58F,MAAM,KAAKjK,QAAU,EAAI,WAAa,aAGzE,GAAIomG,GAAUE,EAAc,UAAuC,SAA3BA,EAAc,SAAqB,CACzE,IAAIQ,EAAgD,SAA3BR,EAAc,SAAsB,OAAS,QACtE,OAAOD,GAAoC,SAAzBE,EAAe18E,OAAoB08E,EAAe18E,QAAUi9E,EAAmC,aAAb,WAGtG,OAAOV,IAAqC,UAA1BE,EAAc/lD,SAAiD,SAA1B+lD,EAAc/lD,SAAgD,UAA1B+lD,EAAc/lD,SAAiD,SAA1B+lD,EAAc/lD,SAAsBimD,GAAmBP,GAAuC,SAA5BD,EAAML,KAAgCU,GAAsC,SAA5BL,EAAML,KAAgCa,EAAkBG,EAAmBV,GAAW,WAAa,cAEnVc,GAAqB,SAA4BC,EAAUC,EAAYC,GACzE,IAAIC,EAAcD,EAAWF,EAASt6F,KAAOs6F,EAAS3lF,IAClD+lF,EAAcF,EAAWF,EAASr6F,MAAQq6F,EAAS5lF,OACnDimF,EAAkBH,EAAWF,EAASh4F,MAAQg4F,EAASj4F,OACvDu4F,EAAcJ,EAAWD,EAAWv6F,KAAOu6F,EAAW5lF,IACtDkmF,EAAcL,EAAWD,EAAWt6F,MAAQs6F,EAAW7lF,OACvDomF,EAAkBN,EAAWD,EAAWj4F,MAAQi4F,EAAWl4F,OAC/D,OAAOo4F,IAAgBG,GAAeF,IAAgBG,GAAeJ,EAAcE,EAAkB,IAAMC,EAAcE,EAAkB,GAS7IC,GAA8B,SAAqChiG,EAAGsG,GACpE,IAAIgZ,EAYJ,OAXAogF,GAAUl5F,MAAK,SAAUy1F,GACvB,IAAIvE,EAAUuE,GAAd,CACA,IAAItC,EAAOxD,EAAQ8F,GACfgG,EAAYhG,EAASpC,GAAS3kF,QAAQgtF,qBACtCC,EAAqBniG,GAAK25F,EAAK1yF,KAAOg7F,GAAajiG,GAAK25F,EAAKzyF,MAAQ+6F,EACrEG,EAAmB97F,GAAKqzF,EAAK/9E,IAAMqmF,GAAa37F,GAAKqzF,EAAKh+E,OAASsmF,EAEvE,OAAIA,GAAaE,GAAsBC,EAC9B9iF,EAAM28E,OADf,MAIK38E,GAEL+iF,GAAgB,SAAuBntF,GACzC,SAASotF,EAAK//F,EAAOggG,GACnB,OAAO,SAAUpwF,EAAInU,EAAM6/F,EAAQj7B,GACjC,IAAI4/B,EAAYrwF,EAAG+C,QAAQnW,MAAMjB,MAAQE,EAAKkX,QAAQnW,MAAMjB,MAAQqU,EAAG+C,QAAQnW,MAAMjB,OAASE,EAAKkX,QAAQnW,MAAMjB,KAEjH,GAAa,MAATyE,IAAkBggG,GAAQC,GAG5B,OAAO,EACF,GAAa,MAATjgG,IAA2B,IAAVA,EAC1B,OAAO,EACF,GAAIggG,GAAkB,UAAVhgG,EACjB,OAAOA,EACF,GAAqB,oBAAVA,EAChB,OAAO+/F,EAAK//F,EAAM4P,EAAInU,EAAM6/F,EAAQj7B,GAAM2/B,EAAnCD,CAAyCnwF,EAAInU,EAAM6/F,EAAQj7B,GAElE,IAAI6/B,GAAcF,EAAOpwF,EAAKnU,GAAMkX,QAAQnW,MAAMjB,KAClD,OAAiB,IAAVyE,GAAmC,kBAAVA,GAAsBA,IAAUkgG,GAAclgG,EAAMhG,MAAQgG,EAAMiJ,QAAQi3F,IAAe,GAK/H,IAAI1jG,EAAQ,GACR2jG,EAAgBxtF,EAAQnW,MAEvB2jG,GAA2C,UAA1B1vB,EAAQ0vB,KAC5BA,EAAgB,CACd5kG,KAAM4kG,IAIV3jG,EAAMjB,KAAO4kG,EAAc5kG,KAC3BiB,EAAM4jG,UAAYL,EAAKI,EAAcH,MAAM,GAC3CxjG,EAAM6jG,SAAWN,EAAKI,EAAcG,KACpC9jG,EAAM+jG,YAAcJ,EAAcI,YAClC5tF,EAAQnW,MAAQA,GAEdu/F,GAAsB,YACnB8B,IAA2BrC,IAC9BrpD,EAAIqpD,GAAS,UAAW,SAGxBS,GAAwB,YACrB4B,IAA2BrC,IAC9BrpD,EAAIqpD,GAAS,UAAW,KAKxBiC,IACF7xF,SAASoV,iBAAiB,SAAS,SAAUq/C,GAC3C,GAAI68B,GAKF,OAJA78B,EAAImgC,iBACJngC,EAAIogC,iBAAmBpgC,EAAIogC,kBAC3BpgC,EAAI1yB,0BAA4B0yB,EAAI1yB,2BACpCuvD,IAAkB,GACX,KAER,GAGL,IAAIwD,GAAgC,SAAuCrgC,GACzE,GAAIi7B,GAAQ,CACVj7B,EAAMA,EAAIsgC,QAAUtgC,EAAIsgC,QAAQ,GAAKtgC,EAErC,IAAIugC,EAAUnB,GAA4Bp/B,EAAIwgC,QAASxgC,EAAIygC,SAE3D,GAAIF,EAAS,CAEX,IAAIn0E,EAAQ,GAEZ,IAAK,IAAI3yB,KAAKumE,EACRA,EAAIv1D,eAAehR,KACrB2yB,EAAM3yB,GAAKumE,EAAIvmE,IAInB2yB,EAAM3zB,OAAS2zB,EAAM6tE,OAASsG,EAC9Bn0E,EAAM+zE,oBAAiB,EACvB/zE,EAAMg0E,qBAAkB,EAExBG,EAAQtJ,GAASyJ,YAAYt0E,MAK/Bu0E,GAAwB,SAA+B3gC,GACrDi7B,IACFA,GAAOh3D,WAAWgzD,GAAS2J,iBAAiB5gC,EAAIvnE,SAUpD,SAASk8F,GAAS53F,EAAIuV,GACpB,IAAMvV,IAAMA,EAAGmuC,UAA4B,IAAhBnuC,EAAGmuC,SAC5B,KAAM,8CAA8CnxC,OAAO,GAAGK,SAASvC,KAAKkF,IAG9EjE,KAAKiE,GAAKA,EAEVjE,KAAKwZ,QAAUA,EAAUk/E,EAAS,GAAIl/E,GAEtCvV,EAAGk6F,GAAWn+F,KACd,IAAIigG,EAAW,CACb58F,MAAO,KACP2D,MAAM,EACNsE,UAAU,EACV+hD,MAAO,KACP06C,OAAQ,KACR7/B,UAAW,WAAW5pE,KAAK2F,EAAG2jE,UAAY,MAAQ,KAClDogC,cAAe,EAEfC,YAAY,EAEZC,sBAAuB,KAEvBC,mBAAmB,EACnBC,UAAW,WACT,OAAOxD,GAAiB3gG,EAAIjE,KAAKwZ,UAEnC6uF,WAAY,iBACZC,YAAa,kBACbC,UAAW,gBACXC,OAAQ,SACRl/D,OAAQ,KACRm/D,iBAAiB,EACjBlwB,UAAW,EACXsnB,OAAQ,KACR6I,QAAS,SAAiBC,EAAcxG,GACtCwG,EAAaD,QAAQ,OAAQvG,EAAO90D,cAEtCu7D,YAAY,EACZC,gBAAgB,EAChBC,WAAY,UACZr0F,MAAO,EACPs0F,kBAAkB,EAClBC,qBAAsBv9F,OAAOiJ,SAAWjJ,OAASjK,QAAQkT,SAASlT,OAAOynG,iBAAkB,KAAO,EAClGC,eAAe,EACfC,cAAe,oBACfC,gBAAgB,EAChBC,kBAAmB,EACnBC,eAAgB,CACdhlG,EAAG,EACHsG,EAAG,GAEL2+F,gBAA4C,IAA5B1N,GAAS0N,gBAA4B,iBAAkB/nG,OACvEglG,qBAAsB,GAIxB,IAAK,IAAIpkG,KAFT+9F,GAAcS,kBAAkB5gG,KAAMiE,EAAIg8F,GAEzBA,IACb79F,KAAQoX,KAAaA,EAAQpX,GAAQ69F,EAAS79F,IAMlD,IAAK,IAAIzD,KAHTgoG,GAAcntF,GAGCxZ,KACQ,MAAjBrB,EAAGskB,OAAO,IAAkC,oBAAbjjB,KAAKrB,KACtCqB,KAAKrB,GAAMqB,KAAKrB,GAAImC,KAAKd,OAK7BA,KAAKwpG,iBAAkBhwF,EAAQ0vF,eAAwBzE,GAEnDzkG,KAAKwpG,kBAEPxpG,KAAKwZ,QAAQwvF,oBAAsB,GAIjCxvF,EAAQ+vF,eACVxlG,EAAGE,EAAI,cAAejE,KAAKypG,cAE3B1lG,EAAGE,EAAI,YAAajE,KAAKypG,aACzB1lG,EAAGE,EAAI,aAAcjE,KAAKypG,cAGxBzpG,KAAKwpG,kBACPzlG,EAAGE,EAAI,WAAYjE,MACnB+D,EAAGE,EAAI,YAAajE,OAGtBgkG,GAAU57F,KAAKpI,KAAKiE,IAEpBuV,EAAQ6zC,OAAS7zC,EAAQ6zC,MAAMjnD,KAAOpG,KAAKgH,KAAKwS,EAAQ6zC,MAAMjnD,IAAIpG,OAAS,IAE3E04F,EAAS14F,KAAMo+F,KAqpCjB,SAASsL,GAETxiC,GACMA,EAAIyhC,eACNzhC,EAAIyhC,aAAagB,WAAa,QAGhCziC,EAAI86B,YAAc96B,EAAImgC,iBAGxB,SAASuC,GAAQrI,EAAQD,EAAMa,EAAQ0D,EAAUzE,EAAU0E,EAAY99B,EAAeoD,GACpF,IAAIlE,EAGA2iC,EAFAtJ,EAAWgB,EAAOpD,GAClB2L,EAAWvJ,EAAS/mF,QAAQuuD,OA2BhC,OAxBIvmE,OAAOsgG,aAAgBlJ,GAAeC,GAMxC3xB,EAAMz0D,SAAS0wB,YAAY,SAC3B+jC,EAAIpoB,UAAU,QAAQ,GAAM,IAN5BooB,EAAM,IAAI46B,YAAY,OAAQ,CAC5BC,SAAS,EACTC,YAAY,IAOhB96B,EAAIzwD,GAAK6qF,EACTp6B,EAAI5kE,KAAOi/F,EACXr6B,EAAI60B,QAAUoG,EACdj7B,EAAI6iC,YAAclE,EAClB3+B,EAAI2C,QAAUu3B,GAAYE,EAC1Bp6B,EAAI8iC,YAAclE,GAAcrL,EAAQ6G,GACxCp6B,EAAIkE,gBAAkBA,EACtBlE,EAAIc,cAAgBA,EACpBu5B,EAAOxiD,cAAcmoB,GAEjB4iC,IACFD,EAASC,EAAS/qG,KAAKwhG,EAAUr5B,EAAKc,IAGjC6hC,EAGT,SAASI,GAAkBhmG,GACzBA,EAAGikE,WAAY,EAGjB,SAASgiC,KACP9F,IAAU,EAGZ,SAAS+F,GAAajjC,EAAK6+B,EAAUxF,GACnC,IAAItC,EAAOxD,EAAQuB,EAAUuE,EAASt8F,GAAIs8F,EAAS/mF,QAAQ0uD,YACvDkiC,EAAS,GACb,OAAOrE,EAAW7+B,EAAIwgC,QAAUzJ,EAAKzyF,MAAQ4+F,GAAUljC,EAAIwgC,SAAWzJ,EAAKzyF,OAAS07D,EAAIygC,QAAU1J,EAAKh+E,QAAUinD,EAAIwgC,SAAWzJ,EAAK1yF,KAAO27D,EAAIwgC,QAAUzJ,EAAKzyF,OAAS07D,EAAIygC,QAAU1J,EAAK/9E,KAAOgnD,EAAIwgC,SAAWzJ,EAAKzyF,OAAS07D,EAAIygC,QAAU1J,EAAKh+E,OAASmqF,EAG7P,SAASC,GAAkBnjC,EAAKvnE,EAAQmmG,EAAYC,EAAUiC,EAAeE,EAAuBD,EAAYqC,GAC9G,IAAIC,EAAcxE,EAAW7+B,EAAIygC,QAAUzgC,EAAIwgC,QAC3C8C,EAAezE,EAAWD,EAAWl4F,OAASk4F,EAAWj4F,MACzD48F,EAAW1E,EAAWD,EAAW5lF,IAAM4lF,EAAWv6F,KAClDm/F,EAAW3E,EAAWD,EAAW7lF,OAAS6lF,EAAWt6F,MACrDm/F,GAAS,EAEb,IAAK1C,EAEH,GAAIqC,GAAgB1G,GAAqB4G,EAAexC,GAQtD,IALK/D,KAA4C,IAAlBN,GAAsB4G,EAAcE,EAAWD,EAAetC,EAAwB,EAAIqC,EAAcG,EAAWF,EAAetC,EAAwB,KAEvLjE,IAAwB,GAGrBA,GAOH0G,GAAS,OALT,GAAsB,IAAlBhH,GAAsB4G,EAAcE,EAAW7G,GACjD2G,EAAcG,EAAW9G,GACzB,OAAQD,QAOZ,GAAI4G,EAAcE,EAAWD,GAAgB,EAAIxC,GAAiB,GAAKuC,EAAcG,EAAWF,GAAgB,EAAIxC,GAAiB,EACnI,OAAO4C,GAAoBjrG,GAOjC,OAFAgrG,EAASA,GAAU1C,EAEf0C,IAEEJ,EAAcE,EAAWD,EAAetC,EAAwB,GAAKqC,EAAcG,EAAWF,EAAetC,EAAwB,GAChIqC,EAAcE,EAAWD,EAAe,EAAI,GAAK,EAIrD,EAUT,SAASI,GAAoBjrG,GAC3B,OAAIoK,EAAMo4F,IAAUp4F,EAAMpK,GACjB,GAEC,EAWZ,SAASkrG,GAAY5mG,GACnB,IAAIwD,EAAMxD,EAAGuoC,QAAUvoC,EAAGi7E,UAAYj7E,EAAGsoB,IAAMtoB,EAAGgD,KAAOhD,EAAGopC,YACxD1sC,EAAI8G,EAAI5I,OACRisG,EAAM,EAEV,MAAOnqG,IACLmqG,GAAOrjG,EAAI4e,WAAW1lB,GAGxB,OAAOmqG,EAAIxpG,SAAS,IAGtB,SAASypG,GAAuB13F,GAC9BgxF,GAAkBxlG,OAAS,EAC3B,IAAIq1E,EAAS7gE,EAAK2wD,qBAAqB,SACnC0B,EAAMwO,EAAOr1E,OAEjB,MAAO6mE,IAAO,CACZ,IAAIzhE,EAAKiwE,EAAOxO,GAChBzhE,EAAG+mG,SAAW3G,GAAkBj8F,KAAKnE,IAIzC,SAASgnG,GAAUtsG,GACjB,OAAOgW,WAAWhW,EAAI,GAGxB,SAASusG,GAAgBpiF,GACvB,OAAOvU,aAAauU,GA3yCtB+yE,GAAS36F,UAET,CACEiB,YAAa05F,GACbiM,iBAAkB,SAA0BnoG,GACrCK,KAAKiE,GAAGmO,SAASzS,IAAWA,IAAWK,KAAKiE,KAC/Cy/F,GAAa,OAGjByH,cAAe,SAAuBjkC,EAAKvnE,GACzC,MAAyC,oBAA3BK,KAAKwZ,QAAQ4uF,UAA2BpoG,KAAKwZ,QAAQ4uF,UAAUrpG,KAAKiB,KAAMknE,EAAKvnE,EAAQwiG,IAAUniG,KAAKwZ,QAAQ4uF,WAE9HqB,YAAa,SAEbviC,GACE,GAAKA,EAAI86B,WAAT,CAEA,IAAIl8B,EAAQ9lE,KACRiE,EAAKjE,KAAKiE,GACVuV,EAAUxZ,KAAKwZ,QACfivF,EAAkBjvF,EAAQivF,gBAC1BnlG,EAAO4jE,EAAI5jE,KACX8nG,EAAQlkC,EAAIsgC,SAAWtgC,EAAIsgC,QAAQ,IAAMtgC,EAAImkC,aAAmC,UAApBnkC,EAAImkC,aAA2BnkC,EAC3FvnE,GAAUyrG,GAASlkC,GAAKvnE,OACxB2rG,EAAiBpkC,EAAIvnE,OAAOgd,aAAeuqD,EAAI7vD,MAAQ6vD,EAAI7vD,KAAK,IAAM6vD,EAAIqkC,cAAgBrkC,EAAIqkC,eAAe,KAAO5rG,EACpH2pC,EAAS9vB,EAAQ8vB,OAKrB,GAHAyhE,GAAuB9mG,IAGnBk+F,MAIA,wBAAwB7jG,KAAKgF,IAAwB,IAAf4jE,EAAI+gB,QAAgBzuE,EAAQlO,YAKlEggG,EAAeE,oBAInB7rG,EAAS85F,EAAQ95F,EAAQ6Z,EAAQ0uD,UAAWjkE,GAAI,KAE5CtE,IAAUA,EAAOmgG,WAIjByC,KAAe5iG,GAAnB,CASA,GAHA8pE,GAAW1/D,EAAMpK,GACjB6hG,GAAoBz3F,EAAMpK,EAAQ6Z,EAAQ0uD,WAEpB,oBAAX5+B,GACT,GAAIA,EAAOvqC,KAAKiB,KAAMknE,EAAKvnE,EAAQK,MAcjC,OAbAkjG,GAAe,CACb3C,SAAUz6B,EACVq7B,OAAQmK,EACRlpG,KAAM,SACNg/F,SAAUzhG,EACV2hG,KAAMr9F,EACNs9F,OAAQt9F,IAGVo8F,GAAY,SAAUv6B,EAAO,CAC3BoB,IAAKA,SAEPuhC,GAAmBvhC,EAAI86B,YAAc96B,EAAImgC,uBAGtC,GAAI/9D,IACTA,EAASA,EAAOxgC,MAAM,KAAKgC,MAAK,SAAU2gG,GAGxC,GAFAA,EAAWhS,EAAQ6R,EAAgBG,EAAS10D,OAAQ9yC,GAAI,GAEpDwnG,EAaF,OAZAvI,GAAe,CACb3C,SAAUz6B,EACVq7B,OAAQsK,EACRrpG,KAAM,SACNg/F,SAAUzhG,EACV4hG,OAAQt9F,EACRq9F,KAAMr9F,IAGRo8F,GAAY,SAAUv6B,EAAO,CAC3BoB,IAAKA,KAEA,KAIP59B,GAEF,YADAm/D,GAAmBvhC,EAAI86B,YAAc96B,EAAImgC,kBAKzC7tF,EAAQuuF,SAAWtO,EAAQ6R,EAAgB9xF,EAAQuuF,OAAQ9jG,GAAI,IAKnEjE,KAAK0rG,kBAAkBxkC,EAAKkkC,EAAOzrG,MAErC+rG,kBAAmB,SAEnBxkC,EAEAkkC,EAEAzrG,GACE,IAIIgsG,EAJA7lC,EAAQ9lE,KACRiE,EAAK6hE,EAAM7hE,GACXuV,EAAUssD,EAAMtsD,QAChBq8B,EAAgB5xC,EAAG4xC,cAGvB,GAAIl2C,IAAWwiG,IAAUxiG,EAAOwrC,aAAelnC,EAAI,CACjD,IAAI4hG,EAAWpL,EAAQ96F,GAwEvB,GAvEAwhG,GAASl9F,EACTk+F,GAASxiG,EACTyiG,GAAWD,GAAOh3D,WAClBm3D,GAASH,GAAOh1D,YAChBo1D,GAAa5iG,EACbwjG,GAAc3pF,EAAQnW,MACtBw4F,GAASE,QAAUoG,GACnBiB,GAAS,CACPzjG,OAAQwiG,GACRuF,SAAU0D,GAASlkC,GAAKwgC,QACxBC,SAAUyD,GAASlkC,GAAKygC,SAE1BnE,GAAkBJ,GAAOsE,QAAU7B,EAASt6F,KAC5Ck4F,GAAiBL,GAAOuE,QAAU9B,EAAS3lF,IAC3ClgB,KAAK4rG,QAAUR,GAASlkC,GAAKwgC,QAC7B1nG,KAAK6rG,QAAUT,GAASlkC,GAAKygC,QAC7BxF,GAAOx0F,MAAM,eAAiB,MAE9Bg+F,EAAc,WACZtL,GAAY,aAAcv6B,EAAO,CAC/BoB,IAAKA,IAGH20B,GAAS2E,cACX16B,EAAMgmC,WAORhmC,EAAMimC,6BAEDjT,GAAWhzB,EAAM0jC,kBACpBrH,GAAOj6B,WAAY,GAIrBpC,EAAMkmC,kBAAkB9kC,EAAKkkC,GAG7BlI,GAAe,CACb3C,SAAUz6B,EACV1jE,KAAM,SACN4lE,cAAed,IAIjB2yB,EAAYsI,GAAQ3oF,EAAQ8uF,aAAa,KAI3C9uF,EAAQgvF,OAAO1/F,MAAM,KAAKlC,SAAQ,SAAU6kG,GAC1Cx9C,EAAKk0C,GAAQsJ,EAAS10D,OAAQkzD,OAEhClmG,EAAG8xC,EAAe,WAAY0xD,IAC9BxjG,EAAG8xC,EAAe,YAAa0xD,IAC/BxjG,EAAG8xC,EAAe,YAAa0xD,IAC/BxjG,EAAG8xC,EAAe,UAAWiwB,EAAMgmC,SACnC/nG,EAAG8xC,EAAe,WAAYiwB,EAAMgmC,SACpC/nG,EAAG8xC,EAAe,cAAeiwB,EAAMgmC,SAEnChT,GAAW94F,KAAKwpG,kBAClBxpG,KAAKwZ,QAAQwvF,oBAAsB,EACnC7G,GAAOj6B,WAAY,GAGrBm4B,GAAY,aAAcrgG,KAAM,CAC9BknE,IAAKA,KAGH1tD,EAAQ/E,OAAW+E,EAAQuvF,mBAAoBqC,GAAYprG,KAAKwpG,kBAAqB3Q,GAAQD,GAkB/F+S,QAlB6G,CAC7G,GAAI9P,GAAS2E,cAGX,YAFAxgG,KAAK8rG,UAQP/nG,EAAG8xC,EAAe,UAAWiwB,EAAMmmC,qBACnCloG,EAAG8xC,EAAe,WAAYiwB,EAAMmmC,qBACpCloG,EAAG8xC,EAAe,cAAeiwB,EAAMmmC,qBACvCloG,EAAG8xC,EAAe,YAAaiwB,EAAMomC,8BACrCnoG,EAAG8xC,EAAe,YAAaiwB,EAAMomC,8BACrC1yF,EAAQ+vF,gBAAkBxlG,EAAG8xC,EAAe,cAAeiwB,EAAMomC,8BACjEpmC,EAAMqmC,gBAAkBx3F,WAAWg3F,EAAanyF,EAAQ/E,UAM9Dy3F,6BAA8B,SAE9BzhG,GACE,IAAI2gG,EAAQ3gG,EAAE+8F,QAAU/8F,EAAE+8F,QAAQ,GAAK/8F,EAEnCnC,KAAK4Q,IAAI5Q,KAAKknE,IAAI47B,EAAM1D,QAAU1nG,KAAK4rG,QAAStjG,KAAKknE,IAAI47B,EAAMzD,QAAU3nG,KAAK6rG,UAAYvjG,KAAKgZ,MAAMthB,KAAKwZ,QAAQwvF,qBAAuBhpG,KAAKwpG,iBAAmBhoG,OAAOynG,kBAAoB,KAC9LjpG,KAAKisG,uBAGTA,oBAAqB,WACnB9J,IAAU8H,GAAkB9H,IAC5B5tF,aAAavU,KAAKmsG,iBAElBnsG,KAAK+rG,6BAEPA,0BAA2B,WACzB,IAAIl2D,EAAgB71C,KAAKiE,GAAG4xC,cAC5BsjD,EAAItjD,EAAe,UAAW71C,KAAKisG,qBACnC9S,EAAItjD,EAAe,WAAY71C,KAAKisG,qBACpC9S,EAAItjD,EAAe,cAAe71C,KAAKisG,qBACvC9S,EAAItjD,EAAe,YAAa71C,KAAKksG,8BACrC/S,EAAItjD,EAAe,YAAa71C,KAAKksG,8BACrC/S,EAAItjD,EAAe,cAAe71C,KAAKksG,+BAEzCF,kBAAmB,SAEnB9kC,EAEAkkC,GACEA,EAAQA,GAA4B,SAAnBlkC,EAAImkC,aAA0BnkC,GAE1ClnE,KAAKwpG,iBAAmB4B,EACvBprG,KAAKwZ,QAAQ+vF,eACfxlG,EAAG0O,SAAU,cAAezS,KAAKosG,cAEjCroG,EAAG0O,SADM24F,EACI,YAEA,YAFaprG,KAAKosG,eAKjCroG,EAAGo+F,GAAQ,UAAWniG,MACtB+D,EAAGo9F,GAAQ,YAAanhG,KAAKqsG,eAG/B,IACM55F,SAAS65F,UAEXrB,IAAU,WACRx4F,SAAS65F,UAAUC,WAGrB/qG,OAAOgrG,eAAeC,kBAExB,MAAOl8E,MAEXm8E,aAAc,SAAsBx2E,EAAUgxC,GAI5C,GAFA48B,IAAsB,EAElB3C,IAAUgB,GAAQ,CACpB9B,GAAY,cAAergG,KAAM,CAC/BknE,IAAKA,IAGHlnE,KAAKwpG,iBACPzlG,EAAG0O,SAAU,WAAYo1F,IAG3B,IAAIruF,EAAUxZ,KAAKwZ,SAElB0c,GAAY2jE,EAAYsI,GAAQ3oF,EAAQ+uF,WAAW,GACpD1O,EAAYsI,GAAQ3oF,EAAQ6uF,YAAY,GACxCxM,GAASh+E,OAAS7d,KAClBk2B,GAAYl2B,KAAK2sG,eAEjBzJ,GAAe,CACb3C,SAAUvgG,KACVoC,KAAM,QACN4lE,cAAed,SAGjBlnE,KAAK4sG,YAGTC,iBAAkB,WAChB,GAAIxJ,GAAU,CACZrjG,KAAK4rG,OAASvI,GAASqE,QACvB1nG,KAAK6rG,OAASxI,GAASsE,QAEvB/E,KAEA,IAAIjjG,EAAS8S,SAASq6F,iBAAiBzJ,GAASqE,QAASrE,GAASsE,SAC9DvrF,EAASzc,EAEb,MAAOA,GAAUA,EAAOgd,WAAY,CAElC,GADAhd,EAASA,EAAOgd,WAAWmwF,iBAAiBzJ,GAASqE,QAASrE,GAASsE,SACnEhoG,IAAWyc,EAAQ,MACvBA,EAASzc,EAKX,GAFAwiG,GAAOh3D,WAAWgzD,GAAS2J,iBAAiBnoG,GAExCyc,EACF,EAAG,CACD,GAAIA,EAAO+hF,GAAU,CACnB,IAAIzyE,OAAW,EAQf,GAPAA,EAAWtP,EAAO+hF,GAASyJ,YAAY,CACrCF,QAASrE,GAASqE,QAClBC,QAAStE,GAASsE,QAClBhoG,OAAQA,EACRwhG,OAAQ/kF,IAGNsP,IAAa1rB,KAAKwZ,QAAQqvF,eAC5B,MAIJlpG,EAASyc,QAGJA,EAASA,EAAO+uB,YAGzB23D,OAGJsJ,aAAc,SAEdllC,GACE,GAAIk8B,GAAQ,CACV,IAAI5pF,EAAUxZ,KAAKwZ,QACf6vF,EAAoB7vF,EAAQ6vF,kBAC5BC,EAAiB9vF,EAAQ8vF,eACzB8B,EAAQlkC,EAAIsgC,QAAUtgC,EAAIsgC,QAAQ,GAAKtgC,EACvC6lC,EAAc1K,IAAW1S,EAAO0S,IAAS,GACzCnH,EAASmH,IAAW0K,GAAeA,EAAY/tG,EAC/Cm8F,EAASkH,IAAW0K,GAAeA,EAAY7+F,EAC/C8+F,EAAuBzI,IAA2BV,IAAuB1H,EAAwB0H,IACjG5hD,GAAMmpD,EAAM1D,QAAUtE,GAAOsE,QAAU4B,EAAehlG,IAAM42F,GAAU,IAAM8R,EAAuBA,EAAqB,GAAK7I,GAAiC,GAAK,IAAMjJ,GAAU,GACnLh5C,GAAMkpD,EAAMzD,QAAUvE,GAAOuE,QAAU2B,EAAe1+F,IAAMuwF,GAAU,IAAM6R,EAAuBA,EAAqB,GAAK7I,GAAiC,GAAK,IAAMhJ,GAAU,GAEvL,IAAKU,GAASh+E,SAAWimF,GAAqB,CAC5C,GAAIuF,GAAqB/gG,KAAK4Q,IAAI5Q,KAAKknE,IAAI47B,EAAM1D,QAAU1nG,KAAK4rG,QAAStjG,KAAKknE,IAAI47B,EAAMzD,QAAU3nG,KAAK6rG,SAAWxC,EAChH,OAGFrpG,KAAKqsG,aAAanlC,GAAK,GAGzB,GAAIm7B,GAAS,CACP0K,GACFA,EAAYtiG,GAAKw3C,GAAMqhD,IAAU,GACjCyJ,EAAY1rG,GAAK6gD,GAAMqhD,IAAU,IAEjCwJ,EAAc,CACZ/tG,EAAG,EACHC,EAAG,EACHC,EAAG,EACHgP,EAAG,EACHzD,EAAGw3C,EACH5gD,EAAG6gD,GAIP,IAAI+qD,EAAY,UAAUhsG,OAAO8rG,EAAY/tG,EAAG,KAAKiC,OAAO8rG,EAAY9tG,EAAG,KAAKgC,OAAO8rG,EAAY7tG,EAAG,KAAK+B,OAAO8rG,EAAY7+F,EAAG,KAAKjN,OAAO8rG,EAAYtiG,EAAG,KAAKxJ,OAAO8rG,EAAY1rG,EAAG,KACvL23C,EAAIqpD,GAAS,kBAAmB4K,GAChCj0D,EAAIqpD,GAAS,eAAgB4K,GAC7Bj0D,EAAIqpD,GAAS,cAAe4K,GAC5Bj0D,EAAIqpD,GAAS,YAAa4K,GAC1B3J,GAASrhD,EACTshD,GAASrhD,EACTmhD,GAAW+H,EAGblkC,EAAI86B,YAAc96B,EAAImgC,mBAG1BsF,aAAc,WAGZ,IAAKtK,GAAS,CACZ,IAAI/pB,EAAYt4E,KAAKwZ,QAAQ4vF,eAAiB32F,SAAS4uC,KAAO8/C,GAC1DlD,EAAOxD,EAAQ0H,IAAQ,EAAMoC,IAAyB,EAAMjsB,GAC5D9+D,EAAUxZ,KAAKwZ,QAEnB,GAAI+qF,GAAyB,CAE3BV,GAAsBvrB,EAEtB,MAAgD,WAAzCt/B,EAAI6qD,GAAqB,aAAsE,SAA1C7qD,EAAI6qD,GAAqB,cAA2BA,KAAwBpxF,SACtIoxF,GAAsBA,GAAoB14D,WAGxC04D,KAAwBpxF,SAAS4uC,MAAQwiD,KAAwBpxF,SAAS2xD,iBACxEy/B,KAAwBpxF,WAAUoxF,GAAsBtJ,KAC5D0D,EAAK/9E,KAAO2jF,GAAoBrH,UAChCyB,EAAK1yF,MAAQs4F,GAAoBtH,YAEjCsH,GAAsBtJ,IAGxB4J,GAAmChI,EAAwB0H,IAG7DxB,GAAUF,GAAOrgD,WAAU,GAC3B+3C,EAAYwI,GAAS7oF,EAAQ6uF,YAAY,GACzCxO,EAAYwI,GAAS7oF,EAAQ2vF,eAAe,GAC5CtP,EAAYwI,GAAS7oF,EAAQ+uF,WAAW,GACxCvvD,EAAIqpD,GAAS,aAAc,IAC3BrpD,EAAIqpD,GAAS,YAAa,IAC1BrpD,EAAIqpD,GAAS,aAAc,cAC3BrpD,EAAIqpD,GAAS,SAAU,GACvBrpD,EAAIqpD,GAAS,MAAOpE,EAAK/9E,KACzB84B,EAAIqpD,GAAS,OAAQpE,EAAK1yF,MAC1BytC,EAAIqpD,GAAS,QAASpE,EAAKpwF,OAC3BmrC,EAAIqpD,GAAS,SAAUpE,EAAKrwF,QAC5BorC,EAAIqpD,GAAS,UAAW,OACxBrpD,EAAIqpD,GAAS,WAAYkC,GAA0B,WAAa,SAChEvrD,EAAIqpD,GAAS,SAAU,UACvBrpD,EAAIqpD,GAAS,gBAAiB,QAC9BxG,GAASC,MAAQuG,GACjB/pB,EAAUprC,YAAYm1D,IAEtBrpD,EAAIqpD,GAAS,mBAAoBmB,GAAkB9uF,SAAS2tF,GAAQ10F,MAAME,OAAS,IAAM,KAAO41F,GAAiB/uF,SAAS2tF,GAAQ10F,MAAMC,QAAU,IAAM,OAG5Jy+F,aAAc,SAEdnlC,EAEAhxC,GACE,IAAI4vC,EAAQ9lE,KAER2oG,EAAezhC,EAAIyhC,aACnBnvF,EAAUssD,EAAMtsD,QACpB6mF,GAAY,YAAargG,KAAM,CAC7BknE,IAAKA,IAGH20B,GAAS2E,cACXxgG,KAAK8rG,WAKPzL,GAAY,aAAcrgG,MAErB67F,GAAS2E,gBACZa,GAAU5mE,EAAM0nE,IAChBd,GAAQn5B,WAAY,EACpBm5B,GAAQ1zF,MAAM,eAAiB,GAE/B3N,KAAKktG,aAELrT,EAAYwH,GAASrhG,KAAKwZ,QAAQ8uF,aAAa,GAC/CzM,GAASphE,MAAQ4mE,IAInBv7B,EAAMqnC,QAAUlC,IAAU,WACxB5K,GAAY,QAASv6B,GACjB+1B,GAAS2E,gBAER16B,EAAMtsD,QAAQ2uF,mBACjBhH,GAAOr0D,aAAau0D,GAASc,IAG/Br8B,EAAMonC,aAENhK,GAAe,CACb3C,SAAUz6B,EACV1jE,KAAM,eAGT8zB,GAAY2jE,EAAYsI,GAAQ3oF,EAAQ+uF,WAAW,GAEhDryE,GACF6tE,IAAkB,EAClBj+B,EAAMsnC,QAAUC,YAAYvnC,EAAM+mC,iBAAkB,MAGpD1T,EAAI1mF,SAAU,UAAWqzD,EAAMgmC,SAC/B3S,EAAI1mF,SAAU,WAAYqzD,EAAMgmC,SAChC3S,EAAI1mF,SAAU,cAAeqzD,EAAMgmC,SAE/BnD,IACFA,EAAa2E,cAAgB,OAC7B9zF,EAAQkvF,SAAWlvF,EAAQkvF,QAAQ3pG,KAAK+mE,EAAO6iC,EAAcxG,KAG/Dp+F,EAAG0O,SAAU,OAAQqzD,GAErB9sB,EAAImpD,GAAQ,YAAa,kBAG3B2B,IAAsB,EACtBh+B,EAAMynC,aAAetC,GAAUnlC,EAAM4mC,aAAa5rG,KAAKglE,EAAO5vC,EAAUgxC,IACxEnjE,EAAG0O,SAAU,cAAeqzD,GAC5BvkB,IAAQ,EAEJw3C,GACF//C,EAAIvmC,SAAS4uC,KAAM,cAAe,UAItCumD,YAAa,SAEb1gC,GACE,IAEI2+B,EACAC,EACA0H,EAOAzH,EAXA9hG,EAAKjE,KAAKiE,GACVtE,EAASunE,EAAIvnE,OAIb6Z,EAAUxZ,KAAKwZ,QACfnW,EAAQmW,EAAQnW,MAChBq/F,EAAiB7G,GAASh+E,OAC1B4vF,EAAUtK,KAAgB9/F,EAC1BqqG,EAAUl0F,EAAQxS,KAClB2mG,EAAejM,IAAegB,EAE9B58B,EAAQ9lE,KACR4tG,GAAiB,EAErB,IAAIxJ,GAAJ,CAgHA,QAN2B,IAAvBl9B,EAAImgC,gBACNngC,EAAI86B,YAAc96B,EAAImgC,iBAGxB1nG,EAAS85F,EAAQ95F,EAAQ6Z,EAAQ0uD,UAAWjkE,GAAI,GAChD4pG,EAAc,YACVhS,GAAS2E,cAAe,OAAOoN,EAEnC,GAAIzL,GAAO/vF,SAAS80D,EAAIvnE,SAAWA,EAAOmgG,UAAYngG,EAAO+/F,YAAc//F,EAAOggG,YAAc75B,EAAMgoC,wBAA0BnuG,EAC9H,OAAOouG,GAAU,GAKnB,GAFAhK,IAAkB,EAEdrB,IAAmBlpF,EAAQlO,WAAamiG,EAAUC,IAAYF,GAAUrM,GAAO/uF,SAAS+vF,KAC1FT,KAAgB1hG,OAASA,KAAKiiG,YAAckB,GAAY8D,UAAUjnG,KAAM0iG,EAAgBP,GAAQj7B,KAAS7jE,EAAM6jG,SAASlnG,KAAM0iG,EAAgBP,GAAQj7B,IAAO,CAI7J,GAHA6+B,EAA+C,aAApC/lG,KAAKmrG,cAAcjkC,EAAKvnE,GACnCkmG,EAAWpL,EAAQ0H,IACnB0L,EAAc,iBACVhS,GAAS2E,cAAe,OAAOoN,EAEnC,GAAIJ,EAiBF,OAhBApL,GAAWjB,GAEXvwE,IAEA5wB,KAAKktG,aAELW,EAAc,UAEThS,GAAS2E,gBACR8B,GACFnB,GAAOr0D,aAAaq1D,GAAQG,IAE5BnB,GAAOj0D,YAAYi1D,KAIhB4L,GAAU,GAGnB,IAAIC,EAAchS,EAAU/3F,EAAIuV,EAAQ0uD,WAExC,IAAK8lC,GAAe7D,GAAajjC,EAAK6+B,EAAU/lG,QAAUguG,EAAYlO,SAAU,CAE9E,GAAIkO,IAAgB7L,GAClB,OAAO4L,GAAU,GAYnB,GARIC,GAAe/pG,IAAOijE,EAAIvnE,SAC5BA,EAASquG,GAGPruG,IACFmmG,EAAarL,EAAQ96F,KAG0D,IAA7EiqG,GAAQzI,GAAQl9F,EAAIk+F,GAAQ0D,EAAUlmG,EAAQmmG,EAAY5+B,IAAOvnE,GAMnE,OALAixB,IACA3sB,EAAGipC,YAAYi1D,IACfC,GAAWn+F,EAEXgqG,IACOF,GAAU,QAEd,GAAIpuG,EAAOwrC,aAAelnC,EAAI,CACnC6hG,EAAarL,EAAQ96F,GACrB,IACIuuG,EAcAC,EAfA/F,EAAY,EAEZgG,EAAiBjM,GAAOh3D,aAAelnC,EACvCoqG,GAAmBzI,GAAmBzD,GAAOrC,UAAYqC,GAAOnD,QAAU6G,EAAUlmG,EAAOmgG,UAAYngG,EAAOq/F,QAAU8G,EAAYC,GACpIuI,EAAQvI,EAAW,MAAQ,OAC3BwI,EAAkBnT,EAAez7F,EAAQ,MAAO,QAAUy7F,EAAe+G,GAAQ,MAAO,OACxFqM,EAAeD,EAAkBA,EAAgB/R,eAAY,EAWjE,GATIkH,KAAe/jG,IACjBuuG,EAAwBpI,EAAWwI,GACnCrK,IAAwB,EACxBC,IAA0BmK,GAAmB70F,EAAQyuF,YAAcmG,GAGrEhG,EAAYiC,GAAkBnjC,EAAKvnE,EAAQmmG,EAAYC,EAAUsI,EAAkB,EAAI70F,EAAQwuF,cAAgD,MAAjCxuF,EAAQ0uF,sBAAgC1uF,EAAQwuF,cAAgBxuF,EAAQ0uF,sBAAuBhE,GAAwBR,KAAe/jG,GAGlO,IAAdyoG,EAAiB,CAEnB,IAAIqG,EAAY1kG,EAAMo4F,IAEtB,GACEsM,GAAarG,EACb+F,EAAU/L,GAAS9zF,SAASmgG,SACrBN,IAAwC,SAA5Bn1D,EAAIm1D,EAAS,YAAyBA,IAAY9L,KAIzE,GAAkB,IAAd+F,GAAmB+F,IAAYxuG,EACjC,OAAOouG,GAAU,GAGnBrK,GAAa/jG,EACbgkG,GAAgByE,EAChB,IAAIj7D,EAAcxtC,EAAO+uG,mBACrBr7C,GAAQ,EACZA,EAAsB,IAAd+0C,EAER,IAAIuG,EAAa/E,GAAQzI,GAAQl9F,EAAIk+F,GAAQ0D,EAAUlmG,EAAQmmG,EAAY5+B,EAAK7T,GAEhF,IAAmB,IAAfs7C,EA4BF,OA3BmB,IAAfA,IAAoC,IAAhBA,IACtBt7C,EAAuB,IAAfs7C,GAGVvK,IAAU,EACVzvF,WAAWu1F,GAAW,IACtBt5E,IAEIyiC,IAAUlmB,EACZlpC,EAAGipC,YAAYi1D,IAEfxiG,EAAOwrC,WAAW2B,aAAaq1D,GAAQ9uC,EAAQlmB,EAAcxtC,GAI3D4uG,GACF5Q,EAAS4Q,EAAiB,EAAGC,EAAeD,EAAgB/R,WAG9D4F,GAAWD,GAAOh3D,gBAGYrsC,IAA1BovG,GAAwChK,KAC1CN,GAAqBt7F,KAAKknE,IAAI0+B,EAAwBzT,EAAQ96F,GAAQ2uG,KAGxEL,IACOF,GAAU,GAIrB,GAAI9pG,EAAGmO,SAAS+vF,IACd,OAAO4L,GAAU,GAIrB,OAAO,EAzPP,SAASF,EAAczrG,EAAMg6E,GAC3BikB,GAAYj+F,EAAM0jE,EAAO6yB,EAAc,CACrCzxB,IAAKA,EACLumC,QAASA,EACTmB,KAAM7I,EAAW,WAAa,aAC9ByH,OAAQA,EACR3H,SAAUA,EACVC,WAAYA,EACZ4H,QAASA,EACTC,aAAcA,EACdhuG,OAAQA,EACRouG,UAAWA,EACXhmC,OAAQ,SAAgBpoE,EAAQ0zD,GAC9B,OAAOu2C,GAAQzI,GAAQl9F,EAAIk+F,GAAQ0D,EAAUlmG,EAAQ86F,EAAQ96F,GAASunE,EAAK7T,IAE7E46C,QAASA,GACR7xB,IAIL,SAASxrD,IACPi9E,EAAc,4BAEd/nC,EAAMy4B,wBAEFz4B,IAAU6nC,GACZA,EAAapP,wBAKjB,SAASwP,EAAUc,GAuDjB,OAtDAhB,EAAc,oBAAqB,CACjCgB,UAAWA,IAGTA,IAEEpB,EACF/K,EAAewK,aAEfxK,EAAeoM,WAAWhpC,GAGxBA,IAAU6nC,IAEZ9T,EAAYsI,GAAQT,GAAcA,GAAYloF,QAAQ6uF,WAAa3F,EAAelpF,QAAQ6uF,YAAY,GACtGxO,EAAYsI,GAAQ3oF,EAAQ6uF,YAAY,IAGtC3G,KAAgB57B,GAASA,IAAU+1B,GAASh+E,OAC9C6jF,GAAc57B,EACLA,IAAU+1B,GAASh+E,QAAU6jF,KACtCA,GAAc,MAIZiM,IAAiB7nC,IACnBA,EAAMgoC,sBAAwBnuG,GAGhCmmE,EAAM+4B,YAAW,WACfgP,EAAc,6BACd/nC,EAAMgoC,sBAAwB,QAG5BhoC,IAAU6nC,IACZA,EAAa9O,aACb8O,EAAaG,sBAAwB,QAKrCnuG,IAAWwiG,KAAWA,GAAOrC,UAAYngG,IAAWsE,IAAOtE,EAAOmgG,YACpE4D,GAAa,MAIVlqF,EAAQqvF,gBAAmB3hC,EAAIi6B,QAAUxhG,IAAW8S,WACvD0vF,GAAOh3D,WAAWgzD,GAAS2J,iBAAiB5gC,EAAIvnE,SAG/CkvG,GAAatH,GAA8BrgC,KAG7C1tD,EAAQqvF,gBAAkB3hC,EAAIogC,iBAAmBpgC,EAAIogC,kBAC/CsG,GAAiB,EAI1B,SAASK,IACPvkC,GAAW3/D,EAAMo4F,IACjBV,GAAoB13F,EAAMo4F,GAAQ3oF,EAAQ0uD,WAE1Cg7B,GAAe,CACb3C,SAAUz6B,EACV1jE,KAAM,SACNk/F,KAAMr9F,EACNylE,SAAUA,GACV+3B,kBAAmBA,GACnBz5B,cAAed,MAuJrB4mC,sBAAuB,KACvBiB,eAAgB,WACd5V,EAAI1mF,SAAU,YAAazS,KAAKosG,cAChCjT,EAAI1mF,SAAU,YAAazS,KAAKosG,cAChCjT,EAAI1mF,SAAU,cAAezS,KAAKosG,cAClCjT,EAAI1mF,SAAU,WAAY80F,IAC1BpO,EAAI1mF,SAAU,YAAa80F,IAC3BpO,EAAI1mF,SAAU,YAAa80F,KAE7ByH,aAAc,WACZ,IAAIn5D,EAAgB71C,KAAKiE,GAAG4xC,cAC5BsjD,EAAItjD,EAAe,UAAW71C,KAAK8rG,SACnC3S,EAAItjD,EAAe,WAAY71C,KAAK8rG,SACpC3S,EAAItjD,EAAe,YAAa71C,KAAK8rG,SACrC3S,EAAItjD,EAAe,cAAe71C,KAAK8rG,SACvC3S,EAAI1mF,SAAU,cAAezS,OAE/B8rG,QAAS,SAET5kC,GACE,IAAIjjE,EAAKjE,KAAKiE,GACVuV,EAAUxZ,KAAKwZ,QAEnBkwD,GAAW3/D,EAAMo4F,IACjBV,GAAoB13F,EAAMo4F,GAAQ3oF,EAAQ0uD,WAC1Cm4B,GAAY,OAAQrgG,KAAM,CACxBknE,IAAKA,IAEPk7B,GAAWD,IAAUA,GAAOh3D,WAE5Bu+B,GAAW3/D,EAAMo4F,IACjBV,GAAoB13F,EAAMo4F,GAAQ3oF,EAAQ0uD,WAEtC2zB,GAAS2E,gBAMbsD,IAAsB,EACtBI,IAAyB,EACzBD,IAAwB,EACxBgL,cAAcjvG,KAAKotG,SACnB74F,aAAavU,KAAKmsG,iBAElBjB,GAAgBlrG,KAAKmtG,SAErBjC,GAAgBlrG,KAAKutG,cAGjBvtG,KAAKwpG,kBACPrQ,EAAI1mF,SAAU,OAAQzS,MACtBm5F,EAAIl1F,EAAI,YAAajE,KAAKqsG,eAG5BrsG,KAAK+uG,iBAEL/uG,KAAKgvG,eAEDjW,GACF//C,EAAIvmC,SAAS4uC,KAAM,cAAe,IAGpCrI,EAAImpD,GAAQ,YAAa,IAErBj7B,IACE3lB,KACF2lB,EAAI86B,YAAc96B,EAAImgC,kBACrB7tF,EAAQovF,YAAc1hC,EAAIogC,mBAG7BjF,IAAWA,GAAQl3D,YAAck3D,GAAQl3D,WAAW8B,YAAYo1D,KAE5DlB,KAAWiB,IAAYV,IAA2C,UAA5BA,GAAYO,cAEpDZ,IAAWA,GAAQl2D,YAAck2D,GAAQl2D,WAAW8B,YAAYo0D,IAG9Dc,KACEniG,KAAKwpG,iBACPrQ,EAAIgJ,GAAQ,UAAWniG,MAGzBiqG,GAAkB9H,IAElBA,GAAOx0F,MAAM,eAAiB,GAG1B4zC,KAAUuiD,IACZjK,EAAYsI,GAAQT,GAAcA,GAAYloF,QAAQ6uF,WAAaroG,KAAKwZ,QAAQ6uF,YAAY,GAG9FxO,EAAYsI,GAAQniG,KAAKwZ,QAAQ8uF,aAAa,GAE9CpF,GAAe,CACb3C,SAAUvgG,KACVoC,KAAM,WACNk/F,KAAMc,GACN14B,SAAU,KACV+3B,kBAAmB,KACnBz5B,cAAed,IAGbi6B,KAAWiB,IACT14B,IAAY,IAEdw5B,GAAe,CACb/B,OAAQiB,GACRhgG,KAAM,MACNk/F,KAAMc,GACNb,OAAQJ,GACRn5B,cAAed,IAIjBg8B,GAAe,CACb3C,SAAUvgG,KACVoC,KAAM,SACNk/F,KAAMc,GACNp6B,cAAed,IAIjBg8B,GAAe,CACb/B,OAAQiB,GACRhgG,KAAM,OACNk/F,KAAMc,GACNb,OAAQJ,GACRn5B,cAAed,IAGjBg8B,GAAe,CACb3C,SAAUvgG,KACVoC,KAAM,OACNk/F,KAAMc,GACNp6B,cAAed,KAInBw6B,IAAeA,GAAYwN,QAEvBxlC,KAAaD,IACXC,IAAY,IAEdw5B,GAAe,CACb3C,SAAUvgG,KACVoC,KAAM,SACNk/F,KAAMc,GACNp6B,cAAed,IAGjBg8B,GAAe,CACb3C,SAAUvgG,KACVoC,KAAM,OACNk/F,KAAMc,GACNp6B,cAAed,KAMnB20B,GAASh+E,SAEK,MAAZ6rD,KAAkC,IAAdA,KACtBA,GAAWD,GACXg4B,GAAoBD,IAGtB0B,GAAe,CACb3C,SAAUvgG,KACVoC,KAAM,MACNk/F,KAAMc,GACNp6B,cAAed,IAIjBlnE,KAAKkvG,WA9ITlvG,KAAK4sG,YAqJTA,SAAU,WACRvM,GAAY,UAAWrgG,MACvBmhG,GAASgB,GAASC,GAAWC,GAAUC,GAASjB,GAAUkB,GAAaC,GAAcY,GAASC,GAAW9hD,GAAQmoB,GAAW+3B,GAAoBh4B,GAAW+3B,GAAoBkC,GAAaC,GAAgBjC,GAAcyB,GAActH,GAASE,QAAUF,GAASC,MAAQD,GAASphE,MAAQohE,GAASh+E,OAAS,KAC/SwmF,GAAkBz9F,SAAQ,SAAU3C,GAClCA,EAAG+mG,SAAU,KAEf3G,GAAkBxlG,OAASykG,GAASC,GAAS,GAE/C4L,YAAa,SAEbjoC,GACE,OAAQA,EAAI5jE,MACV,IAAK,OACL,IAAK,UACHtD,KAAK8rG,QAAQ5kC,GAEb,MAEF,IAAK,YACL,IAAK,WACCi7B,KACFniG,KAAK4nG,YAAY1gC,GAEjBwiC,GAAgBxiC,IAGlB,MAEF,IAAK,cACHA,EAAImgC,iBACJ,QAQN3jF,QAAS,WAQP,IAPA,IACIzf,EADA+6E,EAAQ,GAER1wE,EAAWtO,KAAKiE,GAAGqK,SACnB3N,EAAI,EACJuB,EAAIoM,EAASzP,OACb2a,EAAUxZ,KAAKwZ,QAEZ7Y,EAAIuB,EAAGvB,IACZsD,EAAKqK,EAAS3N,GAEV84F,EAAQx1F,EAAIuV,EAAQ0uD,UAAWloE,KAAKiE,IAAI,IAC1C+6E,EAAM52E,KAAKnE,EAAG20C,aAAap/B,EAAQsvF,aAAe+B,GAAY5mG,IAIlE,OAAO+6E,GAOTh4E,KAAM,SAAcg4E,GAClB,IAAIzxD,EAAQ,GACR4zE,EAASnhG,KAAKiE,GAClBjE,KAAK0jB,UAAU9c,SAAQ,SAAUkiB,EAAInoB,GACnC,IAAIsD,EAAKk9F,EAAO7yF,SAAS3N,GAErB84F,EAAQx1F,EAAIjE,KAAKwZ,QAAQ0uD,UAAWi5B,GAAQ,KAC9C5zE,EAAMzE,GAAM7kB,KAEbjE,MACHg/E,EAAMp4E,SAAQ,SAAUkiB,GAClByE,EAAMzE,KACRq4E,EAAOl0D,YAAY1f,EAAMzE,IACzBq4E,EAAOj0D,YAAY3f,EAAMzE,SAQ/BomF,KAAM,WACJ,IAAI7hD,EAAQrtD,KAAKwZ,QAAQ6zC,MACzBA,GAASA,EAAM5kC,KAAO4kC,EAAM5kC,IAAIzoB,OASlCy5F,QAAS,SAAmBx1F,EAAIm1F,GAC9B,OAAOK,EAAQx1F,EAAIm1F,GAAYp5F,KAAKwZ,QAAQ0uD,UAAWloE,KAAKiE,IAAI,IASlE26C,OAAQ,SAAgBx8C,EAAMyE,GAC5B,IAAI2S,EAAUxZ,KAAKwZ,QAEnB,QAAc,IAAV3S,EACF,OAAO2S,EAAQpX,GAEf,IAAI6+F,EAAgBd,GAAcW,aAAa9gG,KAAMoC,EAAMyE,GAGzD2S,EAAQpX,GADmB,qBAAlB6+F,EACOA,EAEAp6F,EAGL,UAATzE,GACFukG,GAAcntF,IAQpBkiB,QAAS,WACP2kE,GAAY,UAAWrgG,MACvB,IAAIiE,EAAKjE,KAAKiE,GACdA,EAAGk6F,GAAW,KACdhF,EAAIl1F,EAAI,YAAajE,KAAKypG,aAC1BtQ,EAAIl1F,EAAI,aAAcjE,KAAKypG,aAC3BtQ,EAAIl1F,EAAI,cAAejE,KAAKypG,aAExBzpG,KAAKwpG,kBACPrQ,EAAIl1F,EAAI,WAAYjE,MACpBm5F,EAAIl1F,EAAI,YAAajE,OAIvBqC,MAAMnB,UAAU0F,QAAQ7H,KAAKkF,EAAGiP,iBAAiB,gBAAgB,SAAUjP,GACzEA,EAAGquC,gBAAgB,gBAGrBtyC,KAAK8rG,UAEL9rG,KAAK+rG,4BAEL/H,GAAUzhF,OAAOyhF,GAAUl0F,QAAQ9P,KAAKiE,IAAK,GAC7CjE,KAAKiE,GAAKA,EAAK,MAEjBipG,WAAY,WACV,IAAK1K,GAAa,CAEhB,GADAnC,GAAY,YAAargG,MACrB67F,GAAS2E,cAAe,OAC5BxnD,EAAIqoD,GAAS,UAAW,QAEpBrhG,KAAKwZ,QAAQ2uF,mBAAqB9G,GAAQl2D,YAC5Ck2D,GAAQl2D,WAAW8B,YAAYo0D,IAGjCmB,IAAc,IAGlBsM,WAAY,SAAoBpN,GAC9B,GAAgC,UAA5BA,EAAYO,aAMhB,GAAIO,GAAa,CAEf,GADAnC,GAAY,YAAargG,MACrB67F,GAAS2E,cAAe,OAExBW,GAAO/uF,SAAS+vF,MAAYniG,KAAKwZ,QAAQnW,MAAM+jG,YACjDjG,GAAOr0D,aAAau0D,GAASc,IACpBG,GACTnB,GAAOr0D,aAAau0D,GAASiB,IAE7BnB,GAAOj0D,YAAYm0D,IAGjBrhG,KAAKwZ,QAAQnW,MAAM+jG,aACrBpnG,KAAKgR,QAAQmxF,GAAQd,IAGvBroD,EAAIqoD,GAAS,UAAW,IACxBmB,IAAc,QAtBdxiG,KAAKktG,eAwLP5I,IACFvgG,EAAG0O,SAAU,aAAa,SAAUy0D,IAC7B20B,GAASh+E,QAAUimF,KAAwB58B,EAAI86B,YAClD96B,EAAImgC,oBAMVxL,GAASuT,MAAQ,CACfrrG,GAAIA,EACJo1F,IAAKA,EACLngD,IAAKA,EACLiV,KAAMA,EACNtjD,GAAI,SAAY1G,EAAIm1F,GAClB,QAASK,EAAQx1F,EAAIm1F,EAAUn1F,GAAI,IAErC4f,OAAQA,EACR25E,SAAUA,EACV/D,QAASA,EACTI,YAAaA,EACbp/D,MAAOA,EACP1wB,MAAOA,EACPkoB,SAAUg5E,GACVoE,eAAgBnE,GAChBoE,gBAAiB1K,GACjB91C,SAAUA,GAQZ+sC,GAASz1F,IAAM,SAAU8+D,GACvB,OAAOA,EAAQi5B,IAQjBtC,GAASuE,MAAQ,WACf,IAAK,IAAImP,EAAOnwG,UAAUP,OAAQoxD,EAAU,IAAI5tD,MAAMktG,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClFv/C,EAAQu/C,GAAQpwG,UAAUowG,GAGxBv/C,EAAQ,GAAG9tD,cAAgBE,QAAO4tD,EAAUA,EAAQ,IACxDA,EAAQrpD,SAAQ,SAAUmhC,GACxB,IAAKA,EAAO7mC,YAAc6mC,EAAO7mC,UAAUiB,YACzC,KAAM,gEAAgElB,OAAO,GAAGK,SAASvC,KAAKgpC,IAG5FA,EAAOqnE,QAAOvT,GAASuT,MAAQzW,EAAc,GAAIkD,GAASuT,MAAOrnE,EAAOqnE,QAC5EjP,GAAcC,MAAMr4D,OAUxB8zD,GAAS35E,OAAS,SAAUje,EAAIuV,GAC9B,OAAO,IAAIqiF,GAAS53F,EAAIuV,IAI1BqiF,GAAStxD,QAAUA,EAEnB,IACIklE,GACAC,GAEAC,GACAC,GACAC,GACAC,GAPAC,GAAc,GAGdC,IAAY,EAMhB,SAASC,KACP,SAASC,IAQP,IAAK,IAAIvxG,KAPTqB,KAAKigG,SAAW,CACdkQ,QAAQ,EACRC,kBAAmB,GACnBC,YAAa,GACbC,cAAc,GAGDtwG,KACQ,MAAjBrB,EAAGskB,OAAO,IAAkC,oBAAbjjB,KAAKrB,KACtCqB,KAAKrB,GAAMqB,KAAKrB,GAAImC,KAAKd,OA4F/B,OAvFAkwG,EAAWhvG,UAAY,CACrBuhG,YAAa,SAAqB15B,GAChC,IAAIf,EAAgBe,EAAKf,cAErBhoE,KAAKugG,SAASiJ,gBAChBzlG,EAAG0O,SAAU,WAAYzS,KAAKuwG,mBAE1BvwG,KAAKwZ,QAAQ+vF,eACfxlG,EAAG0O,SAAU,cAAezS,KAAKwwG,2BACxBxoC,EAAcw/B,QACvBzjG,EAAG0O,SAAU,YAAazS,KAAKwwG,2BAE/BzsG,EAAG0O,SAAU,YAAazS,KAAKwwG,4BAIrCC,kBAAmB,SAA2B7mC,GAC5C,IAAI5B,EAAgB4B,EAAM5B,cAGrBhoE,KAAKwZ,QAAQk3F,gBAAmB1oC,EAAcm5B,QACjDnhG,KAAKuwG,kBAAkBvoC,IAG3B2oC,KAAM,WACA3wG,KAAKugG,SAASiJ,gBAChBrQ,EAAI1mF,SAAU,WAAYzS,KAAKuwG,oBAE/BpX,EAAI1mF,SAAU,cAAezS,KAAKwwG,2BAClCrX,EAAI1mF,SAAU,YAAazS,KAAKwwG,2BAChCrX,EAAI1mF,SAAU,YAAazS,KAAKwwG,4BAGlCI,KACAC,KACAnT,KAEFoT,QAAS,WACPjB,GAAaH,GAAeD,GAAWO,GAAYF,GAA6BH,GAAkBC,GAAkB,KACpHG,GAAYlxG,OAAS,GAEvB2xG,0BAA2B,SAAmCtpC,GAC5DlnE,KAAKuwG,kBAAkBrpC,GAAK,IAE9BqpC,kBAAmB,SAA2BrpC,EAAKhxC,GACjD,IAAI4vC,EAAQ9lE,KAERsE,GAAK4iE,EAAIsgC,QAAUtgC,EAAIsgC,QAAQ,GAAKtgC,GAAKwgC,QACzC98F,GAAKs8D,EAAIsgC,QAAUtgC,EAAIsgC,QAAQ,GAAKtgC,GAAKygC,QACzChL,EAAOlqF,SAASq6F,iBAAiBxoG,EAAGsG,GAMxC,GALAilG,GAAa3oC,EAKThxC,GAAY2iE,GAAQD,GAAcG,EAAQ,CAC5CgY,GAAW7pC,EAAKlnE,KAAKwZ,QAASmjF,EAAMzmE,GAEpC,IAAI86E,EAAiBzV,EAA2BoB,GAAM,IAElDqT,IAAeF,IAA8BxrG,IAAMqrG,IAAmB/kG,IAAMglG,KAC9EE,IAA8Bc,KAE9Bd,GAA6BzC,aAAY,WACvC,IAAI4D,EAAU1V,EAA2B9oF,SAASq6F,iBAAiBxoG,EAAGsG,IAAI,GAEtEqmG,IAAYD,IACdA,EAAiBC,EACjBJ,MAGFE,GAAW7pC,EAAKpB,EAAMtsD,QAASy3F,EAAS/6E,KACvC,IACHy5E,GAAkBrrG,EAClBsrG,GAAkBhlG,OAEf,CAEL,IAAK5K,KAAKwZ,QAAQ82F,cAAgB/U,EAA2BoB,GAAM,KAAUpC,IAE3E,YADAsW,KAIFE,GAAW7pC,EAAKlnE,KAAKwZ,QAAS+hF,EAA2BoB,GAAM,IAAQ,MAItEjE,EAASwX,EAAY,CAC1BvP,WAAY,SACZT,qBAAqB,IAIzB,SAAS2Q,KACPd,GAAYnpG,SAAQ,SAAUmqG,GAC5B9B,cAAc8B,EAAWG,QAE3BnB,GAAc,GAGhB,SAASa,KACP3B,cAAca,IAGhB,IAoLIqB,GApLAJ,GAAavT,GAAS,SAAUt2B,EAAK1tD,EAAS2nF,EAAQiQ,GAExD,GAAK53F,EAAQ22F,OAAb,CACA,IAMIkB,EANA/sG,GAAK4iE,EAAIsgC,QAAUtgC,EAAIsgC,QAAQ,GAAKtgC,GAAKwgC,QACzC98F,GAAKs8D,EAAIsgC,QAAUtgC,EAAIsgC,QAAQ,GAAKtgC,GAAKygC,QACzC2J,EAAO93F,EAAQ42F,kBACfmB,EAAQ/3F,EAAQ62F,YAChB/T,EAAc/B,IACdiX,GAAqB,EAGrB9B,KAAiBvO,IACnBuO,GAAevO,EACf0P,KACApB,GAAWj2F,EAAQ22F,OACnBkB,EAAiB73F,EAAQi4F,UAER,IAAbhC,KACFA,GAAWlU,EAA2B4F,GAAQ,KAIlD,IAAIuQ,EAAY,EACZC,EAAgBlC,GAEpB,EAAG,CACD,IAAIxrG,EAAK0tG,EACL1T,EAAOxD,EAAQx2F,GACfic,EAAM+9E,EAAK/9E,IACXD,EAASg+E,EAAKh+E,OACd1U,EAAO0yF,EAAK1yF,KACZC,EAAQyyF,EAAKzyF,MACbqC,EAAQowF,EAAKpwF,MACbD,EAASqwF,EAAKrwF,OACdgkG,OAAa,EACbC,OAAa,EACbrjB,EAAcvqF,EAAGuqF,YACjBuO,EAAe94F,EAAG84F,aAClB8H,EAAQ7rD,EAAI/0C,GACZ6tG,EAAa7tG,EAAGs4F,WAChBwV,EAAa9tG,EAAGu4F,UAEhBv4F,IAAOq4F,GACTsV,EAAa/jG,EAAQ2gF,IAAoC,SAApBqW,EAAM5H,WAA4C,WAApB4H,EAAM5H,WAA8C,YAApB4H,EAAM5H,WACzG4U,EAAajkG,EAASmvF,IAAqC,SAApB8H,EAAM3H,WAA4C,WAApB2H,EAAM3H,WAA8C,YAApB2H,EAAM3H,aAE3G0U,EAAa/jG,EAAQ2gF,IAAoC,SAApBqW,EAAM5H,WAA4C,WAApB4H,EAAM5H,WACzE4U,EAAajkG,EAASmvF,IAAqC,SAApB8H,EAAM3H,WAA4C,WAApB2H,EAAM3H,YAG7E,IAAI8U,EAAKJ,IAAetpG,KAAKknE,IAAIhkE,EAAQlH,IAAMgtG,GAAQQ,EAAajkG,EAAQ2gF,IAAgBlmF,KAAKknE,IAAIjkE,EAAOjH,IAAMgtG,KAAUQ,GACxHG,EAAKJ,IAAevpG,KAAKknE,IAAIvvD,EAASrV,IAAM0mG,GAAQS,EAAankG,EAASmvF,IAAiBz0F,KAAKknE,IAAItvD,EAAMtV,IAAM0mG,KAAUS,GAE9H,IAAKhC,GAAY2B,GACf,IAAK,IAAI/wG,EAAI,EAAGA,GAAK+wG,EAAW/wG,IACzBovG,GAAYpvG,KACfovG,GAAYpvG,GAAK,IAKnBovG,GAAY2B,GAAWM,IAAMA,GAAMjC,GAAY2B,GAAWO,IAAMA,GAAMlC,GAAY2B,GAAWztG,KAAOA,IACtG8rG,GAAY2B,GAAWztG,GAAKA,EAC5B8rG,GAAY2B,GAAWM,GAAKA,EAC5BjC,GAAY2B,GAAWO,GAAKA,EAC5BhD,cAAcc,GAAY2B,GAAWR,KAE3B,GAANc,GAAiB,GAANC,IACbT,GAAqB,EAGrBzB,GAAY2B,GAAWR,IAAM7D,YAAY,WAEnC+D,GAA6B,IAAfpxG,KAAKkyG,OACrBrW,GAASh+E,OAAOuuF,aAAayD,IAI/B,IAAIsC,EAAgBpC,GAAY/vG,KAAKkyG,OAAOD,GAAKlC,GAAY/vG,KAAKkyG,OAAOD,GAAKV,EAAQ,EAClFa,EAAgBrC,GAAY/vG,KAAKkyG,OAAOF,GAAKjC,GAAY/vG,KAAKkyG,OAAOF,GAAKT,EAAQ,EAExD,oBAAnBF,GACoI,aAAzIA,EAAetyG,KAAK88F,GAASE,QAAQ5wD,WAAWgzD,GAAUiU,EAAeD,EAAejrC,EAAK2oC,GAAYE,GAAY/vG,KAAKkyG,OAAOjuG,KAKvI05F,EAASoS,GAAY/vG,KAAKkyG,OAAOjuG,GAAImuG,EAAeD,IACpDrxG,KAAK,CACLoxG,MAAOR,IACL,MAIRA,UACOl4F,EAAQ82F,cAAgBqB,IAAkBrV,IAAgBqV,EAAgBpW,EAA2BoW,GAAe,KAE7H3B,GAAYwB,KACX,IAECb,GAAO,SAAc5nC,GACvB,IAAIf,EAAgBe,EAAKf,cACrB05B,EAAc34B,EAAK24B,YACnBS,EAASp5B,EAAKo5B,OACdO,EAAiB35B,EAAK25B,eACtBO,EAAwBl6B,EAAKk6B,sBAC7BN,EAAqB55B,EAAK45B,mBAC1BE,EAAuB95B,EAAK85B,qBAChC,GAAK76B,EAAL,CACA,IAAIqqC,EAAa3Q,GAAegB,EAChCC,IACA,IAAIyI,EAAQpjC,EAAcsqC,gBAAkBtqC,EAAcsqC,eAAezzG,OAASmpE,EAAcsqC,eAAe,GAAKtqC,EAChHroE,EAAS8S,SAASq6F,iBAAiB1B,EAAM1D,QAAS0D,EAAMzD,SAC5D9E,IAEIwP,IAAeA,EAAWpuG,GAAGmO,SAASzS,KACxCsjG,EAAsB,SACtBjjG,KAAKuyG,QAAQ,CACXpQ,OAAQA,EACRT,YAAaA,OAKnB,SAAS8Q,MAsCT,SAASC,MAoBT,SAASC,KACP,SAASC,IACP3yG,KAAKigG,SAAW,CACd2S,UAAW,2BA6Df,OAzDAD,EAAKzxG,UAAY,CACf2xG,UAAW,SAAmB9pC,GAC5B,IAAIo5B,EAASp5B,EAAKo5B,OAClBgP,GAAahP,GAEf2Q,cAAe,SAAuBlpC,GACpC,IAAImkC,EAAYnkC,EAAMmkC,UAClBpuG,EAASiqE,EAAMjqE,OACfooE,EAAS6B,EAAM7B,OACf26B,EAAiB94B,EAAM84B,eACvBuL,EAAUrkC,EAAMqkC,QAChBxN,EAAS72B,EAAM62B,OACnB,GAAKiC,EAAelpF,QAAQ6rC,KAA5B,CACA,IAAIphD,EAAKjE,KAAKugG,SAASt8F,GACnBuV,EAAUxZ,KAAKwZ,QAEnB,GAAI7Z,GAAUA,IAAWsE,EAAI,CAC3B,IAAI8uG,EAAa5B,IAEM,IAAnBppC,EAAOpoE,IACTk6F,EAAYl6F,EAAQ6Z,EAAQo5F,WAAW,GACvCzB,GAAaxxG,GAEbwxG,GAAa,KAGX4B,GAAcA,IAAe5B,IAC/BtX,EAAYkZ,EAAYv5F,EAAQo5F,WAAW,GAI/C3E,IACAF,GAAU,GACVtN,MAEFkQ,KAAM,SAAcqC,GAClB,IAAItQ,EAAiBsQ,EAAMtQ,eACvBhB,EAAcsR,EAAMtR,YACpBS,EAAS6Q,EAAM7Q,OACfkQ,EAAa3Q,GAAe1hG,KAAKugG,SACjC/mF,EAAUxZ,KAAKwZ,QACnB23F,IAActX,EAAYsX,GAAY33F,EAAQo5F,WAAW,GAErDzB,KAAe33F,EAAQ6rC,MAAQq8C,GAAeA,EAAYloF,QAAQ6rC,OAChE88C,IAAWgP,KACbkB,EAAW9T,wBACP8T,IAAe3P,GAAgBA,EAAenE,wBAClD0U,GAAU9Q,EAAQgP,IAClBkB,EAAWxT,aACPwT,IAAe3P,GAAgBA,EAAe7D,eAIxDiS,QAAS,WACPK,GAAa,OAGVzY,EAASia,EAAM,CACpBhS,WAAY,OACZK,gBAAiB,WACf,MAAO,CACLkS,SAAU/B,OAMlB,SAAS8B,GAAUE,EAAIC,GACrB,IAEIC,EACAC,EAHAppB,EAAKipB,EAAGhoE,WACRooE,EAAKH,EAAGjoE,WAGP++C,GAAOqpB,IAAMrpB,EAAGspB,YAAYJ,KAAOG,EAAGC,YAAYL,KACvDE,EAAKtpG,EAAMopG,GACXG,EAAKvpG,EAAMqpG,GAEPlpB,EAAGspB,YAAYD,IAAOF,EAAKC,GAC7BA,IAGFppB,EAAGp9C,aAAasmE,EAAIlpB,EAAG57E,SAAS+kG,IAChCE,EAAGzmE,aAAaqmE,EAAII,EAAGjlG,SAASglG,KAhJlCd,GAAOtxG,UAAY,CACjBuyG,WAAY,KACZZ,UAAW,SAAmBjpC,GAC5B,IAAI43B,EAAoB53B,EAAM43B,kBAC9BxhG,KAAKyzG,WAAajS,GAEpB+Q,QAAS,SAAiBS,GACxB,IAAI7Q,EAAS6Q,EAAM7Q,OACfT,EAAcsR,EAAMtR,YACxB1hG,KAAKugG,SAAShC,wBAEVmD,GACFA,EAAYnD,wBAGd,IAAIpxD,EAAc2hB,EAAS9uD,KAAKugG,SAASt8F,GAAIjE,KAAKyzG,WAAYzzG,KAAKwZ,SAE/D2zB,EACFntC,KAAKugG,SAASt8F,GAAG6oC,aAAaq1D,EAAQh1D,GAEtCntC,KAAKugG,SAASt8F,GAAGipC,YAAYi1D,GAG/BniG,KAAKugG,SAAS1B,aAEV6C,GACFA,EAAY7C,cAGhB8R,KAAMA,IAGRjY,EAAS8Z,GAAQ,CACf7R,WAAY,kBAKd8R,GAAOvxG,UAAY,CACjBqxG,QAAS,SAAiBmB,GACxB,IAAIvR,EAASuR,EAAMvR,OACfT,EAAcgS,EAAMhS,YACpBiS,EAAiBjS,GAAe1hG,KAAKugG,SACzCoT,EAAepV,wBACf4D,EAAOh3D,YAAcg3D,EAAOh3D,WAAW8B,YAAYk1D,GACnDwR,EAAe9U,cAEjB8R,KAAMA,IAGRjY,EAAS+Z,GAAQ,CACf9R,WAAY,kBAgGd,IAEIiT,GAEJC,GAMIC,GACAC,GACAC,GAZAC,GAAoB,GACpBC,GAAkB,GAIlBC,IAAiB,EAErBC,IAAU,EAEV3R,IAAc,EAKd,SAAS4R,KACP,SAASC,EAAU/T,GAEjB,IAAK,IAAI5hG,KAAMqB,KACQ,MAAjBrB,EAAGskB,OAAO,IAAkC,oBAAbjjB,KAAKrB,KACtCqB,KAAKrB,GAAMqB,KAAKrB,GAAImC,KAAKd,OAIzBugG,EAAS/mF,QAAQ+vF,eACnBxlG,EAAG0O,SAAU,YAAazS,KAAKu0G,qBAE/BxwG,EAAG0O,SAAU,UAAWzS,KAAKu0G,oBAC7BxwG,EAAG0O,SAAU,WAAYzS,KAAKu0G,qBAGhCxwG,EAAG0O,SAAU,UAAWzS,KAAKw0G,eAC7BzwG,EAAG0O,SAAU,QAASzS,KAAKy0G,aAC3Bz0G,KAAKigG,SAAW,CACdyU,cAAe,oBACfC,aAAc,KACdjM,QAAS,SAAiBC,EAAcxG,GACtC,IAAIr+F,EAAO,GAEPmwG,GAAkBp1G,QAAUg1G,KAAsBtT,EACpD0T,GAAkBrtG,SAAQ,SAAUguG,EAAkBj0G,GACpDmD,IAAUnD,EAAS,KAAL,IAAai0G,EAAiBvnE,eAG9CvpC,EAAOq+F,EAAO90D,YAGhBs7D,EAAaD,QAAQ,OAAQ5kG,KAkcnC,OA7bAwwG,EAAUpzG,UAAY,CACpB2zG,kBAAkB,EAClBC,aAAa,EACbC,iBAAkB,SAA0BhsC,GAC1C,IAAIgzB,EAAUhzB,EAAKo5B,OACnB2R,GAAW/X,GAEbiZ,WAAY,WACVh1G,KAAK80G,aAAeb,GAAkBnkG,QAAQgkG,KAEhDmB,WAAY,SAAoBrrC,GAC9B,IAAI22B,EAAW32B,EAAM22B,SACjBE,EAAS72B,EAAM62B,OACnB,GAAKzgG,KAAK80G,YAAV,CAEA,IAAK,IAAIn0G,EAAI,EAAGA,EAAIszG,GAAkBp1G,OAAQ8B,IAC5CuzG,GAAgB9rG,KAAKqyB,EAAMw5E,GAAkBtzG,KAC7CuzG,GAAgBvzG,GAAGu0G,cAAgBjB,GAAkBtzG,GAAGu0G,cACxDhB,GAAgBvzG,GAAGunE,WAAY,EAC/BgsC,GAAgBvzG,GAAGgN,MAAM,eAAiB,GAC1CksF,EAAYqa,GAAgBvzG,GAAIX,KAAKwZ,QAAQk7F,eAAe,GAC5DT,GAAkBtzG,KAAOmzG,IAAYja,EAAYqa,GAAgBvzG,GAAIX,KAAKwZ,QAAQ8uF,aAAa,GAGjG/H,EAAS2M,aAETzM,MAEFhmE,MAAO,SAAeu4E,GACpB,IAAIzS,EAAWyS,EAAMzS,SACjBY,EAAS6R,EAAM7R,OACf8B,EAAwB+P,EAAM/P,sBAC9BxC,EAASuS,EAAMvS,OACdzgG,KAAK80G,cAEL90G,KAAKwZ,QAAQ2uF,mBACZ8L,GAAkBp1G,QAAUg1G,KAAsBtT,IACpD4U,IAAsB,EAAMhU,GAC5B8B,EAAsB,SACtBxC,OAIN2U,UAAW,SAAmB1B,GAC5B,IAAI1Q,EAAgB0Q,EAAM1Q,cACtB7B,EAASuS,EAAMvS,OACfV,EAASiT,EAAMjT,OACdzgG,KAAK80G,cACVK,IAAsB,EAAOhU,GAC7B+S,GAAgBttG,SAAQ,SAAU6zB,GAChCue,EAAIve,EAAO,UAAW,OAExBuoE,IACAgR,IAAe,EACfvT,MAEF4U,UAAW,SAAmBC,GAC5B,IAAIxvC,EAAQ9lE,KAGR+iG,GADWuS,EAAM/U,SACA+U,EAAMvS,gBACvBtC,EAAS6U,EAAM7U,OACdzgG,KAAK80G,cACVZ,GAAgBttG,SAAQ,SAAU6zB,GAChCue,EAAIve,EAAO,UAAW,QAElBqrC,EAAMtsD,QAAQ2uF,mBAAqB1tE,EAAM0Q,YAC3C1Q,EAAM0Q,WAAW8B,YAAYxS,MAGjCsoE,IACAiR,IAAe,EACfvT,MAEF8U,gBAAiB,SAAyBC,GACzBA,EAAMjV,UAEhBvgG,KAAK80G,aAAejB,IACvBA,GAAkB4B,UAAUlB,qBAG9BN,GAAkBrtG,SAAQ,SAAUguG,GAClCA,EAAiBM,cAAgBnrG,EAAM6qG,MAGzCX,GAAoBA,GAAkBjtG,MAAK,SAAUhI,EAAGC,GACtD,OAAOD,EAAEk2G,cAAgBj2G,EAAEi2G,iBAE7BzS,IAAc,GAEhBA,YAAa,SAAqBiT,GAChC,IAAI1vC,EAAShmE,KAETugG,EAAWmV,EAAMnV,SACrB,GAAKvgG,KAAK80G,YAAV,CAEA,GAAI90G,KAAKwZ,QAAQxS,OAOfu5F,EAAShC,wBAELv+F,KAAKwZ,QAAQ++D,WAAW,CAC1B07B,GAAkBrtG,SAAQ,SAAUguG,GAC9BA,IAAqBd,IACzB96D,EAAI47D,EAAkB,WAAY,eAEpC,IAAI/O,EAAWpL,EAAQqZ,IAAU,GAAO,GAAM,GAC9CG,GAAkBrtG,SAAQ,SAAUguG,GAC9BA,IAAqBd,IACzB9V,EAAQ4W,EAAkB/O,MAE5BuO,IAAU,EACVD,IAAiB,EAIrB5T,EAAS1B,YAAW,WAClBuV,IAAU,EACVD,IAAiB,EAEbnuC,EAAOxsD,QAAQ++D,WACjB07B,GAAkBrtG,SAAQ,SAAUguG,GAClC1W,EAAU0W,MAKV5uC,EAAOxsD,QAAQxS,MACjB2uG,UAINC,SAAU,SAAkBC,GAC1B,IAAIl2G,EAASk2G,EAAMl2G,OACfouG,EAAY8H,EAAM9H,UAClBtN,EAASoV,EAAMpV,OAEf2T,KAAYH,GAAkBnkG,QAAQnQ,KACxCouG,GAAU,GACVtN,MAGJ+M,OAAQ,SAAgBsI,GACtB,IAAInI,EAAemI,EAAMnI,aACrBxM,EAAS2U,EAAM3U,OACfZ,EAAWuV,EAAMvV,SACjBsF,EAAWiQ,EAAMjQ,SAEjBoO,GAAkBp1G,OAAS,IAE7Bo1G,GAAkBrtG,SAAQ,SAAUguG,GAClCrU,EAAS5B,kBAAkB,CACzBh/F,OAAQi1G,EACR3W,KAAMmW,GAAU3Z,EAAQma,GAAoB/O,IAE9C3H,EAAU0W,GACVA,EAAiBpW,SAAWqH,EAC5B8H,EAAa/O,qBAAqBgW,MAEpCR,IAAU,EACV2B,IAAyB/1G,KAAKwZ,QAAQ2uF,kBAAmBhH,KAG7DsP,kBAAmB,SAA2BuF,GAC5C,IAAIzV,EAAWyV,EAAOzV,SAClBkN,EAAUuI,EAAOvI,QACjBoB,EAAYmH,EAAOnH,UACnBnM,EAAiBsT,EAAOtT,eACxBN,EAAW4T,EAAO5T,SAClBV,EAAcsU,EAAOtU,YACrBloF,EAAUxZ,KAAKwZ,QAEnB,GAAIq1F,EAAW,CAQb,GANIpB,GACF/K,EAAewK,aAGjBiH,IAAiB,EAEb36F,EAAQ++D,WAAa07B,GAAkBp1G,OAAS,IAAMu1G,KAAY3G,IAAY/K,EAAelpF,QAAQxS,OAAS06F,GAAc,CAE9H,IAAIuU,EAAmBxb,EAAQqZ,IAAU,GAAO,GAAM,GACtDG,GAAkBrtG,SAAQ,SAAUguG,GAC9BA,IAAqBd,KACzB9V,EAAQ4W,EAAkBqB,GAG1B7T,EAASl1D,YAAY0nE,OAEvBR,IAAU,EAIZ,IAAK3G,EAMH,GAJK2G,IACHuB,KAGE1B,GAAkBp1G,OAAS,EAAG,CAChC,IAAIq3G,EAAqBlC,GAEzBtR,EAAeoM,WAAWvO,GAGtBmC,EAAelpF,QAAQ++D,YAAcy7B,IAAgBkC,GACvDhC,GAAgBttG,SAAQ,SAAU6zB,GAChCioE,EAAe/D,kBAAkB,CAC/Bh/F,OAAQ86B,EACRwjE,KAAM8V,KAERt5E,EAAM+jE,SAAWuV,GACjBt5E,EAAMgkE,sBAAwB,aAIlCiE,EAAeoM,WAAWvO,KAKlC4V,yBAA0B,SAAkCC,GAC1D,IAAIvQ,EAAWuQ,EAAOvQ,SAClB4H,EAAU2I,EAAO3I,QACjB/K,EAAiB0T,EAAO1T,eAK5B,GAJAuR,GAAkBrtG,SAAQ,SAAUguG,GAClCA,EAAiBnW,sBAAwB,QAGvCiE,EAAelpF,QAAQ++D,YAAck1B,GAAW/K,EAAe+S,UAAUX,YAAa,CACxFf,GAAiBrb,EAAS,GAAImN,GAC9B,IAAIwQ,EAAa1mB,EAAOmkB,IAAU,GAClCC,GAAe7zF,KAAOm2F,EAAWh1G,EACjC0yG,GAAexoG,MAAQ8qG,EAAW5rG,IAGtC6rG,0BAA2B,WACrBlC,KACFA,IAAU,EACVuB,OAGJhF,KAAM,SAAc4F,GAClB,IAAIrvC,EAAMqvC,EAAOvuC,cACbm5B,EAASoV,EAAOpV,OAChBiB,EAAWmU,EAAOnU,SAClB7B,EAAWgW,EAAOhW,SAClB0C,EAAwBsT,EAAOtT,sBAC/Bx5B,EAAW8sC,EAAO9sC,SAClBi4B,EAAc6U,EAAO7U,YACrB2Q,EAAa3Q,GAAe1hG,KAAKugG,SACrC,GAAKr5B,EAAL,CACA,IAAI1tD,EAAUxZ,KAAKwZ,QACflL,EAAW8zF,EAAS9zF,SAExB,IAAKm0F,GAOH,GANIjpF,EAAQm7F,eAAiB30G,KAAK60G,kBAChC70G,KAAKu0G,qBAGP1a,EAAYia,GAAUt6F,EAAQk7F,gBAAiBT,GAAkBnkG,QAAQgkG,MAEnEG,GAAkBnkG,QAAQgkG,IA8C9BG,GAAkB1xF,OAAO0xF,GAAkBnkG,QAAQgkG,IAAW,GAC9DF,GAAsB,KACtB70D,GAAc,CACZwhD,SAAUA,EACVY,OAAQA,EACR/+F,KAAM,WACNg/F,SAAU0S,GACV0C,YAAatvC,QArD0B,CAUzC,GATA+sC,GAAkB7rG,KAAK0rG,IACvB/0D,GAAc,CACZwhD,SAAUA,EACVY,OAAQA,EACR/+F,KAAM,SACNg/F,SAAU0S,GACV0C,YAAatvC,IAGXA,EAAIuvC,UAAY7C,IAAuBrT,EAASt8F,GAAGmO,SAASwhG,IAAsB,CACpF,IAMM1xG,EAAGvB,EANLyI,EAAYW,EAAM6pG,IAClB1oC,EAAenhE,EAAM+pG,IAEzB,IAAK1qG,IAAc8hE,GAAgB9hE,IAAc8hE,EAa/C,IARIA,EAAe9hE,GACjBzI,EAAIyI,EACJlH,EAAIgpE,IAEJvqE,EAAIuqE,EACJhpE,EAAIkH,EAAY,GAGXzI,EAAIuB,EAAGvB,KACPszG,GAAkBnkG,QAAQxB,EAAS3N,MACxCk5F,EAAYvrF,EAAS3N,GAAI6Y,EAAQk7F,eAAe,GAChDT,GAAkB7rG,KAAKkG,EAAS3N,IAChCo+C,GAAc,CACZwhD,SAAUA,EACVY,OAAQA,EACR/+F,KAAM,SACNg/F,SAAU9yF,EAAS3N,GACnB61G,YAAatvC,UAKnB0sC,GAAsBE,GAGxBD,GAAoBxB,EAexB,GAAI5P,IAAeziG,KAAK80G,YAAa,CAEnC,IAAK1S,EAASjE,GAAS3kF,QAAQxS,MAAQo7F,IAAajB,IAAW8S,GAAkBp1G,OAAS,EAAG,CAC3F,IAAIgnG,EAAWpL,EAAQqZ,IACnB4C,EAAiB3sG,EAAM+pG,GAAU,SAAW9zG,KAAKwZ,QAAQk7F,cAAgB,KAI7E,IAHKP,IAAkB36F,EAAQ++D,YAAWu7B,GAASrV,sBAAwB,MAC3E4T,EAAW9T,yBAEN4V,KACC36F,EAAQ++D,YACVu7B,GAAStV,SAAWqH,EACpBoO,GAAkBrtG,SAAQ,SAAUguG,GAGlC,GAFAA,EAAiBnW,sBAAwB,KAErCmW,IAAqBd,GAAU,CACjC,IAAI7V,EAAOmW,GAAU3Z,EAAQma,GAAoB/O,EACjD+O,EAAiBpW,SAAWP,EAE5BoU,EAAW1T,kBAAkB,CAC3Bh/F,OAAQi1G,EACR3W,KAAMA,SAQd0X,KACA1B,GAAkBrtG,SAAQ,SAAUguG,GAC9BtmG,EAASooG,GACXtU,EAASt1D,aAAa8nE,EAAkBtmG,EAASooG,IAEjDtU,EAASl1D,YAAY0nE,GAGvB8B,OAKEjtC,IAAa1/D,EAAM+pG,KAAW,CAChC,IAAIxqF,GAAS,EACb2qF,GAAkBrtG,SAAQ,SAAUguG,GAC9BA,EAAiBM,gBAAkBnrG,EAAM6qG,KAC3CtrF,GAAS,MAKTA,GACF25E,EAAsB,UAM5BgR,GAAkBrtG,SAAQ,SAAUguG,GAClC1W,EAAU0W,MAEZvC,EAAWxT,aAGbgV,GAAoBxB,GAIlBlR,IAAWiB,GAAYV,GAA2C,UAA5BA,EAAYO,cACpDiS,GAAgBttG,SAAQ,SAAU6zB,GAChCA,EAAM0Q,YAAc1Q,EAAM0Q,WAAW8B,YAAYxS,QAIvDk8E,cAAe,WACb32G,KAAK80G,YAAcrS,IAAc,EACjCyR,GAAgBr1G,OAAS,GAE3B+3G,cAAe,WACb52G,KAAKu0G,qBAELpb,EAAI1mF,SAAU,YAAazS,KAAKu0G,oBAChCpb,EAAI1mF,SAAU,UAAWzS,KAAKu0G,oBAC9Bpb,EAAI1mF,SAAU,WAAYzS,KAAKu0G,oBAC/Bpb,EAAI1mF,SAAU,UAAWzS,KAAKw0G,eAC9Brb,EAAI1mF,SAAU,QAASzS,KAAKy0G,cAE9BF,mBAAoB,SAA4BrtC,GAC9C,IAA2B,qBAAhBu7B,KAA+BA,KAEtCoR,KAAsB7zG,KAAKugG,YAE3Br5B,IAAOuyB,EAAQvyB,EAAIvnE,OAAQK,KAAKwZ,QAAQ0uD,UAAWloE,KAAKugG,SAASt8F,IAAI,OAErEijE,GAAsB,IAAfA,EAAI+gB,QAEf,MAAOgsB,GAAkBp1G,OAAQ,CAC/B,IAAIoF,EAAKgwG,GAAkB,GAC3Bpa,EAAY51F,EAAIjE,KAAKwZ,QAAQk7F,eAAe,GAC5CT,GAAkB1/E,QAClBwqB,GAAc,CACZwhD,SAAUvgG,KAAKugG,SACfY,OAAQnhG,KAAKugG,SAASt8F,GACtB7B,KAAM,WACNg/F,SAAUn9F,EACVuyG,YAAatvC,MAInBstC,cAAe,SAAuBttC,GAChCA,EAAIpgE,MAAQ9G,KAAKwZ,QAAQm7F,eAC3B30G,KAAK60G,kBAAmB,IAG5BJ,YAAa,SAAqBvtC,GAC5BA,EAAIpgE,MAAQ9G,KAAKwZ,QAAQm7F,eAC3B30G,KAAK60G,kBAAmB,KAIvBnc,EAAS4b,EAAW,CAEzB3T,WAAY,YACZyO,MAAO,CAKLyH,OAAQ,SAAgB5yG,GACtB,IAAIs8F,EAAWt8F,EAAGknC,WAAWgzD,GACxBoC,GAAaA,EAAS/mF,QAAQi8F,aAAcxB,GAAkBnkG,QAAQ7L,KAEvE4vG,IAAqBA,KAAsBtT,IAC7CsT,GAAkB4B,UAAUlB,qBAE5BV,GAAoBtT,GAGtB1G,EAAY51F,EAAIs8F,EAAS/mF,QAAQk7F,eAAe,GAChDT,GAAkB7rG,KAAKnE,KAOzB6yG,SAAU,SAAkB7yG,GAC1B,IAAIs8F,EAAWt8F,EAAGknC,WAAWgzD,GACzBp0F,EAAQkqG,GAAkBnkG,QAAQ7L,GACjCs8F,GAAaA,EAAS/mF,QAAQi8F,YAAe1rG,IAClD8vF,EAAY51F,EAAIs8F,EAAS/mF,QAAQk7F,eAAe,GAChDT,GAAkB1xF,OAAOxY,EAAO,MAGpCi3F,gBAAiB,WACf,IAAIr5B,EAAS3nE,KAET+2G,EAAc,GACdC,EAAc,GAsBlB,OArBA/C,GAAkBrtG,SAAQ,SAAUguG,GAMlC,IAAIlrC,EALJqtC,EAAY3uG,KAAK,CACfwsG,iBAAkBA,EAClB7qG,MAAO6qG,EAAiBM,gBAMxBxrC,EADE0qC,IAAWQ,IAAqBd,IACtB,EACHM,GACErqG,EAAM6qG,EAAkB,SAAWjtC,EAAOnuD,QAAQk7F,cAAgB,KAElE3qG,EAAM6qG,GAGnBoC,EAAY5uG,KAAK,CACfwsG,iBAAkBA,EAClB7qG,MAAO2/D,OAGJ,CACLn8C,MAAOhQ,EAAmB02F,IAC1BgD,OAAQ,GAAGh2G,OAAOizG,IAClB6C,YAAaA,EACbC,YAAaA,IAGjB9V,gBAAiB,CACfyT,aAAc,SAAsB7tG,GASlC,OARAA,EAAMA,EAAIqb,cAEE,SAARrb,EACFA,EAAM,UACGA,EAAIjI,OAAS,IACtBiI,EAAMA,EAAImc,OAAO,GAAGF,cAAgBjc,EAAI+6F,OAAO,IAG1C/6F,MAMf,SAASivG,GAAwBmB,EAAgB/V,GAC/C8S,GAAkBrtG,SAAQ,SAAUguG,EAAkBj0G,GACpD,IAAIhB,EAASwhG,EAAO7yF,SAASsmG,EAAiBM,eAAiBgC,EAAiBzrG,OAAO9K,GAAK,IAExFhB,EACFwhG,EAAOr0D,aAAa8nE,EAAkBj1G,GAEtCwhG,EAAOj0D,YAAY0nE,MAWzB,SAASO,GAAsBgC,EAAkBhW,GAC/C+S,GAAgBttG,SAAQ,SAAU6zB,EAAO95B,GACvC,IAAIhB,EAASwhG,EAAO7yF,SAASmsB,EAAMy6E,eAAiBiC,EAAmB1rG,OAAO9K,GAAK,IAE/EhB,EACFwhG,EAAOr0D,aAAarS,EAAO96B,GAE3BwhG,EAAOj0D,YAAYzS,MAKzB,SAASk7E,KACP1B,GAAkBrtG,SAAQ,SAAUguG,GAC9BA,IAAqBd,IACzBc,EAAiBzpE,YAAcypE,EAAiBzpE,WAAW8B,YAAY2nE,MAI3E/Y,GAASuE,MAAM,IAAI6P,IACnBpU,GAASuE,MAAMqS,GAAQD,IAER,iB,qBCjnHf,IAAIp0G,EAAkB,EAAQ,QAE1B49D,EAAQ59D,EAAgB,SAE5BG,EAAOC,QAAU,SAAUmZ,GACzB,IAAI1N,EAAS,IACb,IACE,MAAM0N,GAAa1N,GACnB,MAAOQ,GACP,IAEE,OADAR,EAAO+xD,IAAS,EACT,MAAMrkD,GAAa1N,GAC1B,MAAO5I,KACT,OAAO,I,kCCZX,IAAIhC,EAAI,EAAQ,QACZ6P,EAAO,EAAQ,QAEnB7P,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMiP,OAAQ,IAAIK,OAASA,GAAQ,CAC9DA,KAAMA,K,kCCJR,IAAIpH,EAAW,EAAQ,QAIvBvJ,EAAOC,QAAU,WACf,IAAII,EAAOkJ,EAAS9H,MAChB0G,EAAS,GAOb,OANI9H,EAAKwQ,SAAQ1I,GAAU,KACvB9H,EAAK4K,aAAY9C,GAAU,KAC3B9H,EAAK6K,YAAW/C,GAAU,KAC1B9H,EAAKw4G,SAAQ1wG,GAAU,KACvB9H,EAAK8K,UAAShD,GAAU,KACxB9H,EAAK+K,SAAQjD,GAAU,KACpBA,I,oHCFM,SAAAkX,EAAA,qBAA0B,CACvCxb,KADuC,eAGvCgB,MAAO,CACLi0G,YAAa,CAAC54G,OAAQgN,SAGxBE,SAAU,CACR2rG,oBADQ,WAEN,OAAO7rG,OAAOzL,KAAd,cAEFu3G,YAJQ,WAKN,OAAOv3G,KAAKs3G,oBACR,CAAE7f,cAAgB,EAAIz3F,KAAL,wBAAuC,UAD5D,GAIFw3G,cATQ,WAUN,OAAKx3G,KAAL,YAEOA,KAAK2T,eAAe,MAAO,CAChChG,MAAO3N,KADyB,YAEhC8M,YAAa,wBAJe,KASlCb,QAAS,CACPkH,WADO,WAEL,OAAOnT,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,yBACZ9M,KAAKoM,OAFR,WAMJzI,OAlCuC,SAkCjC,GACJ,OAAOO,EAAE,MAAO,CACd4I,YADc,eAEda,MAAO3N,KAFO,iBAGd+D,GAAI/D,KAAKiX,YACR,CACDjX,KADC,cAEDA,KANF,kBC5CJ,I,oCC0BMy3G,EAAiC,qBAAXj2G,QAA0B,yBAAtD,OAGe,cAAAoc,EAAA,MAAO,EAAP,eAGN,CACPxb,KADO,QAGPiO,WAAY,CAAEqnG,YAAA,MAEdt0G,MAAO,CACLu0G,IADK,OAELC,QAFK,QAGLrkB,MAHK,QAILskB,SAJK,OAKLC,QALK,OAMLt+F,QAAS,CACPlW,KADO,OAIPC,QAAS,iBAAO,CACd8P,UADc,EAEd0kG,gBAFc,EAGdxR,eAAWznG,KAGf+gE,SAAU,CACRv8D,KADQ,OAERC,QAAS,iBAEXgJ,MApBK,OAqBLggB,IAAK,CACHjpB,KAAM,CAAC7E,OADJ,QAEH8E,QAAS,IAEXy0G,OAzBK,OA0BLvzG,WAAY,CACVnB,KAAM,CAACwI,QADG,QAEVvI,QAAS,oBAIbO,KArCO,WAsCL,MAAO,CACLm0G,WADK,GAEL90B,MAFK,KAGL+0B,WAHK,EAILC,2BAJK,EAKLC,kBALK,EAML/qC,UAAU,IAId1hE,SAAU,CACR2rG,oBADQ,WAEN,OAAO7rG,OAAOzL,KAAKq4G,cAAcC,QAAUt4G,KAA3C,wBAEFq4G,cAJQ,WAKN,MAAO,kBAAOr4G,KAAP,IACH,CACAusB,IAAKvsB,KADL,IAEAg4G,OAAQh4G,KAFR,OAGA83G,QAAS93G,KAHT,QAIAs4G,OAAQ7sG,OAAOzL,KAAKq3G,aAAN,IACZ,CACF9qF,IAAKvsB,KAAKusB,IADR,IAEFyrF,OAAQh4G,KAAKg4G,QAAUh4G,KAAKusB,IAF1B,OAGFurF,QAAS93G,KAAK83G,SAAW93G,KAAKusB,IAH5B,QAIF+rF,OAAQ7sG,OAAOzL,KAAKq3G,aAAer3G,KAAKusB,IAA1B,UAGpBgsF,cAlBQ,WAmBN,KAAMv4G,KAAKq4G,cAAc9rF,KAAOvsB,KAAKq4G,cAA/B,SAAwDr4G,KAA9D,UAA8E,MAAO,GAErF,IAAMw4G,EAAN,GACMjsF,EAAMvsB,KAAKk4G,UAAYl4G,KAAKq4G,cAAtB,QAA8Cr4G,KAA1D,WAEIA,KAAJ,UAAmBw4G,EAAA,+BAAwCx4G,KAAxC,eACnB,GAASw4G,EAAA,6BAET,IAAMr1B,EAAQnjF,KAAK2T,eAAe,MAAO,CACvC7G,YADuC,iBAEvCC,MAAO,CACL,0BAA2B/M,KADtB,UAEL,0BAA2BA,KAFtB,QAGL,yBAA0BA,KAAK43G,SAEjCjqG,MAAO,CACL6qG,gBAAiBA,EAAA,KADZ,MAELC,mBAAoBz4G,KAAK6/D,UAE3B/4D,KAAM9G,KAAKk4G,YAIb,OAAKl4G,KAAL,WAEOA,KAAK2T,eAAe,aAAc,CACvC3G,MAAO,CACL5K,KAAMpC,KADD,WAEL0D,KAAM,WAEP,CALH,IAF6By/E,IAWjC3xE,MAAO,CACL+a,IADK,WAGEvsB,KAAL,UACKA,KAAK04G,YADW14G,KAAK26B,UAAK77B,OAAWA,GAA1C,IAGF,4BAA6B,UAG/BgrC,QA9GO,WA+GL9pC,KAAA,QAGFiM,QAAS,CACP0uB,KADO,SACH,OAQF,IACE88E,GAAA,GAECz3G,KAHH,OAMA,GAAIA,KAAKq4G,cAAT,QAAgC,CAC9B,IAAMM,EAAU,IAAhB,MACAA,EAAA,IAAc34G,KAAKq4G,cAAnB,QACAr4G,KAAA,oBAGEA,KAAKq4G,cAAT,KAA4Br4G,KAAK04G,cAEnCE,OAvBO,WAwBL54G,KAAA,SACAA,KAAA,aACAA,KAAA,aAAmBA,KAAnB,MAEF64G,QA5BO,WA6BL74G,KAAA,YACAA,KAAA,cAAoBA,KAApB,MAEF84G,OAhCO,WAkCD94G,KAAJ,QAAgBA,KAAKi4G,WAAaj4G,KAAKmjF,MAAM80B,YAAcj4G,KAAKmjF,MAAhD,MAElBu1B,UApCO,WAoCE,WACDv1B,EAAQ,IAAd,MACAnjF,KAAA,QAEAmjF,EAAA,OAAe,WAETA,EAAJ,OACEA,EAAA,gBAAsB,SAAA5yD,GACpB,OAAAU,EAAA,MACE,qEACQ,gBADR,MAECV,EAAA,oCAAmCA,EAAnC,SAHQ,IAAX,MADF,KAOQ,EAPR,QASA,YAGJ4yD,EAAA,QAAgBnjF,KAAhB,QAEAA,KAAA,YACAmjF,EAAA,IAAYnjF,KAAKq4G,cAAjB,IACAr4G,KAAA,QAAemjF,EAAA,MAAcnjF,KAA7B,OACAA,KAAA,uBAA8BmjF,EAAA,OAAenjF,KAAKq4G,cAAlD,QAEAr4G,KAAA,aAAoBA,KAAK+4G,YAAzB,GACA/4G,KAAA,UAEF+4G,YAjEO,SAiEI,GAAqD,WAA5Bt5E,EAA4B,uDAArD,IACHu5E,EAAO,SAAPA,IAAY,IACV,EAAN,EAAM,cAAiBZ,EAAvB,EAAuBA,aAEnBa,GAAJ,GACE,iBACA,wBAA6Bb,EAA7B,GAEA,MAAA34E,IAAoB,EAApB,UAAqC9qB,WAAWqkG,EAAhDv5E,IAIJu5E,KAEF7lG,WA/EO,WAgFL,IAAMhB,EAAiB,kCAAvB,MAOA,OANInS,KAAJ,cACEA,KAAA,GAAQmS,EAAR,WAA8B,CAC5BxE,MAAO,CAAEE,MAAO,GAAF,OAAK7N,KAAKo4G,aAAV,SAIlB,GAEFc,iBAzFO,WA0FL,GAAIl5G,KAAKoM,OAAT,YAA6B,CAC3B,IAAMszC,EAAc1/C,KAAKk4G,UACrB,CAACl4G,KAAK2T,eAAe,MAAO,CAC5B7G,YAAa,wBACZ9M,KAAKoM,OAHU,cAApB,GAMA,OAAKpM,KAAL,WAEOA,KAAK2T,eAAe,aAAc,CACvCvQ,MAAO,CACLwQ,QADK,EAELxR,KAAMpC,KAAKyE,aAHf,GAF6Bi7C,EAAP,MAY5B/7C,OA/NO,SA+ND,GACJ,IAAMonB,EAAO,2BAAb,GAEMjnB,EAAO,OAAAK,EAAA,MAAU4mB,EAAD,KAAa,CACjCje,YADiC,UAEjCE,MAAO,CACL,aAAchN,KADT,IAELiO,KAAMjO,KAAK23G,IAAM,WAAQ74G,GAE3BiO,MAAO/M,KAN0B,aASjCqQ,WAAYonG,EACR,CAAC,CACDr1G,KADC,YAEDuxC,UAAW,CAAE9uB,MAAM,GACnBhe,MAAO,CACLiN,QAAS9T,KADJ,KAELwZ,QAASxZ,KAAKwZ,gBAGhB1a,IAUN,OAPAisB,EAAA,SAAgB,CACd/qB,KADc,cAEdA,KAFc,cAGdA,KAHc,mBAIdA,KAJF,cAOOkE,EAAE6mB,EAAD,MAAiBA,EAAzB,c,kCCjSW,SAAS0tE,EAAgBv3E,EAAKpa,EAAKD,GAYhD,OAXIC,KAAOoa,EACTzf,OAAO0E,eAAe+a,EAAKpa,EAAK,CAC9BD,MAAOA,EACP0f,YAAY,EACZjL,cAAc,EACdkL,UAAU,IAGZtF,EAAIpa,GAAOD,EAGNqa,EAZT,mC,qBCAA,IAAI3e,EAAc,EAAQ,QACtB0D,EAAQ,EAAQ,QAChBtD,EAAM,EAAQ,QAEdwD,EAAiB1E,OAAO0E,eACxBuc,EAAQ,GAERy2F,EAAU,SAAUv3G,GAAM,MAAMA,GAEpCrD,EAAOC,QAAU,SAAUmZ,EAAa6B,GACtC,GAAI7W,EAAI+f,EAAO/K,GAAc,OAAO+K,EAAM/K,GACrC6B,IAASA,EAAU,IACxB,IAAI+R,EAAS,GAAG5T,GACZy8E,IAAYzxF,EAAI6W,EAAS,cAAeA,EAAQ46E,UAChDglB,EAAYz2G,EAAI6W,EAAS,GAAKA,EAAQ,GAAK2/F,EAC3CE,EAAY12G,EAAI6W,EAAS,GAAKA,EAAQ,QAAK1a,EAE/C,OAAO4jB,EAAM/K,KAAiB4T,IAAWtlB,GAAM,WAC7C,GAAImuF,IAAc7xF,EAAa,OAAO,EACtC,IAAIxC,EAAI,CAAElB,QAAS,GAEfu1F,EAAWjuF,EAAepG,EAAG,EAAG,CAAEwmB,YAAY,EAAMngB,IAAK+yG,IACxDp5G,EAAE,GAAK,EAEZwrB,EAAOxsB,KAAKgB,EAAGq5G,EAAWC,Q,kCCvB9B,IAaIthD,EAAmBuhD,EAAmCC,EAbtDliD,EAAiB,EAAQ,QACzB/nD,EAA8B,EAAQ,QACtC3M,EAAM,EAAQ,QACdvE,EAAkB,EAAQ,QAC1BiI,EAAU,EAAQ,QAElBC,EAAWlI,EAAgB,YAC3BwnF,GAAyB,EAEzBluB,EAAa,WAAc,OAAO13D,MAMlC,GAAG6P,OACL0pG,EAAgB,GAAG1pG,OAEb,SAAU0pG,GAEdD,EAAoCjiD,EAAeA,EAAekiD,IAC9DD,IAAsC73G,OAAOP,YAAW62D,EAAoBuhD,IAHlD1zB,GAAyB,QAOlC9mF,GAArBi5D,IAAgCA,EAAoB,IAGnD1xD,GAAY1D,EAAIo1D,EAAmBzxD,IACtCgJ,EAA4ByoD,EAAmBzxD,EAAUoxD,GAG3Dn5D,EAAOC,QAAU,CACfu5D,kBAAmBA,EACnB6tB,uBAAwBA,I,qBCnC1B,IAAI3/E,EAAQ,EAAQ,QAIpB1H,EAAOC,QAAU,SAAUmZ,GACzB,OAAO1R,GAAM,WACX,IAAI3H,EAAO,GAAGqZ,GAAa,KAC3B,OAAOrZ,IAASA,EAAK6jB,eAAiB7jB,EAAKwK,MAAM,KAAKjK,OAAS,O,4DCLpD,qBAAW,CACxBuD,KADwB,WAGxBgB,MAAO,CACLsJ,MADK,QAELD,MAFK,QAGLE,OAHK,QAILH,OAAQV,SAGVH,SAAU,CACRC,OADQ,WAEN,OAAOE,SACJ9L,KAAD,SACCA,KADD,QAECA,KAFD,QAGCA,KAJH,SAOFspF,gBATQ,WAUN,MAAO,CACL,kBAAmBtpF,KADd,OAEL,gBAAiBA,KAFZ,MAGL,kBAAmBA,KAHd,OAIL,gBAAiBA,KAJZ,MAKL,kBAAmBA,KAAK2M,a,kCC1BhC,IAAI6sG,EAAwB,EAAQ,QAChCxqG,EAAU,EAAQ,QAItBzQ,EAAOC,QAAUg7G,EAAwB,GAAGl4G,SAAW,WACrD,MAAO,WAAa0N,EAAQhP,MAAQ,M,4ICUvB,sBAAO,EAAD,YAAN,eAIN,CACPoC,KADO,SAGPgB,MAAO,CACLvD,KADK,QAEL45G,MAFK,QAGLr2B,IAHK,OAIL5sE,KAJK,QAKL4J,aAAc,CACZ9c,KAAM,CAACmI,OADK,QAEZlI,QAAS,GAEXm2G,OAAQ5tG,SAGVH,SAAU,CACRyF,QADQ,WAEN,sCACE,UADK,GAEF,qCAFE,OAAP,IAGE,eAAgBpR,KAHX,KAIL,gBAAiBA,KAJZ,MAKL,eAAgBA,KALX,YAML,kBAAmBA,KANd,QAOL,mBAAoBA,KAPf,SAQL,iBAAkBA,KARb,QASF,6CAGPkX,OAdQ,WAeN,IAAMvJ,EAAK,kBACN,2CAOL,OAJI3N,KAAJ,MACE2N,EAAA,0BAA2B3N,KAA3B,2CAGF,IAIJiM,QAAS,CACPoU,YADO,WAEL,IAAM1c,EAAS,wCAAf,MAEA,SAEO3D,KAAK2T,eAAe,MAAO,CAChC7G,YADgC,mBAEhChG,IAAK,YACJ,CAHH,IAFoB,OASxBnD,OAvDO,SAuDD,GAAG,MACe3D,KAAtB,oBAAM,EADC,EACD,IAAO8D,EADN,EACMA,KASb,OAPAA,EAAA,MAAa9D,KAAb,OAEIA,KAAJ,cACE8D,EAAA,MAAaA,EAAA,OAAb,GACAA,EAAA,kBAGKI,EAAEN,EAAK5D,KAAK0e,mBAAmB1e,KAAxB,MAAN,GAAiD,CACvDA,KADuD,cAEvDA,KAAKoM,OAFP,c,qBCtFJ,IAAI7J,EAAc,EAAQ,QACtB4D,EAAiB,EAAQ,QAAuC9E,EAEhEs4G,EAAoB/4G,SAASM,UAC7B04G,EAA4BD,EAAkBr4G,SAC9Cu4G,EAAS,wBACTjiD,EAAO,OAIPr1D,KAAiBq1D,KAAQ+hD,IAC3BxzG,EAAewzG,EAAmB/hD,EAAM,CACtCt8C,cAAc,EACdlV,IAAK,WACH,IACE,OAAOwzG,EAA0B76G,KAAKiB,MAAMmJ,MAAM0wG,GAAQ,GAC1D,MAAOh4G,GACP,MAAO,Q,qBCjBf,IAcIi4G,EAAOC,EAAMzlF,EAAMjL,EAAQ9R,EAAQwT,EAAMivF,EAASv4F,EAdlDrS,EAAS,EAAQ,QACjBtM,EAA2B,EAAQ,QAAmDzB,EACtF2N,EAAU,EAAQ,QAClBirG,EAAY,EAAQ,QAAqBxxF,IACzCyjC,EAAS,EAAQ,QAEjBx6B,EAAmBtiB,EAAOsiB,kBAAoBtiB,EAAO8qG,uBACrD7tD,EAAUj9C,EAAOi9C,QACjB76B,EAAUpiB,EAAOoiB,QACjB2oF,EAA8B,WAApBnrG,EAAQq9C,GAElB+tD,EAA2Bt3G,EAAyBsM,EAAQ,kBAC5DirG,EAAiBD,GAA4BA,EAAyBvzG,MAKrEwzG,IACHP,EAAQ,WACN,IAAI19F,EAAQzd,EACRw7G,IAAY/9F,EAASiwC,EAAQg5B,SAASjpE,EAAOk+F,OACjD,MAAOP,EAAM,CACXp7G,EAAKo7G,EAAKp7G,GACVo7G,EAAOA,EAAKhkG,KACZ,IACEpX,IACA,MAAOkD,GAGP,MAFIk4G,EAAM1wF,IACLiL,OAAOx1B,EACN+C,GAERyyB,OAAOx1B,EACLsd,GAAQA,EAAOxX,SAIjBu1G,EACF9wF,EAAS,WACPgjC,EAAQp6B,SAAS6nF,IAGVpoF,IAAqBw6B,GAC9B30C,GAAS,EACTwT,EAAOtY,SAASsf,eAAe,IAC/B,IAAIL,EAAiBooF,GAAOrtF,QAAQ1B,EAAM,CAAEiH,eAAe,IAC3D3I,EAAS,WACP0B,EAAKjnB,KAAOyT,GAAUA,IAGfia,GAAWA,EAAQC,SAE5BuoF,EAAUxoF,EAAQC,aAAQ3yB,GAC1B2iB,EAAOu4F,EAAQv4F,KACf4H,EAAS,WACP5H,EAAK1iB,KAAKi7G,EAASF,KASrBzwF,EAAS,WAEP4wF,EAAUl7G,KAAKqQ,EAAQ0qG,KAK7Bv7G,EAAOC,QAAU67G,GAAkB,SAAU17G,GAC3C,IAAI47G,EAAO,CAAE57G,GAAIA,EAAIoX,UAAMjX,GACvBw1B,IAAMA,EAAKve,KAAOwkG,GACjBR,IACHA,EAAOQ,EACPlxF,KACAiL,EAAOimF,I,qBC5EX,IAAInrG,EAAS,EAAQ,QACjBwuD,EAAS,EAAQ,QACjBj7D,EAAM,EAAQ,QACdimB,EAAM,EAAQ,QACdgsE,EAAgB,EAAQ,QACxBC,EAAoB,EAAQ,QAE5Be,EAAwBh4B,EAAO,OAC/BvgD,EAASjO,EAAOiO,OAChBm9F,EAAwB3lB,EAAoBx3E,EAASA,GAAUA,EAAOo9F,eAAiB7xF,EAE3FrqB,EAAOC,QAAU,SAAU4D,GAIvB,OAHGO,EAAIizF,EAAuBxzF,KAC1BwyF,GAAiBjyF,EAAI0a,EAAQjb,GAAOwzF,EAAsBxzF,GAAQib,EAAOjb,GACxEwzF,EAAsBxzF,GAAQo4G,EAAsB,UAAYp4G,IAC9DwzF,EAAsBxzF,K,qBCfjC,IAAI/C,EAAI,EAAQ,QACZE,EAAW,EAAQ,QACnBm7G,EAAa,EAAQ,QACrBz0G,EAAQ,EAAQ,QAEhB6lE,EAAsB7lE,GAAM,WAAcy0G,EAAW,MAIzDr7G,EAAE,CAAEM,OAAQ,SAAUqG,MAAM,EAAM6I,OAAQi9D,GAAuB,CAC/Dj8D,KAAM,SAAcjO,GAClB,OAAO84G,EAAWn7G,EAASqC,Q,kCCV/B,IAAIvC,EAAI,EAAQ,QACZI,EAAY,EAAQ,QACpBk7G,EAAkB,EAAQ,QAC1BpzG,EAAS,EAAQ,QACjBtB,EAAQ,EAAQ,QAEhB20G,EAAgB,GAAIC,QACpBv5F,EAAQhZ,KAAKgZ,MAEb8hC,EAAM,SAAU9+C,EAAGpC,EAAG44G,GACxB,OAAa,IAAN54G,EAAU44G,EAAM54G,EAAI,IAAM,EAAIkhD,EAAI9+C,EAAGpC,EAAI,EAAG44G,EAAMx2G,GAAK8+C,EAAI9+C,EAAIA,EAAGpC,EAAI,EAAG44G,IAG9EjlD,EAAM,SAAUvxD,GAClB,IAAIpC,EAAI,EACJ64G,EAAKz2G,EACT,MAAOy2G,GAAM,KACX74G,GAAK,GACL64G,GAAM,KAER,MAAOA,GAAM,EACX74G,GAAK,EACL64G,GAAM,EACN,OAAO74G,GAGPuX,EAASmhG,IACY,UAAvB,KAAQC,QAAQ,IACG,MAAnB,GAAIA,QAAQ,IACS,SAArB,MAAMA,QAAQ,IACuB,yBAArC,mBAAsBA,QAAQ,MAC1B50G,GAAM,WAEV20G,EAAc77G,KAAK,OAKrBM,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMiP,OAAQ4K,GAAU,CAEnDohG,QAAS,SAAiBG,GACxB,IAKIvwG,EAAGC,EAAGg4B,EAAG07B,EALTtnB,EAAS6jE,EAAgB36G,MACzBi7G,EAAcx7G,EAAUu7G,GACxBl3G,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvByrE,EAAO,GACP7oE,EAAS,IAGTw0G,EAAW,SAAUh5G,EAAGhD,GAC1B,IAAI6K,GAAS,EACToxG,EAAKj8G,EACT,QAAS6K,EAAQ,EACfoxG,GAAMj5G,EAAI4B,EAAKiG,GACfjG,EAAKiG,GAASoxG,EAAK,IACnBA,EAAK75F,EAAM65F,EAAK,MAIhBC,EAAS,SAAUl5G,GACrB,IAAI6H,EAAQ,EACR7K,EAAI,EACR,QAAS6K,GAAS,EAChB7K,GAAK4E,EAAKiG,GACVjG,EAAKiG,GAASuX,EAAMpiB,EAAIgD,GACxBhD,EAAKA,EAAIgD,EAAK,KAIdm5G,EAAe,WACjB,IAAItxG,EAAQ,EACR4xC,EAAI,GACR,QAAS5xC,GAAS,EAChB,GAAU,KAAN4xC,GAAsB,IAAV5xC,GAA+B,IAAhBjG,EAAKiG,GAAc,CAChD,IAAIgtD,EAAIt4D,OAAOqF,EAAKiG,IACpB4xC,EAAU,KAANA,EAAWob,EAAIpb,EAAIp0C,EAAOxI,KAAK,IAAK,EAAIg4D,EAAEl4D,QAAUk4D,EAE1D,OAAOpb,GAGX,GAAIs/D,EAAc,GAAKA,EAAc,GAAI,MAAMtzG,WAAW,6BAE1D,GAAImvC,GAAUA,EAAQ,MAAO,MAC7B,GAAIA,IAAW,MAAQA,GAAU,KAAM,OAAOr4C,OAAOq4C,GAKrD,GAJIA,EAAS,IACXy4B,EAAO,IACPz4B,GAAUA,GAERA,EAAS,MAKX,GAJArsC,EAAIorD,EAAI/e,EAASsM,EAAI,EAAG,GAAI,IAAM,GAClC14C,EAAID,EAAI,EAAIqsC,EAASsM,EAAI,GAAI34C,EAAG,GAAKqsC,EAASsM,EAAI,EAAG34C,EAAG,GACxDC,GAAK,iBACLD,EAAI,GAAKA,EACLA,EAAI,EAAG,CACTywG,EAAS,EAAGxwG,GACZg4B,EAAIu4E,EACJ,MAAOv4E,GAAK,EACVw4E,EAAS,IAAK,GACdx4E,GAAK,EAEPw4E,EAAS93D,EAAI,GAAI1gB,EAAG,GAAI,GACxBA,EAAIj4B,EAAI,EACR,MAAOi4B,GAAK,GACV04E,EAAO,GAAK,IACZ14E,GAAK,GAEP04E,EAAO,GAAK14E,GACZw4E,EAAS,EAAG,GACZE,EAAO,GACP10G,EAAS20G,SAETH,EAAS,EAAGxwG,GACZwwG,EAAS,IAAMzwG,EAAG,GAClB/D,EAAS20G,IAAiB9zG,EAAOxI,KAAK,IAAKk8G,GAU7C,OAPEA,EAAc,GAChB78C,EAAI13D,EAAO7H,OACX6H,EAAS6oE,GAAQnR,GAAK68C,EAClB,KAAO1zG,EAAOxI,KAAK,IAAKk8G,EAAc78C,GAAK13D,EAC3CA,EAAOtG,MAAM,EAAGg+D,EAAI68C,GAAe,IAAMv0G,EAAOtG,MAAMg+D,EAAI68C,KAE9Dv0G,EAAS6oE,EAAO7oE,EACTA,M,qBC3Hb,IAAI5F,EAAO,EAAQ,QACfw9E,EAAgB,EAAQ,QACxB/+E,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBE,EAAqB,EAAQ,QAE7B0I,EAAO,GAAGA,KAGV4tE,EAAe,SAAUuE,GAC3B,IAAIyF,EAAiB,GAARzF,EACT+gC,EAAoB,GAAR/gC,EACZghC,EAAkB,GAARhhC,EACVihC,EAAmB,GAARjhC,EACXkhC,EAAwB,GAARlhC,EAChBmhC,EAAmB,GAARnhC,GAAakhC,EAC5B,OAAO,SAAU94C,EAAO5zD,EAAYnQ,EAAM+8G,GASxC,IARA,IAOI90G,EAAOH,EAPP3G,EAAIR,EAASojE,GACbnE,EAAO8f,EAAcv+E,GACrBiB,EAAgBF,EAAKiO,EAAYnQ,EAAM,GACvCC,EAASW,EAASg/D,EAAK3/D,QACvBkL,EAAQ,EACRmY,EAASy5F,GAAkBj8G,EAC3BC,EAASqgF,EAAS99D,EAAOygD,EAAO9jE,GAAUy8G,EAAYp5F,EAAOygD,EAAO,QAAK7jE,EAEvED,EAASkL,EAAOA,IAAS,IAAI2xG,GAAY3xG,KAASy0D,KACtD33D,EAAQ23D,EAAKz0D,GACbrD,EAAS1F,EAAc6F,EAAOkD,EAAOhK,GACjCw6E,GACF,GAAIyF,EAAQrgF,EAAOoK,GAASrD,OACvB,GAAIA,EAAQ,OAAQ6zE,GACvB,KAAK,EAAG,OAAO,EACf,KAAK,EAAG,OAAO1zE,EACf,KAAK,EAAG,OAAOkD,EACf,KAAK,EAAG3B,EAAKrJ,KAAKY,EAAQkH,QACrB,GAAI20G,EAAU,OAAO,EAGhC,OAAOC,GAAiB,EAAIF,GAAWC,EAAWA,EAAW77G,IAIjEpB,EAAOC,QAAU,CAGfoI,QAASovE,EAAa,GAGtB/zD,IAAK+zD,EAAa,GAGlB1sC,OAAQ0sC,EAAa,GAGrBlrE,KAAMkrE,EAAa,GAGnBzxD,MAAOyxD,EAAa,GAGpB/nB,KAAM+nB,EAAa,GAGnBqZ,UAAWrZ,EAAa,K,8DC7C1B,SAAS4lC,EAAT,GAEE,IADA,IAAMp8C,EAAN,GACSz1D,EAAT,EAAoBA,EAAQuE,EAA5B,OAA6CvE,IAAS,CACpD,IAAM6gB,EAAQtc,EAAd,GACIsc,EAAA,UAAkBA,EAAtB,YACE40C,EAAA,QAEAA,EAAA,WAAAA,EAAO,eAASo8C,EAAehxF,EAA/B,aAIJ,SAIa,+BAAyB,CACtCxoB,KADsC,YAGtC0B,KAHsC,WAIpC,MAAO,CACL+3G,iBADK,EAEL3qG,UAFK,EAGL4qG,aAAa,IAIjBtqG,MAAO,CACLN,SADK,SACG,GACN,MAGA,IADA,IAAM6qG,EAAiB/7G,KAAvB,oBACS+J,EAAT,EAAoBA,EAAQgyG,EAA5B,OAAmDhyG,IACjDgyG,EAAA,iBAKN9vG,QAAS,CACP4G,kBADO,WAEL,OAAI7S,KAAJ,gBAAiC47G,EAAe57G,KAAtB,WAE1B,IAEFgT,yBANO,WAUL,IAHA,IAAMtM,EAAN,GACMq1G,EAAiB/7G,KAAvB,oBAES+J,EAAT,EAAoBA,EAAQgyG,EAA5B,OAAmDhyG,IACjDrD,EAAA,WAAAA,EAAM,eAASq1G,EAAA,GAAf,kCAGF,UAEFC,8BAhBO,WAiBL,IAAMt1G,EAAS,CAAC1G,KAAhB,KAKA,OAJIA,KAAKkS,MAAT,SAAwBxL,EAAA,KAAY1G,KAAKkS,MAAjB,SACpBlS,KAAJ,SAAkB0G,EAAA,KAAY1G,KAAKqS,QAAjB,KAClB3L,EAAA,WAAAA,EAAM,eAAS1G,KAAf,6BAEA,O,gJC5ES,SAASi8G,EAA2Bl6G,EAAGm6G,GACpD,IAAIt6G,EAEJ,GAAsB,qBAAXyb,QAAgD,MAAtBtb,EAAEsb,OAAOvE,UAAmB,CAC/D,GAAIzW,MAAM6a,QAAQnb,KAAOH,EAAK8b,eAA2B3b,KAAOm6G,GAAkBn6G,GAAyB,kBAAbA,EAAElD,OAAqB,CAC/G+C,IAAIG,EAAIH,GACZ,IAAIjB,EAAI,EAEJ+3D,EAAI,aAER,MAAO,CACL/c,EAAG+c,EACHx2D,EAAG,WACD,OAAIvB,GAAKoB,EAAElD,OAAe,CACxBsL,MAAM,GAED,CACLA,MAAM,EACNtD,MAAO9E,EAAEpB,OAGb8J,EAAG,SAAW6uB,GACZ,MAAMA,GAERj4B,EAAGq3D,GAIP,MAAM,IAAIvpD,UAAU,yIAGtB,IAEIohB,EAFA4rF,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLzgE,EAAG,WACD/5C,EAAKG,EAAEsb,OAAOvE,aAEhB5W,EAAG,WACD,IAAI8W,EAAOpX,EAAGmU,OAEd,OADAomG,EAAmBnjG,EAAK7O,KACjB6O,GAETvO,EAAG,SAAW4xG,GACZD,GAAS,EACT7rF,EAAM8rF,GAERh7G,EAAG,WACD,IACO86G,GAAoC,MAAhBv6G,EAAG,WAAmBA,EAAG,YADpD,QAGE,GAAIw6G,EAAQ,MAAM7rF,O,kcC1BX,SAAA3S,EAAA,MAAO,EAAD,0BAKnB,eALmB,aAMnB,eANa,sBAON,CACPxb,KADO,SAGPgB,MAAO,CACLya,OAAQ,CACNva,KADM,QAENC,SAAS,GAEX6S,YAAa,CACX9S,KADW,OAEXC,QAFW,WAGT,OAAKvD,KAAL,UAEOA,KAAKs8G,UAAZ,YAF4B,KAKhCxnG,MAbK,QAcLynG,UAAW,CACTj5G,KADS,OAETC,QAAS,WAEX+H,SAlBK,QAmBL48D,UAnBK,QAoBL5+B,OApBK,QAqBLkzE,WAAY,CACVl5G,KADU,OAEVC,QAAS,aAEXuxE,MAzBK,QA0BLt+D,KA1BK,QA2BL4yE,SA3BK,QA4BLqzB,KA5BK,QA6BL74G,IAAK,CACHN,KADG,OAEHC,QAAS,QAEXm5G,UAjCK,OAkCL71G,MAAO,MAGT/C,KAAM,iBAAO,CACX+S,WAAY,mBAGdlL,SAAU,CACRyF,QADQ,WAEN,oEACE,UADK,GAEF,qCAFE,OAAP,IAGE,oBAAqBpR,KAHhB,YAIL,mBAAoBA,KAJf,SAKL,oBAAqBA,KALhB,UAML,gBAAiBA,KANZ,MAOL,eAAgBA,KAPX,OAQL,oBAAqBA,KARhB,MASL,mBAAoBA,KATf,SAUL,eAAgBA,KAVX,KAWL,oBAAqBA,KAXhB,UAYFA,KAZE,cAaFA,KAbE,iBAcFA,KAAK02E,eAGZimC,SAnBQ,WAoBN,OAAO7wG,QAAQ9L,KAAf,QAEF+W,YAtBQ,WAuBN,OAAOjL,QACL,gDACA9L,KAFF,aAOJyR,QA1EO,WA0EA,WACCyxE,EAAgB,CACpB,CAAC,UADmB,YAEpB,CAAC,WAFmB,eAGpB,CAAC,QAHmB,UAIpB,CAAC,SAJH,iBAQAA,EAAA,SAAsB,YAA4B,0BAA3B,EAA2B,KAA5B,EAA4B,KAC5C,wBAAJ,IAA0C,eAAS13D,EAAUy0C,EAAnB,OAI9Ch0D,QAAS,CACPD,MADO,SACF,GACHhM,KAAA,iBAEAA,KAAA,WAAkBA,KAAlB,UAEF48G,UANO,WAOL,IAAMtuG,EAAN,GAWA,OATItO,KAAJ,UACEsO,EAAA,KACEtO,KAAK2T,eAAevI,EAApB,KAA2B,CACzB0B,YADyB,iBAEzB1J,MAAO,CAAEmI,MAAM,IACdvL,KAJL,aAQKA,KAAK2T,eAAe,EAApB,KAAP,IAEFkpG,SApBO,WAoBC,WACN,OAAO78G,KAAK2T,eAAevI,EAApB,KAA2B,CAChC0B,YADgC,gBAEhC1J,MAAO,CACLoI,OADK,EAELlG,KAAM,IAERvB,GAAI,CACFiI,MAAQ,SAAAvB,GACNA,EAAA,kBACAA,EAAA,iBAEA,uBACA,+BAGHzK,KAfH,YAiBFmT,WAtCO,WAuCL,OAAOnT,KAAK2T,eAAe,OAAQ,CACjC7G,YAAa,mBACZ,CACD9M,KAAKspC,QAAUtpC,KADd,YAEDA,KAAKoM,OAFJ,QAGDpM,KAAK28G,UAAY38G,KALnB,eAUJ2D,OAzIO,SAyID,GACJ,IAAM2K,EAAW,CAACtO,KAAlB,cADO,EAEaA,KAApB,oBAAI,EAFG,EAEH,IAAO8D,EAFJ,EAEIA,KAEXA,EAAA,uCACKA,EADQ,OAAb,IAEEokE,UAAWloE,KAAKkoE,UAAY,YAFjB,EAGX50D,SAAUtT,KAAKs8G,YAAct8G,KAAnB,WAAuC8D,EAAA,MAAYwP,WAE/DxP,EAAA,gBAAsB,CACpB1B,KADoB,OAEpByE,MAAO7G,KAAK6d,SAEd/Z,EAAO9D,KAAK0e,mBAAmB1e,KAAxB,MAAP8D,GAEA,IAAMma,EAAQje,KAAK08G,WAAc18G,KAAKopF,UAAYppF,KAAlD,MAEA,OAAOkE,EAAEN,EAAK5D,KAAK0V,aAAauI,EAAxB,GAAR,MCxLJ,I,4HCYe,gBAAW,CACxB7b,KADwB,oBAGxBe,YAHwB,EAKxBkN,WAAY,CACVuG,SAAA,MAGFxT,MAAO,gDACF,eADE,OAEF,eAFE,OAAF,IAGHkI,SAHK,QAILsL,OAAQ,CACNtT,KADM,QAENC,SAAS,GAEXsD,MARK,QASLqX,cATK,QAUL4+F,kBAAmB,CACjBx5G,KADiB,OAEjBC,QAAS,0BAEXw5G,OAAQ,CACNz5G,KADM,OAENC,QAAS,eAEXy5G,QAAS,CACP15G,KADO,OAEPC,QAAS,kBAIbI,OAjCwB,SAiClB,EAjCkB,GAiCa,IAA1B,EAA0B,EAA1B,QAA0B,EAA1B,KAAeoc,EAAW,EAAXA,UAClBzR,EAAN,GAEA,GAAIlL,EAAA,SAAiBA,EAArB,SAAqC,CACnC,IAAM,EAASc,EAAE,MAAO,oCAAuCd,EAAvC,MAAoD,CAC1E0J,YAD0E,sCAE1EuD,WAAY,CAAC,CACXjO,KADW,SAEXyE,MAAO,CAAEo2G,QAAQ,QAIrB3uG,EAAA,QAGF,IAAIpD,EAAO9H,EAAX,QACIA,EAAJ,cAAyB8H,EAAO9H,EAAhC,kBACSA,EAAJ,QAAiB8H,EAAO9H,EAAP,QAEtBkL,EAAA,KAAcpK,EAAE,EAAD,KAAQ,oCAAuCd,EAAA,OAAeA,EAAtD,MAAmE,CACxFA,MAAO,CACLkI,SAAUlI,EADL,SAELmN,KAAMnN,EAFD,KAGLqN,MAAOrN,EAAMqN,SAJjB,IAQA,IAAMW,EAAU,CACd,qBADc,EAEd,8BAA+BhO,EAAMkI,UAGvC,OAAOpH,EAAE,MAAO,OAAR,OAAQ,CAAP,kBAAO,GAAR,IAEN6I,MAFc,EAGdhJ,GAAI,eAAe,CACjBiI,MAAQ,SAAAvB,GACNA,EAAA,kBAEI3G,EAAA,IAAWA,EAAA,GAAX,QAA6BV,EAAjC,UACE,eAAYU,EAAA,GAAZ,gBAAmC,SAAAzC,GAAC,OAAIA,GAAG+B,EAA3C,YALY,KAHpB,MCvEW,G,UAAA,cAAiB,CAC9BhB,KAD8B,YAG9BgB,MAAO,CACL85G,MADK,QAELnX,SAAUj6F,SAGZnI,OAR8B,SAQxB,GAEJ,MAIA,OAHK3D,KAAK0R,OAAN,MAAJ,cAAyB1R,KAAK0R,OAAOzD,OACnCkvG,EAAcn9G,KAAK+lG,SAAW,WAA9B,cAEK7hG,EAAE,KAAM,CACb6I,MAAO,gBACL,aADK,EAEL,mBAAoB/M,KAFf,MAGL,sBAAuBA,KAHlB,UAIFA,KAAKmN,cAEVH,MAAO,gBACLiB,KADK,YAEL,mBAFK,GAGFjO,KAAK0R,QAEV3N,GAAI/D,KAAKiX,iBChCf,ICOe,G,UAAA,OAAA2G,EAAA,MACb,QADa,OAGN,CACPxb,KADO,cAGPgB,MAAO,CACL85G,MAAOpxG,SAGTnI,OAPO,SAOD,GACJ,OAAOO,EAAE,MAAO,CACd4I,YADc,cAEdC,MAAO,gBACL,qBAAsB/M,KADjB,OAEFA,KAAKmN,cAEVH,MAAOhN,KANO,OAOd+D,GAAI/D,KAAKiX,YACRjX,KAAKoM,OARR,aClBJ,I,gDC8Be,SAAAwR,EAAA,MAAO,EAAD,KAAN,eAAoC,CACjDxb,KADiD,gBAIjDiO,WAAY,CACVuG,SAAA,MAGFxT,MAAO,CACL4qD,OADK,QAEL3iD,MAFK,QAGL+xG,aAHK,QAIL7vF,MAAO,CACLjqB,KADK,MAELC,QAAS,iBAAM,KAEjB85G,aAAc,CACZ/5G,KAAM,CAAC7E,OAAQ4D,MADH,UAEZkB,QAAS,YAEX+5G,SAAU,CACRh6G,KAAM,CAAC7E,OAAQ4D,MADP,UAERkB,QAAS,QAEXg6G,UAAW,CACTj6G,KAAM,CAAC7E,OAAQ4D,MADN,UAETkB,QAAS,SAEXi6G,WApBK,OAqBLC,SArBK,QAsBLC,YAtBK,KAuBLjgC,cAAe,CACbn6E,KADa,MAEbC,QAAS,iBAAM,MAInBoI,SAAU,CACRgyG,YADQ,WACG,WACT,OAAO39G,KAAKy9E,cAAcx7D,KAAI,SAAAK,GAAI,OAAI,WAAtC,OAEFs7F,gBAJQ,WAKN,OAAOn8G,OAAA,KAAYzB,KAAK0V,aAAa1V,KAAlB,cAAZ,SAAP,MAEF69G,iBAPQ,WAQN,IAAM1oC,EAAO,CACXnoE,MAAO,CACLiB,UAAMnP,GAERiF,GAAI,CACF+5G,UAAY,SAAArzG,GAAD,OAAcA,EAAA,oBAI7B,OAAOzK,KAAK2T,eAAesnE,EAApB,OAAqC,CAC1Cj7E,KAAK+9G,eAAe/9G,KADtB,gBAMJiM,QAAS,CACP+xG,UADO,SACE,KAA+B,WACtC,OAAOh+G,KAAK2T,eAAeunE,EAApB,KAAqC,CAC1Cl7E,KAAK2T,eAAe,EAAiB,CACnCvQ,MAAO,CACL6a,MAAOje,KADF,MAEL6G,MAAOgzE,GAET91E,GAAI,CACFsgD,MAAO,kBAAM,2BAKrB45D,WAdO,SAcG,GACR,OAAOj+G,KAAK2T,eAAe,EAAU,CAAEvQ,WAEzC86G,gBAjBO,SAiBQ,GAGb,GAFA7xG,EAAOA,GAAP,IAEKrM,KAAD,aAAqBA,KAAzB,SAAwC,OAAO,eAAP,GAHb,MAKIA,KAAKm+G,oBAApC,GAAM,EALqB,EAKrB,QALqB,EAKrB,OAAiB7sE,EALI,EAKJA,IAEvB,gBAAU,eAAW3tB,IAArB,OAA8B3jB,KAAKo+G,aAAaC,IAAhD,OAA0D,eAA1D,KAEFzkC,UA1BO,SA0BE,GACP,OAAO55E,KAAK2T,eAAe,EAAY,CAAEvQ,SAASA,EAAlD,SAEFg7G,aA7BO,SA6BK,GACV,gDAA0C,eAA1C,eAEFD,oBAhCO,SAgCY,GAKjB,IAAMT,GAAe19G,KAAK09G,aAAN,eAApB,oBACM3zG,EAAQsC,EAAA,4BAAd,GAEA,GAAItC,EAAJ,EAAe,MAAO,CAAE4Z,MAAF,GAAa06F,OAAb,EAA2B/sE,IAAK,IAEtD,IAAM3tB,EAAQtX,EAAA,QAAd,GACMgyG,EAAShyG,EAAA,QAAkBtC,EAAQ2zG,EAAzC,QACMpsE,EAAMjlC,EAAA,MAAWtC,EAAQ2zG,EAA/B,QACA,MAAO,CAAE/5F,QAAO06F,SAAQ/sE,QAE1BgtE,QA/CO,YAoDI,WALF,EAKE,EALF,OAKE,EALF,MAKE,IAFThzG,gBAES,MALF,KAKE,MADTzE,aACS,SACT,IAAYA,EAAQ7G,KAAKu+G,QAAb,IAERj8F,IAAS7gB,OAAb,KACE6J,EAAW,OAAAA,IAEPtL,KAAKw+G,YAFT,IAKF,IAAMrpC,EAAO,CACXnoE,MAAO,CAGL,gBAAiBvO,OAHZ,GAILqqB,GAAI,aAAF,OAAe9oB,KAAK6mC,KAApB,YAJG,GAKL54B,KAAM,UAERlK,GAAI,CACF+5G,UAAY,SAAArzG,GAEVA,EAAA,kBAEFuB,MAAO,kBAAMV,GAAY,sBAE3BlI,MAAO,CACLgT,YAAapW,KADR,gBAELsL,WACAsL,QAHK,EAILijE,WAAYhzE,IAIhB,IAAK7G,KAAKuR,aAAV,KACE,OAAOvR,KAAK2T,eAAesnE,EAApB,OAAqC,CAC1Cj7E,KAAKguD,SAAWhuD,KAAhB,cAAqCA,KAAKutB,MAAM1uB,OAAhD,EACImB,KAAKg+G,UAAU17F,EADnB,GAD0C,KAI1CtiB,KAAK+9G,eAAez7F,EAJtB,KAQF,IAAMlG,EAAN,KACMkqD,EAAatmE,KAAKuR,aAAa+Q,KAAK,CACxClG,SACAkG,OACAtV,MAAO,iCACFmoE,EADE,OAEFA,EAAK/xE,OAEVW,GAAIoxE,EAAKpxE,KAGX,OAAO/D,KAAKy+G,UAAUn4C,GAClBtmE,KAAK2T,eAAesnE,EAApB,OADG,GAAP,GAIF8iC,eA5GO,SA4GO,GAAsB,IAC5BjsE,EAAY9xC,KAAKk+G,gBAAgBl+G,KAAK0+G,QAA5C,IAEA,OAAO1+G,KAAK2T,eAAeonE,EAApB,KACL,CAAC/6E,KAAK2T,eAAeonE,EAApB,KAAoC,CACnC3jD,SAAU,CAAE0a,kBAIlBysE,QArHO,SAqHA,GACL,OAAOv+G,KAAK29G,YAAY7tG,QAAQ9P,KAAKm+C,SAA9B,KAAP,GAEFsgE,UAxHO,SAwHE,GACP,OAAO,IAAA5+F,EAAA,cACLA,EAAA,qBADF,gBAEEA,EAAA,uCAEJ2+F,YA7HO,SA6HI,GACT,OAAO1yG,QAAQ,eAAoBwW,EAAMtiB,KAAP,cAAlC,KAEF0+G,QAhIO,SAgIA,GACL,OAAOjgH,OAAO,eAAoB6jB,EAAMtiB,KAAP,SAAjC,KAEFm+C,SAnIO,SAmIC,GACN,OAAO,eAAoB77B,EAAMtiB,KAAP,UAAuBA,KAAK0+G,QAAtD,MAIJ/6G,OApMiD,WAuM/C,IAFA,IAAM2K,EAAN,GACMqwG,EAAc3+G,KAAKutB,MAAzB,OACSxjB,EAAT,EAAoBA,EAApB,EAAyCA,IAAS,CAChD,IAAMuY,EAAOtiB,KAAKutB,MAAlB,GAEIvtB,KAAKo9G,cACPp9G,KAAKu+G,QADP,KAIA,MAAIj8F,EAAchU,EAAA,KAActO,KAAKs+G,QAAQ,CAAEh8F,OAAMvY,WAC5CuY,EAAJ,OAAiBhU,EAAA,KAActO,KAAK45E,UAApC,IACIt3D,EAAJ,QAAkBhU,EAAA,KAActO,KAAKi+G,WAArC,IACA3vG,EAAA,KAActO,KAAKs+G,QAAQ,CAAEh8F,OAAMvY,YAS1C,OANAuE,EAAA,QAAmBA,EAAA,KAActO,KAAKoM,OAAO,YAAcpM,KAA3D,kBAEAA,KAAA,wBAA+BsO,EAAA,QAAiBtO,KAAKoM,OAArD,iBAEApM,KAAA,uBAA8BsO,EAAA,KAActO,KAAKoM,OAAjD,gBAEOpM,KAAK2T,eAAe,EAApB,KAA2B,CAChC7G,YADgC,gBAEhCC,MAAO/M,KAFyB,aAGhCgN,MAAO,CACLiB,KADK,UAELqF,UAAW,GAEblQ,MAAO,CAAEiI,MAAOrL,KAAKqL,QAPvB,M,wBCxPW,gBAAW,CACxBjJ,KADwB,aAExBgB,MAAO,CACLw7G,gBAAiB,CACft7G,KADe,SAEfC,QAAS,WCLA,gBAAW,CACxBnB,KADwB,aAGxBgB,MAAO,CACLo6G,WAAY,CACVl6G,KADU,OAEVC,QAAS,0B,YCqBFs7G,EAAmB,CAC9BC,cAD8B,EAE9BC,qBAF8B,EAG9BC,aAH8B,EAI9BC,aAJ8B,EAK9B5kG,UAAW,KAIPjK,EAAa,OAAAwN,EAAA,MAAO,EAAD,OAAzB,GAmBe,OAAAxN,EAAA,gBAAoC,CACjDhO,KADiD,WAGjDiO,WAAY,CACVC,aAAA,QAGFlN,MAAO,CACLg2E,WAAY,CACV91E,KADU,OAEVC,QAAS,aAEX0Q,OAAQ,CACN3Q,KADM,KAENC,SAAS,GAEX27G,WATK,QAULC,MAVK,QAWL10B,UAXK,QAYL20B,eAZK,QAaLC,cAbK,QAcL9rB,MAdK,QAeL6pB,aAfK,QAgBL7vF,MAAO,CACLjqB,KADK,MAELC,QAAS,iBAAM,KAEjB+7G,UAAW,CACTh8G,KADS,OAETC,QAAS,WAEX85G,aAAc,CACZ/5G,KAAM,CAAC7E,OAAQ4D,MADH,UAEZkB,QAAS,YAEX+5G,SAAU,CACRh6G,KAAM,CAAC7E,OAAQ4D,MADP,UAERkB,QAAS,QAEXg6G,UAAW,CACTj6G,KAAM,CAAC7E,OAAQ4D,MADN,UAETkB,QAAS,SAEXg8G,UAAW,CACTj8G,KAAM,CAAC7E,OAAQ4D,MADN,QAETkB,QAAS,kBAAMs7G,IAEjBpyE,SAxCK,QAyCL+yE,YAzCK,QA0CLC,aA1CK,QA2CLC,WAAY5zG,SAGdhI,KArDiD,WAsD/C,MAAO,CACL67G,YAAa3/G,KAAKk/G,WAAal/G,KAAlB,MADR,GAEL4/G,cAFK,EAGLC,cAHK,EAILC,SAJK,GAQL7yC,eAA0BnuE,IAAfkB,KAAK6G,MACZ7G,KADO,MAEPA,KAAKysC,SAAW,QAVf,EAWLoS,eAXK,EAYL4+B,cAZK,GAaLsiC,qBAbK,GAcLC,uBAAwB,IAI5Br0G,SAAU,CAERs0G,SAFQ,WAGN,OAAOjgH,KAAKkgH,iBAAiBlgH,KAAK2/G,YAAY1+G,OAAOjB,KAArD,SAEFoR,QALQ,WAMN,wCACK,qCADE,OAAP,IAEE,YAFK,EAGL,kBAAmBpR,KAHd,SAIL,yBAA0BA,KAJrB,WAKL,2BAA4BA,KALvB,aAML,qBAAsBA,KAAKysC,YAI/B0zE,cAhBQ,WAiBN,OAAOngH,KAAP,UAEFogH,aAnBQ,WAoBN,qBAAepgH,KAAf,OAEF4rF,qBAtBQ,WAuBN,OAAO5rF,KAAKysC,SACRzsC,KAAKy9E,cADF,QAEFz9E,KAAK0+G,QAAQ1+G,KAAKy9E,cAAlB,KAAD,eAFJ,QAIFptE,WA3BQ,WA4BN,OAAOrQ,KAAK+sE,UAAY,CAAC,CACvB3qE,KADuB,gBAEvByE,MAAO,CACLiN,QAAS9T,KADJ,KAELgS,iBAAkBhS,KAAKgS,yBAJ3B,GAQFquG,cApCQ,WAqCN,cAEFC,SAvCQ,WAwCN,OAAOtgH,KAAKm/G,OAASn/G,KAArB,YAEFugH,QA1CQ,WA2CN,OAAOz0G,QAAQ9L,KAAKsgH,UAAYtgH,KAAKuR,aAArC,YAEFw6E,QA7CQ,WA8CN,OAAO/rF,KAAKy9E,cAAc5+E,OAA1B,GAEF2hH,SAhDQ,WAiDN,IAAM5kG,EAAU5b,KAAKkc,QAAWlc,KAAKkc,OAAOrY,QAAZ,SAAhC,SACMmJ,EAAQ4O,EAAU,kBACtB,GAAW,GADb,GAIA,MAAO,CACL5O,MAAO,oCAAF,IAEH8b,GAAI9oB,KAAKogH,eAEXh9G,MAAO,CACL4qD,OAAQhuD,KADH,SAELie,MAAOje,KAFF,UAGLqL,MAAOrL,KAHF,MAILo9G,aAAcp9G,KAJT,aAKLutB,MAAOvtB,KALF,iBAMLq9G,aAAcr9G,KANT,aAOLs9G,SAAUt9G,KAPL,SAQLu9G,UAAWv9G,KARN,UASLw9G,WAAYx9G,KAAKwf,SAASm2D,KAAK5e,EAAE/2D,KAT5B,YAULy9E,cAAez9E,KAAKy9E,eAEtB15E,GAAI,CACF8yG,OAAQ72G,KAAKygH,YAEfvmF,YAAa,CACX5X,KAAMtiB,KAAKuR,aAAa+Q,QAI9Bo+F,WA/EQ,WAoFN,OAJI1gH,KAAKoM,OAAO,YAAcpM,KAAKoM,OAA/B,iBAAyDpM,KAAKoM,OAAlE,iBACE,OAAA6kB,EAAA,mEAGKjxB,KAAK2T,eAAegtG,EAAa3gH,KAAxC,WAEF4gH,iBAtFQ,WAuFN,OAAQ5gH,KAAK6gH,YAAL,KACJ7gH,KADI,cAEJA,KAAKmgH,cAAc//G,MAAM,EAAGJ,KAFhC,WAIF8gH,YAAa,kBA3FL,GA4FRD,YA5FQ,WA6FN,IAAIE,EAAkB,kBAAO/gH,KAAP,UAClBA,KAAKu/G,UAAUz2G,MADG,KAElB9I,KAFJ,UAWA,OAPIqC,MAAA,QAAJ,KACE0+G,EAAkBA,EAAA,QAAuB,cAEvC,OADAjG,EAAIvwG,EAAJ,WACA,IAFF,KAMF,iCAAO,GAAP,IAEEgpF,MAAOvzF,KAFF,MAGL6G,MAAO7G,KAAK8gH,aAAe9gH,KAHtB,aAILghH,YAAaD,EAAA,UAJR,GAKFA,KAKTvvG,MAAO,CACLw8D,cADK,SACQ,GACXhuE,KAAA,eACAA,KAAA,oBAEF6/G,aALK,SAKO,GAAK,WACfr+G,OAAA,YAAkB,kBAAM,qBAAxB,OAEF+rB,MAAO,CACLkZ,WADK,EAEL3yB,QAFK,SAEE,GAAK,WACN9T,KAAJ,YAIEA,KAAA,WAAe,WACb,cAAmB,mBAAsB,qBAAzC,OAIJA,KAAA,sBAKNiM,QAAS,CAEPwgF,KAFO,SAEH,GACF,yCACAzsF,KAAA,gBACAA,KAAA,aACAA,KAAA,kBAGFihH,aATO,WAWFjhH,KAAD,gBACAA,KAFF,eAKAA,KAAA,kBAEF0sF,kBAjBO,WAiBU,WACf1sF,KAAA,SAAcA,KAAKysC,SAAW,QAA9B,GACAzsC,KAAA,iBACAA,KAAA,WAAe,kBAAM,eAAoB,cAAzC,WAEIA,KAAJ,cAAsBA,KAAK6/G,cAAe,IAE5C7tG,iBAxBO,SAwBS,GACd,OAAKhS,KAAL,eAGGA,KAAD,gBAIEA,KAAD,eACAA,KAAKkhH,aAAa9uG,SAAS3H,EAL5B,UAQAzK,KARA,MASCA,KAAKsS,IAAIF,SAAS3H,EATnB,SAUAA,EAAA,SAAazK,KAXf,KAcFkgH,iBAzCO,SAyCS,GAEd,IADA,IAAMiB,EAAe,IAArB,IACSp3G,EAAT,EAAoBA,EAAQkT,EAA5B,WAAiD,CAC/C,IAAMqF,EAAOrF,EAAb,GACMlS,EAAM/K,KAAKm+C,SAF8B,IAK9CgjE,EAAA,IAAD,IAA0BA,EAAA,MAA1B,GAEF,OAAO9+G,MAAA,KAAW8+G,EAAlB,WAEFC,kBApDO,SAoDU,GAAc,WACvB7D,EAAYv9G,KAAKm+C,SAAvB,GAEA,OAAQn+C,KAAKguE,eAAN,eAAsC,SAAArtE,GAAD,OAAe,kBAAqB,WAArB,GAA3D,OAEFugH,WAzDO,WA0DL,OAAOlhH,KAAKkS,MAAMmvG,MAAQrhH,KAAKkS,MAAMmvG,KAAKnvG,MAA1C,SAEFovG,iBA5DO,SA4DS,KAA6B,WACrCrzC,GACHjuE,KAAD,eACAA,KAAKw+G,YAFP,GAKA,OAAOx+G,KAAK2T,eAAe,EAAO,CAChC7G,YADgC,iBAEhCE,MAAO,CAAEsG,UAAW,GACpBlQ,MAAO,CACL0R,MAAO9U,KAAKo/G,iBADP,EAEL9zG,SAFK,EAGLuuE,WAAY9vE,IAAU/J,KAHjB,cAILyM,MAAOzM,KAAK0/G,YAEd37G,GAAI,CACFiI,MAAQ,SAAAvB,GACN,IAEAA,EAAA,kBAEA,oBAEF,cAAe,kBAAM,mBAEvB3D,IAAK6a,KAAA,UAAe3hB,KAAKm+C,SAApB,KACJn+C,KAAK0+G,QApBR,KAsBF6C,kBAxFO,SAwFU,OACf,IAAMtjG,EAAQlU,IAAU/J,KAAV,eAAgCA,KAA9C,cACMiuE,GACHjuE,KAAD,eACAA,KAAKw+G,YAFP,GAKA,OAAOx+G,KAAK2T,eAAe,MAAO3T,KAAK0V,aAAauI,EAAO,CACzDnR,YADyD,iDAEzDC,MAAO,CACL,gCAAiCkhE,GAEnCnnE,IAAK6a,KAAA,UAAe3hB,KAAKm+C,SAApB,MALA,UAMAn+C,KAAK0+G,QAAQp8F,IANb,OAMqBgS,EAAO,GANnC,QAQF64D,eAvGO,WAwGL,IAAMq0B,EAAaxhH,KAAnB,gBACMqkD,EAAQrkD,KAFF,WAcZ,OARIqC,MAAA,QAAJ,GACEm/G,EAAA,KAD6B,IAI7BA,EAAA,SAAsBA,EAAA,UAAtB,GACAA,EAAA,kBAGK,CACLxhH,KADK,cAELA,KAAK2T,eAAe,MAAO,CACzB7G,YADyB,iBAEzBuD,WAAYrQ,KAAKqQ,YAChB,CACDrQ,KADC,WAEDA,KAAK8qF,OAAS9qF,KAAKiuF,SAAnB,UAFC,OAIDjuF,KAAKorF,OAASprF,KAAKiuF,SAAnB,UAJC,KAKDjuF,KALC,eAMDA,KANC,cAODA,KAZG,mBAcLA,KAdK,UAeLA,KAfF,gBAkBF05E,QAvIO,SAuIA,OAKL,IAAMxuE,EAAOygF,EAAA,2CAAb,GAaA,MAXA,WAAIroF,IAEF4H,EAAA,iBAAyB,OAAA/G,EAAA,MAAU+G,EAAA,YAAD,KAA0B,CAC1D8B,MAAO,CACLsG,SAAUpI,EAAA,wCADL,KAEL,cAFK,OAGL,kBAAcpM,MAKpB,GAEF6uF,SA3JO,WA4JL,IAAMtpC,EAAQ,qCAAd,MAgBA,cAdOA,EAAA,WAAP,KAEAA,EAAA,KAAa,OAAAlgD,EAAA,MAAUkgD,EAAD,KAAc,CAClCjtB,SAAU,CAAEvwB,MAAO,MACnBmG,MAAO,CACLs/D,UADK,EAELhpE,KAFK,OAGL,gBAAiB7E,OAAOuB,KAHnB,YAIL,wBAAyB,eAAqBA,KAAKkS,MAAN,KAJxC,iBAKLuvG,aAAc,eAAqBp9D,EAAD,kCAEpCtgD,GAAI,CAAE29G,SAAU1hH,KAAK2hH,cAGvB,GAEFC,eA9KO,WA+KL,OAAO5hH,KAAK2T,eAAe,QAAS,CAClCyjB,SAAU,CAAEvwB,MAAO7G,KAAKitE,WACxBjgE,MAAO,CACL1J,KADK,SAELlB,KAAMpC,KAAKiN,OAAO7K,SAIxB2qF,aAvLO,WAwLL,IAAMppF,EAAS,yCAAf,MAUA,OARAA,EAAA,4CACKA,EAAA,KADgB,OAArB,IAEEsK,KAFmB,SAGnB,gBAHmB,UAInB,gBAAiBxP,OAAOuB,KAJL,cAKnB,YAAaA,KAAKogH,eAGpB,GAEFyB,QApMO,WAsML,OAAI7hH,KAAKoM,OAAO,YAAcpM,KAAKoM,OAA/B,iBAAyDpM,KAAKoM,OAAlE,eACSpM,KAAP,kBAEOA,KAAP,YAGJ8hH,gBA5MO,WA4MQ,WACP9sF,EAAQ,CAAC,eAAgB,UAAW,eAA5B,QACJ,SAAA+sF,GAAQ,OAAI,SADR,WAEP,SAAAA,GAAQ,OAAI,4BAAgC,CAC/CliG,KAAMkiG,GACL,SALQ,OASb,OAAO/hH,KAAK2T,eAAegtG,EAAa,OAAjC,OAAiC,CAAjC,GACF3gH,KAAKwgH,UADV,IAIFwB,QAzNO,WAyNA,WACC5+G,EAAQpD,KAAd,YAgBA,OAfAoD,EAAA,UAAkBpD,KAAKkS,MAFlB,cAQH,KAAAlS,KAAA,aACAA,KAAA,QAHF,WAIEA,KAAA,OAEAoD,EAAA,OAAepD,KAAf,IAEAoD,EAAA,OAAepD,KAAf,OAGKA,KAAK2T,eAAesuG,EAApB,KAA2B,CAChCj1G,MAAO,CAAEiB,UAAMnP,GACfsE,QACAW,GAAI,CACFsgD,MAAQ,SAAAt5C,GACN,iBACA,eAEFolG,OAAQnwG,KAAKowE,UAEf38D,IAAK,QACJ,CAACzT,KAXJ,aAaFkiH,cAvPO,WAwPL,IAGA,EAHIrjH,EAASmB,KAAKy9E,cAAlB,OACMnvE,EAAW,IAAIjM,MAArB,GAIE8/G,EADEniH,KAAKuR,aAAT,UACiBvR,KAAf,iBACSA,KAAJ,SACUA,KAAf,iBAEeA,KAAf,kBAGF,MAAOnB,IACLyP,EAAA,GAAmB6zG,EACjBniH,KAAKy9E,cADwB,KAG7B5+E,IAAWyP,EAAA,OAHb,GAOF,OAAOtO,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,wBADf,IAIFs1G,iBAhRO,SAgRS,KAA6B,WAC3C,OAAOpiH,KAAKuR,aAAa+6F,UAAW,CAClCt/F,MAAO,CACLD,MAAO,kBAETqP,OAJkC,KAKlCkG,OACAvY,QACA8sG,OAAS,SAAApsG,GACPA,EAAA,kBACA,mBAEF4hC,SAAUtiC,IAAU/J,KAXc,cAYlCsL,UAAWtL,KAAKmuE,iBAGpBk0C,aAhSO,WAiSL,OAAOriH,KAAKkS,MAAMmvG,KAAQrhH,KAAKkS,MAAMmvG,KAA9B,WAAP,GAEF7C,YAnSO,SAmSI,GACT,OAAO,eAAoBl8F,EAAMtiB,KAAP,cAA1B,IAEF0+G,QAtSO,SAsSA,GACL,OAAO,eAAoBp8F,EAAMtiB,KAAP,SAA1B,IAEFm+C,SAzSO,SAySC,GACN,OAAO,eAAoB77B,EAAMtiB,KAAP,UAAuBA,KAAK0+G,QAAtD,KAEFxwB,OA5SO,SA4SD,GACJzjF,GAAKzK,KAAKygC,MAAM,OAAhBh2B,IAEF63G,YA/SO,SA+SI,GACLtiH,KAAJ,SAAmBA,KAAKygH,WAAxB,GACKzgH,KAAKuiH,SAFa,MAKvB,IAAIviH,KAAKy9E,cAAc5+E,OACrBmB,KAAA,gBAEAA,KAAA,gBAEFA,KAAA,kBAEFggB,QA3TO,SA2TA,GACAhgB,KAAL,gBAEKA,KAAKwiH,cAAc/3G,EAAxB,UACEzK,KAAA,iBAGGA,KAAL,YACEA,KAAA,aACAA,KAAA,gBAGFA,KAAA,mBAEFyiH,UAzUO,SAyUE,GACPh4G,EAAA,iBACIzK,KAAJ,eACEyK,EAAA,kBACAzK,KAAA,kBAGJ2hH,WAhVO,SAgVG,GAAkB,WAC1B,IACE3hH,KAAKysC,UACJzsC,KADD,gBAEAA,KAHF,eAMA,IAAM0iH,EAPoB,IAQpBx/E,EAAM5d,YAAZ,MACI4d,EAAMljC,KAAN,uBAAJ,IACEA,KAAA,yBAEFA,KAAA,sBAA6ByK,EAAA,IAA7B,cACAzK,KAAA,yBAEA,IAAM+J,EAAQ/J,KAAKigH,SAAS5wB,WAAU,SAAA/sE,GACpC,IAAMjW,GAAQ,cAAD,IAAb,WAEA,OAAOA,EAAA,yBAA8B,EAArC,yBAEIiW,EAAOtiB,KAAKigH,SAAlB,IACA,IAAIl2G,IACF/J,KAAA,SAAgBsI,KAAA,IAAStI,KAAT,SAAwB+J,EAAxC,GACA/J,KAAA,SAAcA,KAAKy/G,aAAen9F,EAAOtiB,KAAKm+C,SAA9C,IACAn+C,KAAA,WAAe,kBAAM,aAArB,cACA2U,YAAW,kBAAM,eAAjB,SAGJi5E,UA5WO,SA4WE,GAAkB,WACzB,IAAI5tF,KAAKouE,YAAc3jE,EAAA,UAAc,OAArC,KAEA,IAAMk4G,EAAUl4G,EAAhB,QACM42G,EAAOrhH,KAAKkS,MAJO,KAczB,GAPI,CACF,OADE,MAEF,OAFE,gBAAJ,IAGqBlS,KAAKihH,eAE1BjhH,KAAA,mBAEA,EAeA,OAXIA,KAAK6/G,cAAgB8C,IAAY,OAArC,KACE3iH,KAAA,WAAe,WACbqhH,EAAA,mBACA,4BAAgCA,EAAhC,eASDrhH,KAAD,cACA,CAAC,OAAD,GAAc,OAAd,eAFF,GAGSA,KAAK4iH,SAhCW,GAmCrBD,IAAY,OAAhB,IAAqC3iH,KAAKyiH,UAnCjB,GAsCrBE,IAAY,OAAhB,IAAqC3iH,KAAK6iH,UAtCjB,GAyCrBF,IAAY,OAAhB,MAAuC3iH,KAAK8iH,YAAZ,QAAhC,IAEFC,mBAvZO,SAuZW,GAIhB,KACG/iH,KAAKysC,WAAN,GACAzsC,KAAKqiH,gBAFP,IAKA,IAAMhB,EAAOrhH,KAAKkS,MAAlB,KAEA,GAAKmvG,GAASrhH,KAAd,QAGA,IAAK,IAAIW,EAAT,EAAgBA,EAAI0gH,EAAA,MAApB,OAAuC1gH,IACrC,YAAI0gH,EAAA,uCAAwD,CAC1DrhH,KAAA,gBACA,SAINsuF,UA5aO,SA4aE,GAAe,WAEpBtuF,KAAKgjH,cAAL,IACAv4G,EAAA,OACAzK,KAHF,gBAQMA,KAAKwiH,cAAc/3G,EAAvB,QACEzK,KAAA,WAAe,kBAAO,gBAAqB,EADX,gBAIvBA,KAAJ,aACLA,KAAA,kBAIJ,+CAEFowE,SAhcO,WAgcC,WACN,GAAKpwE,KAAL,aAEO,CACL,GAAIA,KAAK8/G,SAAW9/G,KAAKmgH,cAAzB,OAA+C,OAE/C,IAAM8C,EACJjjH,KAAKkhH,aAAankB,cACjB/8F,KAAKkhH,aAAa1kB,UACnBx8F,KAAKkhH,aAHe,cAAtB,IAMA,IACElhH,KAAA,mBAXF+E,uBAAsB,kBAAO,yBAA7B,MAeJ+9G,YAjdO,SAidI,GACTr4G,EAAA,kBAEFo4G,UApdO,SAodE,GACP,IAAMxB,EAAOrhH,KAAKkS,MAAlB,KAEA,MAEA,IAAMgxG,EAAa7B,EALM,YAUtBrhH,KAAD,aAEAA,KAHF,cAKEyK,EAAA,iBACAA,EAAA,kBAEAy4G,EAAA,SAKAljH,KAAA,UAGJ4iH,SA7eO,SA6eC,GACN,IAAMvB,EAAOrhH,KAAKkS,MAAlB,KAEA,MAOA,GALAzH,EALwB,iBAUpBzK,KAAJ,SAAmB,OAAOA,KAAP,eAEnB,IAAM2iH,EAAUl4G,EAZQ,QAgBxB42G,EAAA,YAEA7/G,OAAA,uBAA6B,WAC3B6/G,EAAA,WACA,YAAAsB,EAA0BtB,EAA1B,WAA4CA,EAA5C,WACAA,EAAA,YAAmBA,EAAA,WAAnB,aAGJZ,WArgBO,SAqgBG,GAAc,WACtB,GAAKzgH,KAAL,SAGO,CACL,IAAMguE,GAAiBhuE,KAAKguE,eAAN,IAAtB,QACMrtE,EAAIX,KAAKohH,kBAAf,GAkBA,IAhBA,IAAAzgH,EAAWqtE,EAAA,OAAArtE,EAAX,GAAwCqtE,EAAA,KAAxC,GACAhuE,KAAA,SAAcguE,EAAA,KAAmB,SAAArtE,GAC/B,OAAO,iBAAwB,WAA/B,OAMFX,KAAA,WAAe,WACb,cACG,aADH,uBAOGA,KAAL,SAAoB,OAEpB,IAAMmjH,EAAYnjH,KAAlB,eAMA,GAJAA,KAAA,cAxBK,GA4BDA,KAAJ,aAAuB,OAEvBA,KAAA,WAAe,kBAAM,eAArB,WAhCAA,KAAA,SAAcA,KAAKy/G,aAAen9F,EAAOtiB,KAAKm+C,SAA9C,IACAn+C,KAAA,iBAkCJojH,aA1iBO,SA0iBK,GACVpjH,KAAA,aAAqBA,KAAKkS,MAAMmvG,KAAX,UAArB,IAEFgC,iBA7iBO,WA6iBS,aACR5lC,EAAN,GACM13E,EAAU/F,KAAD,UAAmBqC,MAAA,QAAcrC,KAAjC,eAEXA,KAFJ,cACI,CAACA,KADU,eAFD,iBAMd,GANc,yBAMd,EANc,QAON+J,EAAQ,sBAAwB,SAAA8W,GAAC,OAAI,kBACzC,WADyC,GAEzC,WAFF,OAKI9W,GAAJ,GACE0zE,EAAA,KAAmB,WAAnB,KAPJ,2BAA4B,IANd,8BAiBdz9E,KAAA,iBAEFuiH,SAhkBO,SAgkBC,GACN,IAAM39E,EAAW5kC,KAAjB,cACAA,KAAA,gBACA6G,IAAA,GAAsB7G,KAAKygC,MAAM,SAAjC55B,IAEF27G,cArkBO,SAqkBM,GAGX,IAAMc,EAActjH,KAAKkS,MAAzB,gBAEA,OAAOoxG,IAAgBA,IAAA,GAA0BA,EAAA,SAAjD,S,kQC5zBS,sBAAM,OASnB,QATa,OAWN,CACPlhH,KADO,WAGPiO,WAAY,CACVC,aAAA,QAGFsN,OAAQ,CAPD,QASPxa,MAAO,CACLkI,SADK,QAELi4G,aAFK,QAGLrqG,IAAK,CACH5V,KAAM,CAACmI,OADJ,QAEHlI,QAAS,KAEX8E,IAAK,CACH/E,KAAM,CAACmI,OADJ,QAEHlI,QAAS,GAEXyV,KAAM,CACJ1V,KAAM,CAACmI,OADH,QAEJlI,QAAS,GAEXigH,WAfK,OAgBLC,WAAY,CACVngH,KAAM,CAACwI,QADG,QAEVvI,aAFU,EAGVmvE,UAAW,SAAA7xD,GAAC,MAAiB,mBAANA,GAAyB,WAANA,IAE5C6iG,UAAW,CACTpgH,KAAM,CAACmI,OADE,QAETlI,QAAS,IAEXogH,WAAY,CACVrgH,KADU,MAEVC,QAAS,iBAAO,KAElBqgH,MAAO,CACLtgH,KAAM,CAACwI,QADF,QAELvI,SAFK,EAGLmvE,UAAW,SAAA7xD,GAAC,MAAiB,mBAANA,GAAyB,WAANA,IAE5CgjG,SAAU,CACRvgH,KAAM,CAACmI,OADC,QAERlI,QAAS,GAEXugH,WAtCK,OAuCLC,eAvCK,OAwCLl9G,MAAO,CAAC4E,OAxCH,QAyCLs6F,SAAUj6F,SAGZhI,KAAM,iBAAO,CACX6qE,IADW,KAEX/pC,SAFW,KAGXo/E,WAHW,EAIXj3C,WAJW,EAKX77D,UALW,EAMX+yG,SAAS,IAGXt4G,SAAU,CACRyF,QADQ,WAEN,wCACK,qCADE,OAAP,IAEE,mBAFK,EAGL,4BAA6BpR,KAHxB,SAIL,iCAAkCA,KAAKujH,gBAG3Cv1C,cAAe,CACb5nE,IADa,WAEX,OAAOpG,KAAP,WAEFyoB,IAJa,SAIV,GACD1d,EAAM+W,MAAA,GAAa9hB,KAAb,SADQ,EAKd,IAAM6G,EAAQ7G,KAAKkkH,WAAW57G,KAAA,IAASA,KAAA,MAActI,KAAvB,UAAuCA,KAArE,WAEI6G,IAAU7G,KAAd,YAEAA,KAAA,YAEAA,KAAA,oBAGJmkH,gBA3BQ,WA4BN,OAAOnkH,KAAKgkH,YAAc,EAAI,OAA9B,IAEFI,SA9BQ,WA+BN,OAAOjlG,WAAWnf,KAAlB,MAEFqkH,SAjCQ,WAkCN,OAAOllG,WAAWnf,KAAlB,MAEFskH,YApCQ,WAqCN,OAAOtkH,KAAKgZ,KAAO,EAAImG,WAAWnf,KAA3B,MAAP,GAEFukH,WAvCQ,WAwCN,IAAM19G,GAAS7G,KAAKkkH,WAAWlkH,KAAhB,eAAsCA,KAAvC,WAAyDA,KAAKqkH,SAAWrkH,KAAzE,UAAd,IAEA,UAEFwkH,gBA5CQ,WA4CO,MACPC,EAAWzkH,KAAK+lG,SAAW,SAAjC,OACM2e,EAAS1kH,KAAK+lG,SAAW,MAA/B,QACM4e,EAAW3kH,KAAK+lG,SAAW,SAAjC,QAEMpiF,EAAQ3jB,KAAKwf,SAASC,IAAM,OAAlC,IACM6xB,EAAMtxC,KAAKwf,SAASC,IAAM,IAAhC,OACM5Y,EAAQ7G,KAAKiuE,WAAa,QAAlB,OAA0BjuE,KAA1B,kCAA0DA,KAAxE,WAAc,KAEd,UACEyE,WAAYzE,KADP,iBAAP,iBAEE,EAFK,GAAP,iBAGE,EAHK,GAAP,iBAIE,EAAY6G,GAJd,GAOF+9G,YA5DQ,WA4DG,MACHH,EAAWzkH,KAAK+lG,SAAW/lG,KAAKwf,SAASC,IAAM,SAApC,MAAuDzf,KAAKwf,SAASC,IAAM,OAA5F,QACMilG,EAAS1kH,KAAK+lG,SAAW,SAA/B,QAEMpiF,EAAN,MACM2tB,EAAMtxC,KAAKiuE,WAAa,QAAlB,OAA0B,IAAMjuE,KAAhC,uCAAqE,IAAMA,KAAvF,WAAY,MAEZ,UACEyE,WAAYzE,KADP,iBAAP,iBAEE,EAFK,GAAP,iBAGE,EAAUsxC,GAHZ,GAMFuzE,UAzEQ,WA0EN,OAAO7kH,KAAK2jH,WAAW9kH,OAAS,KAC1BmB,KAAD,aAAoBA,KAApB,cAAwCA,KAD7C,QAGF8kH,SA7EQ,WA8EN,OAAOx8G,KAAA,MAAWtI,KAAKqkH,SAAWrkH,KAAjB,UAAkCA,KAAnD,cAEF+kH,eAhFQ,WAiFN,OAAQ/kH,KAAD,eACLA,KAAKyjH,aACLzjH,KAAKuR,aAFP,iBAKFyzG,mBAtFQ,WAuFN,IAAIhlH,KAAJ,WACA,OAAIA,KAAJ,WAA4BA,KAAP,WACjBA,KAAJ,OAAwBA,KAAP,gBACVA,KAAKsuE,iBAAZ,qBAEF22C,uBA5FQ,WA6FN,IAAIjlH,KAAJ,WACA,OAAIA,KAAJ,eAAgCA,KAAP,eAClBA,KAAKsuE,iBAAmBtuE,KAA/B,eAEFklH,mBAjGQ,WAkGN,OAAIllH,KAAJ,WAA4BA,KAAP,WACdA,KAAKsuE,iBAAmBtuE,KAA/B,gBAIJwR,MAAO,CACLnJ,IADK,SACF,GACD,IAAM88G,EAAShmG,WAAf,GACAgmG,EAASnlH,KAAT,eAA+BA,KAAKygC,MAAM,QAA1C0kF,IAEFjsG,IALK,SAKF,GACD,IAAMisG,EAAShmG,WAAf,GACAgmG,EAASnlH,KAAT,eAA+BA,KAAKygC,MAAM,QAA1C0kF,IAEFt+G,MAAO,CACLiN,QADK,SACE,GACL9T,KAAA,mBAQN4R,YAxLO,WAyLL5R,KAAA,cAAqBA,KAArB,OAGF8pC,QA5LO,WA8LL9pC,KAAA,IAAWyS,SAAA,6BACT,eAAY,6EADdzS,OAIFiM,QAAS,CACPkhF,eADO,WAEL,IAAM7+E,EAAuC,CAACtO,KAA9C,YACMolH,EAASplH,KAAf,YAOA,OANAA,KAAA,aACIsO,EAAA,QADJ,GAEIA,EAAA,KAFJ,GAIAA,EAAA,KAActO,KAAd,eAEA,GAEFqlH,UAZO,WAaL,OAAOrlH,KAAK2T,eAAe,MAAO,CAChC5G,MAAO,gBACL,YADK,EAEL,wBAAyB/M,KAFpB,SAGL,qBAAsBA,KAHjB,SAIL,oBAAqBA,KAJhB,UAKL,mBAAoBA,KALf,SAML,qBAAsBA,KANjB,WAOL,qBAAsBA,KAPjB,YAQFA,KAAKmN,cAEVkD,WAAY,CAAC,CACXjO,KADW,gBAEXyE,MAAO7G,KAAKkuF,SAEdnqF,GAAI,CACFiI,MAAOhM,KAAKslH,gBAEbtlH,KAlBH,gBAoBFulH,YAjCO,WAkCL,MAAO,CACLvlH,KADK,WAELA,KAFK,oBAGLA,KAHK,WAILA,KAAKwlH,kBACHxlH,KADF,cAEEA,KAFF,WAGEA,KAHF,SAIEA,KAJF,UAKEA,KALF,iBAMEA,KANF,QAOEA,KAXJ,UAeF2tF,SAjDO,WAkDL,OAAO3tF,KAAK2T,eAAe,QAAS,CAClC3G,MAAO,gBACLnG,MAAO7G,KADF,cAEL8oB,GAAI9oB,KAFC,WAGLsL,SAAUtL,KAHL,WAILssE,UAJK,EAKLh5D,UALK,GAMFtT,KAAK0R,WAKd+zG,kBA9DO,WA+DL,IAAMn3G,EAAW,CACftO,KAAK2T,eAAe,MAAO3T,KAAK0e,mBAAmB1e,KAAxB,mBAAiD,CAC1E8M,YAD0E,6BAE1Ea,MAAO3N,KAAK4kH,eAEd5kH,KAAK2T,eAAe,MAAO3T,KAAK0e,mBAAmB1e,KAAxB,uBAAqD,CAC9E8M,YAD8E,uBAE9Ea,MAAO3N,KAAKwkH,oBAIhB,OAAOxkH,KAAK2T,eAAe,MAAO,CAChC7G,YADgC,4BAEhC2G,IAAK,SAFP,IAKFiyG,SA/EO,WA+EC,WACN,IAAK1lH,KAAD,OAAeA,KAAnB,UAAmC,OAAO,KAE1C,IAAM6jH,EAAW1kG,WAAWnf,KAA5B,UACM2lH,EAAQ,eAAY3lH,KAAK8kH,SAA/B,GACM1c,EAAYpoG,KAAK+lG,SAAW,SAAY/lG,KAAKwf,SAASC,IAAM,QAAlE,OACMmmG,EAAkB5lH,KAAK+lG,SAAY/lG,KAAKwf,SAASC,IAAM,OAArC,QAAxB,MAEIzf,KAAJ,UAAmB2lH,EAAA,UAEnB,IAAM/B,EAAQ+B,EAAA,KAAU,SAAA57G,GAAQ,MACxBuE,EAAN,GAEI,aAAJ,IACEA,EAAA,KAAc,uBAA2B,CACvCxB,YAAa,wBACZ,aAFH,KAKF,IAAMe,EAAQ9D,GAAS,IAAM,EAA7B,UACM6gF,EAAS,eAAqB,IAAM,EAAP,WAApB,EAAsD/8E,EAAQ,EAA7E,WAEA,OAAO,wBAA4B,CACjC/G,IADiC,EAEjCgG,YAFiC,iBAGjCC,MAAO,CACL,yBAA0B69E,GAE5Bj9E,OAAK,GACHE,MAAO,GAAF,OADA,EACA,MACLD,OAAQ,GAAF,OAFD,EAEC,OAFH,iBAGH,EAHG,eAGkBC,EAHlB,eAG8Bg2G,EAH5B,EAAF,yBAIH,EAJG,qBAI8BA,EAAW,EAJzC,YANP,MAeF,OAAO7jH,KAAK2T,eAAe,MAAO,CAChC7G,YADgC,4BAEhCC,MAAO,CACL,yCAAyD,WAAf/M,KAAK4jH,OAAsB5jH,KAAK2jH,WAAW9kH,OAAS,IAHlG,IAOF2mH,kBA3HO,SA2HU,eAQF,IAAb/xG,EAAa,uDARE,QAUTnF,EAAW,CAACtO,KAAlB,YAEM6lH,EAAoB7lH,KAAK8lH,qBAA/B,GAGA,OAFA9lH,KAAA,gBAAuBsO,EAAA,KAActO,KAAK+lH,cAA1C,IAEO/lH,KAAK2T,eAAe,MAAO3T,KAAK0V,aAAa1V,KAAlB,mBAA2C,CAC3EyT,MACA3M,IAF2E,EAG3EgG,YAH2E,4BAI3EC,MAAO,CACL,oCADK,EAEL,qCAFK,EAGL,wCAAyC/M,KAAK+kH,gBAEhDp3G,MAAO3N,KAAKgmH,wBAT+D,GAU3Eh5G,MAAO,gBACLiB,KADK,SAELqF,SAAUtT,KAAKiuE,YAAL,EAAuBjuE,KAAK0R,OAAO4B,SAAWtT,KAAK0R,OAA5B,SAF5B,EAGL,aAAc1R,KAHT,MAIL,gBAAiBA,KAJZ,IAKL,gBAAiBA,KALZ,IAML,gBAAiBA,KANZ,cAOL,gBAAiBvB,OAAOuB,KAPnB,YAQL,mBAAoBA,KAAK+lG,SAAW,WAR/B,cASF/lG,KAAK0R,QAEV3N,GAAI,CACFyoF,MADE,EAEFC,KAFE,EAGFl5E,QAASvT,KAHP,UAIFimH,MAAOjmH,KAJL,QAKFkmH,WALE,EAMFpI,UAAWqI,KA3Bf,IA+BFL,qBAzKO,SAyKa,GAClB,OAAO9lH,KAAKuR,aAAa,eACrBvR,KAAKuR,aAAa,eAAgB,CAAE1K,UACpC,CAAC7G,KAAK2T,eAAe,OAAQ,CAAClV,OAFlC,OAIFsnH,cA9KO,SA8KM,GACX,IAAMzgH,EAAO,eAActF,KAA3B,WAEMwhD,EAAYxhD,KAAK+lG,SAAL,qCACiBt6F,OAAOzL,KAAP,WAAD,EADlC,EAAkB,0GAIlB,OAAOA,KAAK2T,eAAe,EAApB,KAAsC,CAC3CvQ,MAAO,CAAEF,OAAQ,kBAChB,CACDlD,KAAK2T,eAAe,MAAO,CACzB7G,YADyB,kCAEzBuD,WAAY,CAAC,CACXjO,KADW,OAEXyE,MAAO7G,KAAK+sE,WAAa/sE,KAAlB,UAAuD,WAApBA,KAAKyjH,cAEhD,CACDzjH,KAAK2T,eAAe,MAAO3T,KAAK0e,mBAAmB1e,KAAxB,mBAAiD,CAC1E8M,YAD0E,wBAE1Ea,MAAO,CACLC,OADK,EAELC,MAFK,EAGL2zC,eAEA,CAACxhD,KAAK2T,eAAe,MAjB7B,UAqBFyyG,SA1MO,WA2ML,OAAOpmH,KAAK2T,eAAe,MAAO3T,KAAK0e,mBAAmB1e,KAAxB,mBAAiD,CACjF8M,YAAa,sBAGjBk5G,wBA/MO,SA+MgB,GACrB,IAAM5d,EAAYpoG,KAAK+lG,SAAW,MAAlC,OACIl/F,EAAQ7G,KAAKwf,SAASC,IAAM,IAApB,EAAZ,EAGA,OAFA5Y,EAAQ7G,KAAK+lG,SAAW,IAAhB,EAARl/F,EAEA,gBACEpC,WAAYzE,KADP,iBAEL,EAFF,UAEkB6G,EAFlB,OAKFw/G,iBAzNO,SAyNS,GACd57G,EAAA,iBAEAzK,KAAA,SAAgBA,KAAhB,cACAA,KAAA,aACAA,KAAA,YAEA,IAAMsmH,GAAiB,QAAmB,CAAE3zF,SAAF,EAAiB/B,SAAS,GAC9D21F,IAAmB,QAAmB,CAAE5zF,SAAS,GACnD,YAAJ,GACE3yB,KAAA,iCAAuCA,KAAvC,eACA,eAAqBA,KAAD,eAAuBA,KAAvB,gBAApB,KAEAA,KAAA,iCAAuCA,KAAvC,eACA,eAAqBA,KAAD,cAAsBA,KAAtB,gBAApB,IAGFA,KAAA,cAAoBA,KAApB,gBAEFwmH,gBA5OO,SA4OQ,GACb/7G,EAAA,kBACAzK,KAAA,aACA,IAAMumH,IAAmB,QAAmB,CAAE5zF,SAAS,GACvD3yB,KAAA,oCAA0CA,KAA1C,eACAA,KAAA,oCAA0CA,KAA1C,eAEAA,KAAA,mBACAA,KAAA,YAAkBA,KAAlB,eACK,eAAUA,KAAD,SAAgBA,KAA9B,iBACEA,KAAA,eAAqBA,KAArB,eACAA,KAAA,YAGFA,KAAA,aAEFymH,YA5PO,SA4PI,GAAe,MACNzmH,KAAK0mH,eAAvB,GAAQ7/G,EADgB,EAChBA,MACR7G,KAAA,iBAEF4tF,UAhQO,SAgQE,GACP,GAAK5tF,KAAL,eAEA,IAAM6G,EAAQ7G,KAAK2mH,aAAal8G,EAAGzK,KAAnC,eAGE,MAAA6G,GACAA,EAAQ7G,KADR,UAEA6G,EAAQ7G,KAHV,WAMAA,KAAA,gBACAA,KAAA,qBAEF4mH,QA9QO,WA+QL5mH,KAAA,cAEFslH,cAjRO,SAiRM,GACX,GAAItlH,KAAJ,QACEA,KAAA,eADF,CAIA,IAAM6mH,EAAQ7mH,KAAKkS,MAAnB,MACA20G,EAAA,QAEA7mH,KAAA,eACAA,KAAA,eAAqBA,KAArB,iBAEFkuF,OA5RO,SA4RD,GACJluF,KAAA,aAEAA,KAAA,iBAEFmuF,QAjSO,SAiSA,GACLnuF,KAAA,aAEAA,KAAA,kBAEF0mH,eAtSO,SAsSO,GACZ,IAAM/iG,EAAQ3jB,KAAK+lG,SAAW,MAA9B,OACMlnG,EAASmB,KAAK+lG,SAAW,SAA/B,QACM/5F,EAAQhM,KAAK+lG,SAAW,UAA9B,UAH2B,EAQvB/lG,KAAKkS,MAAM40G,MAHf,wBAAM,EALqB,EAMzB,GACUC,EAPe,EAOzB,GAEIC,EAAc,YAAav8G,EAAKA,EAAA,WAAlB,GAAgDA,EATzC,GAYvBw8G,EAAW3+G,KAAA,IAASA,KAAA,KAAU0+G,EAAD,GAAT,EAAT,OAAf,EAEIhnH,KAAJ,WAAmBinH,EAAW,EAAXA,GACfjnH,KAAKwf,SAAT,MAAuBynG,EAAW,EAAXA,GAEvB,IAAMC,EAAgBF,GAAA,GAA6BA,GAAeG,EAAlE,EACMtgH,EAAQsY,WAAWnf,KAAX,KAAuBinH,GAAYjnH,KAAKqkH,SAAWrkH,KAAjE,UAEA,MAAO,CAAE6G,QAAOqgH,kBAElBP,aA5TO,SA4TK,KACV,GAAK3mH,KAAL,eAD2C,IAGrC,EAAN,OAAM,SAAN,OAAM,WAAN,OAAM,MAAN,OAAM,OAAN,OAAM,OAAN,OAAM,QAAN,OAAM,KAAkDsnF,EAAxD,OAAwDA,GAExD,GAAK,CAACI,EAAQC,EAAUr2C,EAAKk2C,EAAMj8E,EAAMC,EAAO+7E,EAAMD,GAAI3sE,SAASlQ,EAAnE,UAEAA,EAAA,iBACA,IAAMuO,EAAOhZ,KAAKskH,aAAlB,EACM8C,GAASpnH,KAAKqkH,SAAWrkH,KAAjB,UAAd,EACA,GAAI,CAACuL,EAAMC,EAAO+7E,EAAMD,GAAI3sE,SAASlQ,EAArC,SAAiD,CAC/CzK,KAAA,cAEA,IAAMqnH,EAAWrnH,KAAKwf,SAASC,IAAM,CAAClU,EAArB,GAAiC,CAACC,EAAnD,GACM48F,EAAYif,EAAA,SAAkB58G,EAAlB,YAAlB,EACM68G,EAAa78G,EAAA,WAAkBA,EAAA,UAArC,EAEA5D,GAAiBuhG,EAAA,EAAjB,OACK,GAAI39F,EAAA,UAAJ,EACL5D,EAAQ7G,KAAR,cACK,GAAIyK,EAAA,UAAJ,EACL5D,EAAQ7G,KAAR,aACK,CACL,IAAM,EAAYyK,EAAA,eAAlB,EACA5D,GAAiB,KAAoBugH,EAAA,IAAcA,EAAd,GAArC,IAGF,YAEFlD,WAzVO,SAyVG,GACR,IAAKlkH,KAAL,YAAuB,OADA,EAIvB,IAAMunH,EAAcvnH,KAAKgZ,KAAK1X,WAA9B,OACMkmH,EAAWD,EAAA,gBACZA,EAAA,OAAqBA,EAAA,QAArB,KADY,EAAjB,EAGMziH,EAAS9E,KAAKokH,SAAWpkH,KAA/B,YAEMynH,EAAWn/G,KAAA,OAAYzB,EAAD,GAAmB7G,KAA9B,aAAkDA,KAAlD,YAAjB,EAEA,OAAOmf,WAAW7W,KAAA,MAAmBtI,KAAnB,kBAAlB,S,wHC9jBS,SAAA4d,EAAA,qBAAyB,CACtCxb,KADsC,UAGtCe,YAHsC,EAKtCC,MAAO,CACLmd,SADK,QAELtC,MAAO,CACL3a,KADK,OAELC,QAAS,WAEX+H,SANK,QAOLgiF,QAPK,QAQLC,IARK,OASLhiF,KAAM,CACJjI,KAAM,CAACmI,OADH,QAEJlI,QAAS,GAEXiI,MAAO,CACLlI,KAAM,CAACmI,OADF,QAELlI,QAAS,QAEXsD,MAAOiF,SAGTnI,OAzBsC,SAyBhC,KAAQ,IACN,EAAN,EAAM,WAAN,EAAM,UAAuBP,EAA7B,EAA6BA,MACvBU,EAAO,CACXgJ,YADW,UAEXC,MAAO,gBACL,kBAAmB3J,EADd,MAEL,uBAAwBA,EAFnB,UAGF,eAAuBigB,IAE5BrW,MAAO,CACLugF,IAAKnqF,EADA,IAEL,eAAgBA,EAAMmqF,KAExBxpF,GAXW,EAYX4J,MAAO,CACLpC,KAAM,eAAcnI,EADf,MAELoI,MAAO,eAAcpI,EAFhB,OAGLy8D,SAAUz8D,EAAA,oBAA8B,YAE1CqQ,IAAK,SAGP,OAAOvP,EAAE,QAAS,oCAAuCd,EAAA,SAAiBA,EAAxD,MAAV,GAAR,MC3DJ,U,qBCHA,IAAI6C,EAAQ,EAAQ,QAEpB1H,EAAOC,SAAWyH,GAAM,WACtB,OAAOxE,OAAOkrB,aAAalrB,OAAOimH,kBAAkB,S,4CCHtD,IAAIvnH,EAAW,EAAQ,QAMvB5B,EAAOC,QAAU,SAAU6lD,EAAOsjE,GAChC,IAAKxnH,EAASkkD,GAAQ,OAAOA,EAC7B,IAAI1lD,EAAIoM,EACR,GAAI48G,GAAoD,mBAAxBhpH,EAAK0lD,EAAM/iD,YAA4BnB,EAAS4K,EAAMpM,EAAGI,KAAKslD,IAAS,OAAOt5C,EAC9G,GAAmC,mBAAvBpM,EAAK0lD,EAAM0Z,WAA2B59D,EAAS4K,EAAMpM,EAAGI,KAAKslD,IAAS,OAAOt5C,EACzF,IAAK48G,GAAoD,mBAAxBhpH,EAAK0lD,EAAM/iD,YAA4BnB,EAAS4K,EAAMpM,EAAGI,KAAKslD,IAAS,OAAOt5C,EAC/G,MAAMoE,UAAU,6C,8MCGH,SAAAyO,EAAA,MAAO,EAAD,KAAN,eAAoC,CACjDxb,KADiD,aAGjDgB,MAAO,CACLyD,MAAO,CACLvD,KADK,MAELC,QAAS,iBAAO,MAIpB0I,QAAS,CACPs5G,YADO,WAEL,OAAOvlH,KAAK2T,eAAe,mBAAoB,CAC7C7G,YAD6C,sBAE7CE,MAAO,CACL5K,KADK,qBAELwB,IAAK,QAEN5D,KAAK6G,MAAMob,IAAIjiB,KANlB,cAQF4nH,WAVO,SAUG,KACR,OAAO5nH,KAAK2T,eAAe,MAAO,CAChC7G,YADgC,sBAEhChG,OACC,eAAQ9G,KAAM,UAAW,CAAE21D,UAAS7uD,SAAU,CAHjD,MAOJnD,OA5BiD,SA4B3C,GACJ,OAAOO,EAAE,MAAOlE,KAAK0V,aAAa1V,KAAlB,MAA8B,CAC5C8M,YAD4C,aAE5CC,MAAO/M,KAAKmN,eACV,CAACnN,KAHL,mBCzCJ,I,oCCsBMoQ,EAAa,OAAAwN,EAAA,MAAO,EAAD,KAAzB,QAWe,EAAAxN,EAAA,gBAAoC,CACjDhO,KADiD,UAGjD4xC,cAHiD,EAKjD5wC,MAAO,CACLg2E,WADK,OAELt7D,gBAAiB,CACfxa,KADe,OAEfC,QAAS,IAEX8H,MANK,QAOLuC,OAAQ,CAACnC,OAPJ,QAQLo8G,YAAa,CAAC/7G,QART,QASLg8G,KATK,OAULh/F,GAVK,OAWLgsD,MAXK,OAYL30D,QAZK,QAaL4nG,eAbK,QAcLzuC,YAdK,OAeLzyE,MAAO,MAGT/C,KAvBiD,WAwB/C,MAAO,CACLmpE,UAAWjtE,KADN,MAELgjH,cAAc,IAIlBr3G,SAAU,CACRyF,QADQ,WAEN,uBACE,qBAAsBpR,KADjB,SAEL,yBAA0BA,KAFrB,YAGL,2BAA4BA,KAHvB,cAIL,oBAAqBA,KAJhB,QAKL,uBAAwBA,KALnB,WAML,sBAAuBA,KANlB,UAQL,uBAAwC,IAAjBA,KAAKmgB,SARvB,MAQ4CngB,KAAKmgB,QACtD,uBAAwBngB,KATnB,WAUL,iBAAkBA,KAVb,OAWFA,KAAKmN,eAGZ66G,WAhBQ,WAiBN,OAAOhoH,KAAK8oB,IAAM,SAAX,OAAoB9oB,KAA3B,OAEF8rF,WAnBQ,WAoBN,OAAO9rF,KAAKioH,kBAAkBppH,OAA9B,GAEFqpH,QAtBQ,WAuBN,OAAQloH,KAAD,eACHA,KADG,OAEJA,KAAK+nH,gBAAkB/nH,KAF1B,YAIFusF,SA3BQ,WA4BN,SAAUvsF,KAAKoM,OAAO0oE,QAAS90E,KAA/B,QAMFguE,cAAe,CACb5nE,IADa,WAEX,OAAOpG,KAAP,WAEFyoB,IAJa,SAIV,GACDzoB,KAAA,YACAA,KAAA,MAAWA,KAAX,kBAGJ+rF,QA3CQ,WA4CN,QAAS/rF,KAAT,WAEFisF,cA9CQ,WA+CN,OAAOjsF,KAAP,SAEFioH,kBAjDQ,WAiDS,WACf,OAAIjoH,KAAJ,QAAyB,CAACA,KAAR,MAEbA,KAAL,YAEOA,KAAKquE,YAAYpsD,KAAK,SAAAkmG,GAC3B,qBAAWA,EAAyB,OAAOA,EAE3C,IAAMC,EAAmBD,EAAW,EAApC,eAEA,MAAmC,kBAArBC,EAAgCA,EAA9C,MALK,QAMG,SAAAzyD,GAAO,MANjB,KAMqBA,KARS,IAUhC0yD,YA9DQ,WA+DN,OAA4B,IAArBroH,KAAK6nH,aAA+C,SAArB7nH,KAAK6nH,aAA0B7nH,KAArE,aAIJwR,MAAO,CACL3K,MADK,SACA,GACH7G,KAAA,cAIJ+c,aAvGiD,WA0G/C/c,KAAA,aAAqBA,KAAK0c,SAAS0f,OAASp8B,KAAK0c,SAAS0f,MAAtC,OAApB,SAGFnwB,QAAS,CACPkH,WADO,WAEL,MAAO,CACLnT,KADK,iBAELA,KAFK,aAGLA,KAHF,kBAMFktF,WARO,WASL,OAAOltF,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,oBACZ,CACD9M,KADC,eAEDA,KAJF,iBAOFmtF,eAhBO,WAiBL,MAAO,CACLntF,KADK,WAELA,KAAKoM,OAFP,UAKFstE,QAtBO,SAsBA,KAGoB,WAAzB4uC,EAAyB,uDAHpB,GAKCp9G,EAAQlL,KAAA,UAAd,EAAc,SACRsgG,EAAY,SAAH,OAAY,eAA3B,IACMioB,KAAiBvoH,KAAK+L,WAAWu0F,KAAvC,GAEMx8F,EAAO,OAAAK,EAAA,MAAU,CACrB6I,MAAO,CACL,aAAcu7G,EAAc,gCAAH,aADpB,EAELtqG,MAAOje,KAFF,gBAGLuQ,KAAMvQ,KAHD,KAILsL,SAAUtL,KAJL,WAKLyQ,MAAOzQ,KAAKyQ,OAEd1M,GAAKwkH,EAED,CACAv8G,MAAQ,SAAAvB,GACNA,EAAA,iBACAA,EAAA,kBAEA,aACAmK,GAAMA,EAAN,IAIF4zG,QAAU,SAAA/9G,GACRA,EAAA,iBACAA,EAAA,yBAdF,GARN,GA2BA,OAAOzK,KAAK2T,eAAe,MAAO,CAChC7G,YADgC,gBAEhCC,MAAOzJ,EAAO,kBAAH,OAAqB,eAArB,SAAyCxE,GACnD,CACDkB,KAAK2T,eAAe,EAApB,OAJF,MAWFo5E,aArEO,WAsEL,OAAO/sF,KAAK2T,eAAe,MAAO3T,KAAK0e,mBAAmB1e,KAAxB,gBAA8C,CAC9E8M,YAD8E,gBAE9Ea,MAAO,CAAEC,OAAQ,eAAc5N,KAAD,SAC9B+D,GAAI,CACFiI,MAAOhM,KADL,QAEF89G,UAAW99G,KAFT,YAGFwoH,QAASxoH,KAAKsuF,WAEhB76E,IAAK,eACH,CAACzT,KATL,oBAWFqtF,SAjFO,WAkFL,OAAKrtF,KAAL,SAEOA,KAAK2T,eAAe65E,EAApB,KAA4B,CACjCpqF,MAAO,CACL6a,MAAOje,KADF,gBAELuQ,KAAMvQ,KAFD,KAGLsL,SAAUtL,KAHL,WAILstF,QAASttF,KAJJ,SAKLutF,IAAKvtF,KALA,WAMLyQ,MAAOzQ,KAAKyQ,QAEbzQ,KAAKoM,OAAO0oE,OAAS90E,KATxB,OAF2B,MAa7B6tF,YA/FO,WA+FI,WACT,OAAK7tF,KAAL,YAEOA,KAAK2T,eAAe,EAAW,CACpCvQ,MAAO,CACL6a,MAAOje,KAAKkoH,QAAU,GAAKloH,KADtB,gBAELuQ,KAAMvQ,KAFD,KAGLyQ,MAAOzQ,KAHF,MAIL6G,MAAO7G,KAAKioH,mBAEdj7G,MAAO,CACLiB,KAAMjO,KAAK0tE,YAAc,QAAU,MAErCxzC,YAAa,CACX32B,QAAS,SAAAH,GAAK,OAAI,eAAQ,EAAD,iBAbC,MAiBhCwpF,QAjHO,SAiHA,OAKL,IAAK/sE,EAAL,OAAkB,OAAO,KAEzB,IAAMpM,EAAM,GAAH,OAAMnQ,EAAN,YAAT,GAEA,OAAOtD,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,YAAF,OADqB,GAEhC2G,OAFF,IAKFg1G,eA/HO,WAgIL,IAAM5oG,EAAN,GAQA,OANI7f,KAAKoM,OAAT,QACEyT,EAAA,KAAU7f,KAAKoM,OAAf,SACSpM,KAAJ,aACL6f,EAAA,KAAU7f,KAAK05E,QAAf,YAGK15E,KAAK4sF,QAAQ,UAAW,QAA/B,IAEFD,cA1IO,WA2IL,IAAM9sE,EADK,GAaX,OANI7f,KAAKoM,OAAT,OACEyT,EAAA,KAAU7f,KAAKoM,OAAf,QACSpM,KAAJ,YACL6f,EAAA,KAAU7f,KAAK05E,QAAf,WAGK15E,KAAK4sF,QAAQ,SAAU,QAA9B,IAEF5sE,QAzJO,SAyJA,GACLhgB,KAAA,kBAEFquF,YA5JO,SA4JI,GACTruF,KAAA,gBACAA,KAAA,sBAEFsuF,UAhKO,SAgKE,GACPtuF,KAAA,gBACAA,KAAA,qBAIJ2D,OAnRiD,SAmR3C,GACJ,OAAOO,EAAE,MAAOlE,KAAK0V,aAAa1V,KAAlB,gBAAwC,CACtD8M,YADsD,UAEtDC,MAAO/M,KAAKoR,UACVpR,KAHJ,iBCrTJ,U,mBCHAzB,EAAOC,SAAU,G,mBCAjB,IAAI8C,EAAW,GAAGA,SAElB/C,EAAOC,QAAU,SAAUoD,GACzB,OAAON,EAASvC,KAAK6C,GAAIxB,MAAM,GAAI,K,qBCHrC,IAAIgP,EAAS,EAAQ,QACjBiK,EAAY,EAAQ,QAEpBwjD,EAAS,qBACTxP,EAAQj+C,EAAOytD,IAAWxjD,EAAUwjD,EAAQ,IAEhDt+D,EAAOC,QAAU6uD,G,kCCLjB,IAAIhuD,EAAI,EAAQ,QACZqpH,EAAa,EAAQ,QAAgCr5B,UACrD9rB,EAAmB,EAAQ,QAC3B90D,EAA0B,EAAQ,QAElCk6G,EAAa,YACbljC,GAAc,EAEd92E,EAAiBF,EAAwBk6G,GAGzCA,IAAc,IAAItmH,MAAM,GAAGsmH,IAAY,WAAcljC,GAAc,KAIvEpmF,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,OAAQ42E,IAAgB92E,GAAkB,CAC1E0gF,UAAW,SAAmBtgF,GAC5B,OAAO25G,EAAW1oH,KAAM+O,EAAY3P,UAAUP,OAAS,EAAIO,UAAU,QAAKN,MAK9EykE,EAAiBolD,I,kCCtBjB,IAAItpH,EAAI,EAAQ,QACZ6V,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QAIrC9V,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMiP,OAAQsG,EAAuB,UAAY,CAC5EyzG,MAAO,WACL,OAAO1zG,EAAWlV,KAAM,KAAM,GAAI,Q,mBCTtC,IAAIojE,EAGJA,EAAI,WACH,OAAOpjE,KADJ,GAIJ,IAECojE,EAAIA,GAAK,IAAIxiE,SAAS,cAAb,GACR,MAAO6J,GAEc,kBAAXjJ,SAAqB4hE,EAAI5hE,QAOrCjD,EAAOC,QAAU4kE,G,qBCnBjB,IAAIn9D,EAAQ,EAAQ,QAChBk0E,EAAc,EAAQ,QAEtB0uC,EAAM,MAIVtqH,EAAOC,QAAU,SAAUmZ,GACzB,OAAO1R,GAAM,WACX,QAASk0E,EAAYxiE,MAAkBkxG,EAAIlxG,MAAkBkxG,GAAO1uC,EAAYxiE,GAAavV,OAASuV,O,kCCR1G,IAAItY,EAAI,EAAQ,QACZ6V,EAAa,EAAQ,QACrBC,EAAyB,EAAQ,QAIrC9V,EAAE,CAAEM,OAAQ,SAAUC,OAAO,EAAMiP,OAAQsG,EAAuB,UAAY,CAC5E1I,MAAO,WACL,OAAOyI,EAAWlV,KAAM,QAAS,GAAI,Q,kCCRzC,IAAIX,EAAI,EAAQ,QACZypH,EAAW,EAAQ,QAA+Bh5G,QAClDtB,EAAsB,EAAQ,QAC9BC,EAA0B,EAAQ,QAElCs6G,EAAgB,GAAGj5G,QAEnBk5G,IAAkBD,GAAiB,EAAI,CAAC,GAAGj5G,QAAQ,GAAI,GAAK,EAC5DpB,EAAgBF,EAAoB,WACpCG,EAAiBF,EAAwB,UAAW,CAAE2lF,WAAW,EAAMxlF,EAAG,IAI9EvP,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,OAAQm6G,IAAkBt6G,IAAkBC,GAAkB,CAC9FmB,QAAS,SAAiBm5G,GACxB,OAAOD,EAEHD,EAAc5pH,MAAMa,KAAMZ,YAAc,EACxC0pH,EAAS9oH,KAAMipH,EAAe7pH,UAAUP,OAAS,EAAIO,UAAU,QAAKN,O,qBCnB5E,IAAI6D,EAAM,EAAQ,QACdxB,EAAkB,EAAQ,QAC1B2O,EAAU,EAAQ,QAA+BA,QACjDsK,EAAa,EAAQ,QAEzB7b,EAAOC,QAAU,SAAU0X,EAAQytD,GACjC,IAGI78D,EAHA/G,EAAIoB,EAAgB+U,GACpBvV,EAAI,EACJ+F,EAAS,GAEb,IAAKI,KAAO/G,GAAI4C,EAAIyX,EAAYtT,IAAQnE,EAAI5C,EAAG+G,IAAQJ,EAAO0B,KAAKtB,GAEnE,MAAO68D,EAAM9kE,OAAS8B,EAAOgC,EAAI5C,EAAG+G,EAAM68D,EAAMhjE,SAC7CmP,EAAQpJ,EAAQI,IAAQJ,EAAO0B,KAAKtB,IAEvC,OAAOJ,I,kCCdT,IAAIrH,EAAI,EAAQ,QACZw+D,EAAY,EAAQ,QAA+BljD,SACnD4oD,EAAmB,EAAQ,QAC3B90D,EAA0B,EAAQ,QAElCE,EAAiBF,EAAwB,UAAW,CAAE2lF,WAAW,EAAMxlF,EAAG,IAI9EvP,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,QAASF,GAAkB,CAC3DgM,SAAU,SAAkB1W,GAC1B,OAAO45D,EAAU79D,KAAMiE,EAAI7E,UAAUP,OAAS,EAAIO,UAAU,QAAKN,MAKrEykE,EAAiB,a,qBCjBjB,IAAIlkE,EAAI,EAAQ,QACZspF,EAAO,EAAQ,QACfplB,EAAmB,EAAQ,QAI/BlkE,EAAE,CAAEM,OAAQ,QAASC,OAAO,GAAQ,CAClC+oF,KAAMA,IAIRplB,EAAiB,S,qBCXjB,IAAIn0D,EAAS,EAAQ,QACjBjP,EAAW,EAAQ,QAEnBsS,EAAWrD,EAAOqD,SAElBy2G,EAAS/oH,EAASsS,IAAatS,EAASsS,EAASvM,eAErD3H,EAAOC,QAAU,SAAUoD,GACzB,OAAOsnH,EAASz2G,EAASvM,cAActE,GAAM,K,qBCR/C,IAAIvC,EAAI,EAAQ,QACZkjD,EAAS,EAAQ,QAIrBljD,EAAE,CAAEM,OAAQ,SAAUqG,MAAM,EAAM6I,OAAQpN,OAAO8gD,SAAWA,GAAU,CACpEA,OAAQA,K,qBCNV,IAAIz6C,EAAW,EAAQ,QACnB3H,EAAW,EAAQ,QACnBgpH,EAAuB,EAAQ,QAEnC5qH,EAAOC,QAAU,SAAU+B,EAAG+D,GAE5B,GADAwD,EAASvH,GACLJ,EAASmE,IAAMA,EAAEnC,cAAgB5B,EAAG,OAAO+D,EAC/C,IAAI8kH,EAAoBD,EAAqB9nH,EAAEd,GAC3CkxB,EAAU23F,EAAkB33F,QAEhC,OADAA,EAAQntB,GACD8kH,EAAkBpP,U,qBCV3B,IAAI5qG,EAAS,EAAQ,QACjBE,EAA8B,EAAQ,QAE1C/Q,EAAOC,QAAU,SAAUsI,EAAKD,GAC9B,IACEyI,EAA4BF,EAAQtI,EAAKD,GACzC,MAAOhF,GACPuN,EAAOtI,GAAOD,EACd,OAAOA,I,0CCRXtI,EAAOC,QAAU,I,mBCAjBD,EAAOC,QAAU,SAAU0Q,GACzB,IACE,QAASA,IACT,MAAOrN,GACP,OAAO,K,qBCJX,IAAIwV,EAAO,EAAQ,QACfjI,EAAS,EAAQ,QAEjB1Q,EAAY,SAAU2qH,GACxB,MAA0B,mBAAZA,EAAyBA,OAAWvqH,GAGpDP,EAAOC,QAAU,SAAUouC,EAAWrhB,GACpC,OAAOnsB,UAAUP,OAAS,EAAIH,EAAU2Y,EAAKu1B,KAAeluC,EAAU0Q,EAAOw9B,IACzEv1B,EAAKu1B,IAAcv1B,EAAKu1B,GAAWrhB,IAAWnc,EAAOw9B,IAAcx9B,EAAOw9B,GAAWrhB,K,kCCT3F,gBAUe,qBAAW,CACxBnpB,KADwB,eAGxB0B,KAAM,iBAAO,CACXk2E,UAAU,IAGZlwC,QAPwB,WAOjB,WAILtoC,OAAA,uBAA6B,WAC3B,yCACA,qB,yDCtBN,IAAI+zF,EAA6B,GAAGplF,qBAChCrN,EAA2BrB,OAAOqB,yBAGlCwmH,EAAcxmH,IAA6ByyF,EAA2Bx2F,KAAK,CAAE6P,EAAG,GAAK,GAIzFpQ,EAAQ6C,EAAIioH,EAAc,SAA8B3yB,GACtD,IAAI/8E,EAAa9W,EAAyB9C,KAAM22F,GAChD,QAAS/8E,GAAcA,EAAW2M,YAChCgvE,G,qBCZJ,IAAIN,EAAwB,EAAQ,QAIpCA,EAAsB,a,qBCJtB,IAAIntF,EAAW,EAAQ,QACnByhH,EAAqB,EAAQ,QAMjChrH,EAAOC,QAAUiD,OAAO+gF,iBAAmB,aAAe,GAAK,WAC7D,IAEIt1D,EAFAs8F,GAAiB,EACjBlrH,EAAO,GAEX,IACE4uB,EAASzrB,OAAOqB,yBAAyBrB,OAAOP,UAAW,aAAaunB,IACxEyE,EAAOnuB,KAAKT,EAAM,IAClBkrH,EAAiBlrH,aAAgB+D,MACjC,MAAOR,IACT,OAAO,SAAwB9B,EAAGH,GAKhC,OAJAkI,EAAS/H,GACTwpH,EAAmB3pH,GACf4pH,EAAgBt8F,EAAOnuB,KAAKgB,EAAGH,GAC9BG,EAAEysB,UAAY5sB,EACZG,GAdoD,QAgBzDjB,I,qBCvBN,IAAI06G,EAAwB,EAAQ,QAChCpgG,EAAW,EAAQ,QACnB9X,EAAW,EAAQ,QAIlBk4G,GACHpgG,EAAS3X,OAAOP,UAAW,WAAYI,EAAU,CAAE6Z,QAAQ,K,qBCP7D,IAAIhV,EAAiB,EAAQ,QAAuC9E,EAChEsB,EAAM,EAAQ,QACdvE,EAAkB,EAAQ,QAE1BC,EAAgBD,EAAgB,eAEpCG,EAAOC,QAAU,SAAUoD,EAAIs2D,EAAKn+C,GAC9BnY,IAAOe,EAAIf,EAAKmY,EAASnY,EAAKA,EAAGV,UAAW7C,IAC9C8H,EAAevE,EAAIvD,EAAe,CAAEid,cAAc,EAAMzU,MAAOqxD,M,qBCRnE,IAAIx5D,EAAY,EAAQ,QACpBa,EAAW,EAAQ,QACnB++E,EAAgB,EAAQ,QACxB9+E,EAAW,EAAQ,QAGnBw2E,EAAe,SAAUyzC,GAC3B,OAAO,SAAU7qH,EAAMmQ,EAAYunE,EAAiBozC,GAClDhrH,EAAUqQ,GACV,IAAIhP,EAAIR,EAASX,GACb4/D,EAAO8f,EAAcv+E,GACrBlB,EAASW,EAASO,EAAElB,QACpBkL,EAAQ0/G,EAAW5qH,EAAS,EAAI,EAChC8B,EAAI8oH,GAAY,EAAI,EACxB,GAAInzC,EAAkB,EAAG,MAAO,EAAM,CACpC,GAAIvsE,KAASy0D,EAAM,CACjBkrD,EAAOlrD,EAAKz0D,GACZA,GAASpJ,EACT,MAGF,GADAoJ,GAASpJ,EACL8oH,EAAW1/G,EAAQ,EAAIlL,GAAUkL,EACnC,MAAMoF,UAAU,+CAGpB,KAAMs6G,EAAW1/G,GAAS,EAAIlL,EAASkL,EAAOA,GAASpJ,EAAOoJ,KAASy0D,IACrEkrD,EAAO36G,EAAW26G,EAAMlrD,EAAKz0D,GAAQA,EAAOhK,IAE9C,OAAO2pH,IAIXnrH,EAAOC,QAAU,CAGf+M,KAAMyqE,GAAa,GAGnBxqE,MAAOwqE,GAAa,K,kCCpCtB,EAAQ,QACR,IAAI58D,EAAW,EAAQ,QACnBnT,EAAQ,EAAQ,QAChB7H,EAAkB,EAAQ,QAC1B8J,EAAa,EAAQ,QACrBoH,EAA8B,EAAQ,QAEtCoI,EAAUtZ,EAAgB,WAE1B86D,GAAiCjzD,GAAM,WAIzC,IAAIkzD,EAAK,IAMT,OALAA,EAAGjqD,KAAO,WACR,IAAIxI,EAAS,GAEb,OADAA,EAAO0yD,OAAS,CAAEp6D,EAAG,KACd0H,GAEyB,MAA3B,GAAGiQ,QAAQwiD,EAAI,WAKpBge,EAAmB,WACrB,MAAkC,OAA3B,IAAIxgE,QAAQ,IAAK,MADH,GAInBuoD,EAAU9gE,EAAgB,WAE1B84E,EAA+C,WACjD,QAAI,IAAIhY,IAC6B,KAA5B,IAAIA,GAAS,IAAK,MAFsB,GAS/C7F,GAAqCpzD,GAAM,WAC7C,IAAIkzD,EAAK,OACLG,EAAeH,EAAGjqD,KACtBiqD,EAAGjqD,KAAO,WAAc,OAAOoqD,EAAan6D,MAAMa,KAAMZ,YACxD,IAAIsH,EAAS,KAAKoC,MAAMqwD,GACxB,OAAyB,IAAlBzyD,EAAO7H,QAA8B,MAAd6H,EAAO,IAA4B,MAAdA,EAAO,MAG5DnI,EAAOC,QAAU,SAAU+6D,EAAK16D,EAAQqQ,EAAM+K,GAC5C,IAAIu/C,EAASp7D,EAAgBm7D,GAEzBE,GAAuBxzD,GAAM,WAE/B,IAAIlG,EAAI,GAER,OADAA,EAAEy5D,GAAU,WAAc,OAAO,GACZ,GAAd,GAAGD,GAAKx5D,MAGb25D,EAAoBD,IAAwBxzD,GAAM,WAEpD,IAAI0zD,GAAa,EACbR,EAAK,IAkBT,MAhBY,UAARI,IAIFJ,EAAK,GAGLA,EAAGh3D,YAAc,GACjBg3D,EAAGh3D,YAAYuV,GAAW,WAAc,OAAOyhD,GAC/CA,EAAG5vD,MAAQ,GACX4vD,EAAGK,GAAU,IAAIA,IAGnBL,EAAGjqD,KAAO,WAAiC,OAAnByqD,GAAa,EAAa,MAElDR,EAAGK,GAAQ,KACHG,KAGV,IACGF,IACAC,GACQ,YAARH,KACCL,IACAie,GACCD,IAEM,UAAR3d,IAAoBF,EACrB,CACA,IAAIO,EAAqB,IAAIJ,GACzBvtD,EAAUiD,EAAKsqD,EAAQ,GAAGD,IAAM,SAAUM,EAAc5vD,EAAQxC,EAAKqyD,EAAMC,GAC7E,OAAI9vD,EAAOiF,OAAShH,EACduxD,IAAwBM,EAInB,CAAE5vD,MAAM,EAAMtD,MAAO+yD,EAAmB76D,KAAKkL,EAAQxC,EAAKqyD,IAE5D,CAAE3vD,MAAM,EAAMtD,MAAOgzD,EAAa96D,KAAK0I,EAAKwC,EAAQ6vD,IAEtD,CAAE3vD,MAAM,KACd,CACDgtE,iBAAkBA,EAClBD,6CAA8CA,IAE5CyyC,EAAe19G,EAAQ,GACvB29G,EAAc39G,EAAQ,GAE1BmN,EAAS3a,OAAOyC,UAAWq4D,EAAKowD,GAChCvwG,EAAS3Q,OAAOvH,UAAWs4D,EAAkB,GAAV36D,EAG/B,SAAUoK,EAAQqqC,GAAO,OAAOs2E,EAAY7qH,KAAKkK,EAAQjJ,KAAMszC,IAG/D,SAAUrqC,GAAU,OAAO2gH,EAAY7qH,KAAKkK,EAAQjJ,QAItDia,GAAM3K,EAA4B7G,OAAOvH,UAAUs4D,GAAS,QAAQ,K,kCC1H1E,IAAIn6D,EAAI,EAAQ,QACZwqH,EAAO,EAAQ,QAAgC5nG,IAC/Ci0D,EAA+B,EAAQ,QACvCznE,EAA0B,EAAQ,QAElC0nE,EAAsBD,EAA6B,OAEnDvnE,EAAiBF,EAAwB,OAK7CpP,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,QAASsnE,IAAwBxnE,GAAkB,CACnFsT,IAAK,SAAalT,GAChB,OAAO86G,EAAK7pH,KAAM+O,EAAY3P,UAAUP,OAAS,EAAIO,UAAU,QAAKN,O,gUCbxE,SAASgrH,EAAT,OACE,IAAI,cAAJ,QAUA,GARA,IACEh8F,EAAK,CACHlB,QADG,EAEH8D,QAFG,EAGHhU,SAAUoR,IAId,EAAQ,CAGN,GADAA,EAAA,gBAAqBA,EAAA,iBAArB,GACIA,EAAA,yBAAJ,GAA0C,OAC1CA,EAAA,wBAGF,MAAO,wBACLA,EAAKi8F,EAAH,GADJ,KAUI,kBACJ,IAAMC,EAAaF,EAAcn0D,EAAS7nC,EAA1C,GACA,MAAAk8F,GAAsB/4F,QAAA,KAAtB+4F,GAGI,kBACJ,IAAMA,EAAaF,EAAcn0D,EAAS7nC,EAA1C,GACA,MAAAk8F,GAAsB/4F,QAAA,MAAtB+4F,GAGI,oBACJC,EAAY,cAAD,OAAez+F,EAAf,mDAAX,GAEI,oBACJ0+F,EAAa,eAAD,OAAgB1+F,EAAhB,sLAAZ,GAEI,kBACJy+F,EAAY,cAAD,0DAAX,GAOF,IAAME,EAAN,kBACMC,EAAY,SAAA3iH,GAAD,OAAiBA,EAAA,WACX,SAAAvI,GAAC,OAAIA,EADM,iCAAlC,KAIA,SAASmrH,EAAT,KACE,GAAIv8F,EAAA,QAAJ,EACE,eAEF,IAAMtU,EAAwB,oBAAPsU,GAAP,MAA4BA,EAAA,IACxCA,EADY,QAEZA,EAAA,OACEA,EAAA,UAAeA,EAAA,YADjB,QAEEA,GAJN,GAKI1rB,EAAOoX,EAAA,MAAgBA,EAA3B,cACMktC,EAAOltC,EAAb,OACA,IAAKpX,GAAL,EAAmB,CACjB,IAAM+G,EAAQu9C,EAAA,MAAd,mBACAtkD,EAAO+G,GAASA,EAAhB,GAGF,OACG/G,EAAO,IAAH,OAAOgoH,EAAZ,GAAK,qBACJ1jE,IAAA,IAAQ4jE,EAAR,cAAA5jE,GAFH,IAMF,SAASqjE,EAAT,GACE,GAAIj8F,EAAA,QAAaA,EAAjB,QAA6B,CAC3B,IAAM6J,EAAN,GACI4yF,EAAJ,EACA,QAAW,CACT,GAAI5yF,EAAA,OAAJ,EAAqB,CACnB,IAAMrD,EAAYqD,EAAKA,EAAA,OAAvB,GACA,GAAIrD,EAAA,cAAqBxG,EAAzB,YAAyC,CACvCy8F,IACAz8F,EAAKA,EAAL,QACA,SACSy8F,EAAJ,IACL5yF,EAAKA,EAAA,OAAL,GAAwB,CAACrD,EAAzB,GACAi2F,EAAA,GAGJ5yF,EAAA,QACA7J,EAAKA,EAAL,QAEF,MAAO,mBAAqB6J,EAAA,KACrB,8BACH,IAAAh3B,EAAA,WAAoB,IAAI4G,OAAO,EAAX,EAAe5G,IADhC,OAGH0B,MAAA,qBACOgoH,EAAoBv8F,EAAD,IAD1B,gBACyCA,EADzC,wBAEIu8F,EANoB,YAA5B,MAUA,8BAAwBA,EAAxB,U,wNCrGElhF,EAAU,CACdqhF,UADc,gBAEdC,UAAW,SAGb,SAASC,EAAT,GACE,IADgC,EAC1BC,EAAN,GADgC,iBAGhBh9G,EAAA,MAAYw7B,EAA5B,YAHgC,IAGhC,2BAAgD,KAAhD,EAAgD,UAC7BwS,EAAA,MAAQxS,EAAzB,WAD8C,sBAC1C,EAD0C,KAC1C,EAD0C,KAE9CriC,EAAMA,EAAN,OACA,IAIA,kBAAWiE,IACTA,EAAMA,EAAN,QAEF4/G,EAAS,eAAT,QAb8B,8BAgBhC,SASY,aACZ,IAD+B,EACzBC,EAAN,GACIjqH,EAAYvB,UAAhB,OAIA,MAAOuB,IAGL,cAAac,OAAA,KAAYrC,UAAzB,mBACE,OADF,EAAwC,KACtC,GAEE,YACA,iBACMA,UAAA,GAAJ,KACEwrH,EAAA,GAAoBC,EAAaD,EAAD,GAAoBxrH,UAAA,GAApD,KAEF,MACF,YACMA,UAAA,GAAJ,KACEwrH,EAAA,GAAoBE,EAAYF,EAAD,GAAoBxrH,UAAA,GAAnD,KAEF,MAEF,kBACE,IAAKA,UAAA,GAAL,GACE,WAEF,IAAIwrH,EAAA,KACFA,EAAA,OAEEA,EAAJ,KAEEA,EAAA,SAEFA,EAAA,IAAqBxrH,UAAA,MAArB,OACA,MAMF,SACA,eACMA,UAAA,GAAJ,KACEwrH,EAAA,GAAoBG,EAAeH,EAAD,GAAoBxrH,UAAA,GAAtD,KAEF,MAEF,YACA,YACA,eACA,kBACA,kBACA,WACA,iBACE,IAAKA,UAAA,GAAL,GACE,MAEGwrH,EAAL,KACEA,EAAA,OAEFA,EAAA,oCAAyBxrH,UAAA,GAAL,IAA4BwrH,EAAYj7F,IAC5D,MAEF,QACOi7F,EAAL,KACEA,EAAA,GAAoBxrH,UAAA,GAApB,IAMV,SAGI,gBAIJ,SACA,GAEAO,EAAS,eAA8B,kBAAXA,EAAsB+qH,EAA7B,GAArB/qH,GAEQA,EAAA,OAA6C,kBAAXmK,EAAsB4gH,EAA7B,GAAnC,IAJoB/qH,EADAmK,EAQhB,gBACJ,SACA,GAEOnK,EAAS,yBAAH,GAFOmK,EADAnK,EAMhB,gBAIJ,MAAa,OAAOmK,EACpB,MAAa,OAAOnK,EAIpB,IAFA,MAEA,MAAc8B,OAAA,KAAd,kBAAmC,CAEd,MAAnB,GAFF,EAAmC,KAE7B9B,EAAJ,GAEEA,EAAA,GAAgB,eAAYA,EAA5B,KACE,EAAAA,EAAA,gCAAqC,eAAYmK,EAAjD,WAGFnK,EAAA,GAAgBmK,EAAhB,GAIJ,W,0KCpIIsG,EAAa,eAAO,EAAD,mBAIvB,eAJuB,iBAKvB,eALF,eAiBe,OAAAA,EAAA,gBAAoC,CACjDhO,KADiD,cAGjDiO,WAAY,CACV8F,OAAA,QAGF69B,cAPiD,EASjD1lB,OAAQ,CACN/Y,UAAW,CACThS,SAAS,GAEXsrF,SAAU,CACRtrF,SAAS,GAEXurF,SAAU,CACRvrF,SAAS,GAEXwrF,QAAS,CACPxrF,SAAS,IAIbH,MAAO,CACLgT,YAAa,CACX9S,KADW,OAEXC,QAFW,WAGT,OAAKvD,KAAL,cAEOA,KAAKwV,cAAZ,YAFgC,KAKpCnK,MATK,QAUL2/G,SAVK,QAWLx0G,KAXK,QAYLy0G,WAAY,CACV3nH,KAAMwI,SAERlI,IAAK,CACHN,KADG,OAEHC,QAAS,OAEX4rF,UAnBK,QAoBLC,QApBK,QAqBLvoF,MAAO,MAGT/C,KAAM,iBAAO,CACX+S,WAAY,wBAGdlL,SAAU,CACRyF,QADQ,WAEN,sCACE,eADK,GAEF,qCAFE,OAAP,IAGE,qBAAsBpR,KAHjB,MAIL,wBAAyBA,KAJpB,SAKL,oBAAqBA,KAAK+W,cAAgB/W,KALrC,SAML,0BAA2BA,KANtB,WAOL,0BAA2BA,KAPtB,UAQL,wBAAyBA,KARpB,SASFA,KAAKmN,eAGZ4J,YAdQ,WAeN,OAAOjL,QACL,gDACA9L,KAFF,iBAOJyR,QA1EiD,WA4E3CzR,KAAK0R,OAAOC,eAAhB,WACE,eAAQ,SAAR,OAIJ1F,QAAS,CACPD,MADO,SACF,GACCvB,EAAJ,QAAczK,KAAKsS,IAAIm6E,OAEvBzsF,KAAA,iBAEAA,KAAA,IAAWA,KAAX,UAEFkrH,SARO,WASL,IAAMl+G,EAAK,gBACT,kBAAiBhN,KAAKsL,eADW,EAEjCgI,SAAUtT,KAAK+W,cAAgB/W,KAArB,YAFuB,GAG9BA,KAAK0R,QAiBV,OAdI1R,KAAK0R,OAAOC,eAAhB,SAEW3R,KAAJ,UAEIA,KAAJ,WACLgN,EAAA,gBACAA,EAAA,iBAAyBvO,OAAOuB,KAAhC,WACSA,KAAJ,UACLgN,EAAA,KAAahN,KAAK+W,YAAc,gBAAhC,EACA/J,EAAA,GAAWA,EAAA,wBAAyBhN,KAApC,OACSA,KAAJ,WACLgN,EAAA,kBAGF,IAIJrJ,OAlHiD,SAkH3C,GAAG,aACa3D,KAApB,oBAAI,EADG,EACH,IAAO8D,EADJ,EACIA,KAEXA,EAAA,uCACKA,EADQ,OAER9D,KAAKkrH,YAEVpnH,EAAK9D,KAAKyW,GAAK,WAAf,uCACK3S,EAAK9D,KAAKyW,GAAK,WADgB,OAApC,IAEElD,QAAU,SAAA9I,GAEJA,EAAA,UAAc,OAAlB,OAAkC,WAElC,wBAIAzK,KAAJ,WAAmB4D,EAAA,OACf5D,KAAKgrH,UAAYhrH,KAArB,KACE8D,EAAA,GAAUA,EAAV,gBACOA,EAAP,UAGF,IAAMwK,EAAWtO,KAAKuR,aAAahO,QAC/BvD,KAAKuR,aAAahO,QAAQ,CAC1Bsa,OAAQ7d,KADkB,SAE1BuX,OAAQvX,KAAKuX,SAEbvX,KAAKoM,OALT,QAOA,OAAOlI,EAAEN,EAAK5D,KAAK0V,aAAa1V,KAAlB,MAAN,GAAR,O,sBCxLJ,8BACE,OAAO4B,GAAMA,EAAG0G,MAAQA,MAAQ1G,GAIlCrD,EAAOC,QAEL2sH,EAA2B,iBAAdC,YAA0BA,aACvCD,EAAuB,iBAAV3pH,QAAsBA,SACnC2pH,EAAqB,iBAAR3sD,MAAoBA,OACjC2sD,EAAuB,iBAAV/7G,GAAsBA,IAEnCxO,SAAS,cAATA,K,kECZF,IAAIvB,EAAI,EAAQ,QACZkD,EAAc,EAAQ,QACtBgmB,EAAU,EAAQ,QAClBpnB,EAAkB,EAAQ,QAC1B6zF,EAAiC,EAAQ,QACzC5e,EAAiB,EAAQ,QAI7B/2E,EAAE,CAAEM,OAAQ,SAAUqG,MAAM,EAAMiU,MAAO1X,GAAe,CACtDm1E,0BAA2B,SAAmCxhE,GAC5D,IAKIpP,EAAK8S,EALL7Z,EAAIoB,EAAgB+U,GACpBpT,EAA2BkyF,EAA+B3zF,EAC1DwO,EAAO0Y,EAAQxoB,GACf2G,EAAS,GACTqD,EAAQ,EAEZ,MAAO8F,EAAKhR,OAASkL,EACnB6P,EAAa9W,EAAyB/C,EAAG+G,EAAM+I,EAAK9F,WACjCjL,IAAf8a,GAA0Bw8D,EAAe1vE,EAAQI,EAAK8S,GAE5D,OAAOlT,M,kCCdX,SAASglB,EAAT,KACE,IAAMuR,EAAW+gB,EAAjB,MACMxkC,EAAUwkC,EAAA,SAAmB,CAAErrB,SAAS,GAE9CnxB,OAAA,+BACAyC,EAAA,UAAe,CACbg5B,WACAzjB,WAGGwkC,EAAD,WAAuBA,EAAA,UAA3B,OACE/gB,IAIJ,SAASnrB,EAAT,GACE,GAAK7N,EAAL,WAD8B,MAGAA,EAA9B,UAAM,EAHwB,EAGxB,SAAYuV,EAHY,EAGZA,QAClBhY,OAAA,yCACOyC,EAAP,WAGK,IAAMonH,EAAS,CACpB3/F,WACA5Z,UAGF,U,qBCnCA,IAAIzS,EAAI,EAAQ,QACZisH,EAAW,EAAQ,QACnBrlH,EAAQ,EAAQ,QAChB9F,EAAW,EAAQ,QACnBorH,EAAW,EAAQ,QAAkCA,SAErDC,EAAe/pH,OAAOkf,OACtBmrD,EAAsB7lE,GAAM,WAAculH,EAAa,MAI3DnsH,EAAE,CAAEM,OAAQ,SAAUqG,MAAM,EAAM6I,OAAQi9D,EAAqB7xD,MAAOqxG,GAAY,CAChF3qG,OAAQ,SAAgB/e,GACtB,OAAO4pH,GAAgBrrH,EAASyB,GAAM4pH,EAAaD,EAAS3pH,IAAOA,M,qBCbvE,IAAIwN,EAAS,EAAQ,QACjBC,EAAe,EAAQ,QACvBo8G,EAAuB,EAAQ,QAC/Bn8G,EAA8B,EAAQ,QACtClR,EAAkB,EAAQ,QAE1BkI,EAAWlI,EAAgB,YAC3BC,EAAgBD,EAAgB,eAChCkiE,EAAcmrD,EAAqB1lH,OAEvC,IAAK,IAAIwJ,KAAmBF,EAAc,CACxC,IAAIG,EAAaJ,EAAOG,GACpBE,EAAsBD,GAAcA,EAAWtO,UACnD,GAAIuO,EAAqB,CAEvB,GAAIA,EAAoBnJ,KAAcg6D,EAAa,IACjDhxD,EAA4BG,EAAqBnJ,EAAUg6D,GAC3D,MAAOz+D,GACP4N,EAAoBnJ,GAAYg6D,EAKlC,GAHK7wD,EAAoBpR,IACvBiR,EAA4BG,EAAqBpR,EAAekR,GAE9DF,EAAaE,GAAkB,IAAK,IAAIoI,KAAe8zG,EAEzD,GAAIh8G,EAAoBkI,KAAiB8zG,EAAqB9zG,GAAc,IAC1ErI,EAA4BG,EAAqBkI,EAAa8zG,EAAqB9zG,IACnF,MAAO9V,GACP4N,EAAoBkI,GAAe8zG,EAAqB9zG,O,qBC5BhE,IAAIuC,EAAqB,EAAQ,QAC7BC,EAAc,EAAQ,QAI1B5b,EAAOC,QAAUiD,OAAOoO,MAAQ,SAAc9P,GAC5C,OAAOma,EAAmBna,EAAGoa,K,yDCH/B,IAAI9a,EAAI,EAAQ,QACZkD,EAAc,EAAQ,QACtB6M,EAAS,EAAQ,QACjBzM,EAAM,EAAQ,QACdxC,EAAW,EAAQ,QACnBgG,EAAiB,EAAQ,QAAuC9E,EAChEiY,EAA4B,EAAQ,QAEpCoyG,EAAet8G,EAAOiO,OAE1B,GAAI9a,GAAsC,mBAAhBmpH,MAAiC,gBAAiBA,EAAaxqH,iBAExDpC,IAA/B4sH,IAAev1B,aACd,CACD,IAAIw1B,EAA8B,GAE9BC,EAAgB,WAClB,IAAIz1B,EAAc/2F,UAAUP,OAAS,QAAsBC,IAAjBM,UAAU,QAAmBN,EAAYL,OAAOW,UAAU,IAChGsH,EAAS1G,gBAAgB4rH,EACzB,IAAIF,EAAav1B,QAEDr3F,IAAhBq3F,EAA4Bu1B,IAAiBA,EAAav1B,GAE9D,MADoB,KAAhBA,IAAoBw1B,EAA4BjlH,IAAU,GACvDA,GAET4S,EAA0BsyG,EAAeF,GACzC,IAAIG,EAAkBD,EAAc1qH,UAAYwqH,EAAaxqH,UAC7D2qH,EAAgB1pH,YAAcypH,EAE9B,IAAIE,EAAiBD,EAAgBvqH,SACjCyqH,EAAyC,gBAAhCttH,OAAOitH,EAAa,SAC7BzhH,EAAS,wBACb9D,EAAe0lH,EAAiB,cAAe,CAC7CvwG,cAAc,EACdlV,IAAK,WACH,IAAIoyB,EAASr4B,EAASH,MAAQA,KAAK+9D,UAAY/9D,KAC3CiJ,EAAS6iH,EAAe/sH,KAAKy5B,GACjC,GAAI71B,EAAIgpH,EAA6BnzF,GAAS,MAAO,GACrD,IAAIwzF,EAAOD,EAAS9iH,EAAO7I,MAAM,GAAI,GAAK6I,EAAO0N,QAAQ1M,EAAQ,MACjE,MAAgB,KAAT+hH,OAAcltH,EAAYktH,KAIrC3sH,EAAE,CAAE+P,QAAQ,EAAMP,QAAQ,GAAQ,CAChCwO,OAAQuuG,M,qBC/CZ,IAAIjpH,EAAM,EAAQ,QACdpD,EAAW,EAAQ,QACnBqhF,EAAY,EAAQ,QACpB/U,EAA2B,EAAQ,QAEnC9Q,EAAW6lB,EAAU,YACrBwU,EAAkB3zF,OAAOP,UAI7B3C,EAAOC,QAAUqtE,EAA2BpqE,OAAO41D,eAAiB,SAAUt3D,GAE5E,OADAA,EAAIR,EAASQ,GACT4C,EAAI5C,EAAGg7D,GAAkBh7D,EAAEg7D,GACH,mBAAjBh7D,EAAEoC,aAA6BpC,aAAaA,EAAEoC,YAChDpC,EAAEoC,YAAYjB,UACdnB,aAAa0B,OAAS2zF,EAAkB,O,qBCfnD,IAAInvF,EAAQ,EAAQ,QAEpB1H,EAAOC,SAAWyH,GAAM,WACtB,SAASyyD,KAET,OADAA,EAAEx3D,UAAUiB,YAAc,KACnBV,OAAO41D,eAAe,IAAIqB,KAASA,EAAEx3D,c,kCCJ9C,IAAIC,EAAkB,EAAQ,QAC1BoiE,EAAmB,EAAQ,QAC3BpM,EAAY,EAAQ,QACpBtU,EAAsB,EAAQ,QAC9BssB,EAAiB,EAAQ,QAEzB88C,EAAiB,iBACjBhpE,EAAmBJ,EAAoBp6B,IACvC4mD,EAAmBxsB,EAAoBM,UAAU8oE,GAYrD1tH,EAAOC,QAAU2wE,EAAe9sE,MAAO,SAAS,SAAUmhE,EAAUvL,GAClEhV,EAAiBjjD,KAAM,CACrBsD,KAAM2oH,EACNtsH,OAAQwB,EAAgBqiE,GACxBz5D,MAAO,EACPkuD,KAAMA,OAIP,WACD,IAAI3O,EAAQ+lB,EAAiBrvE,MACzBL,EAAS2pD,EAAM3pD,OACfs4D,EAAO3O,EAAM2O,KACbluD,EAAQu/C,EAAMv/C,QAClB,OAAKpK,GAAUoK,GAASpK,EAAOd,QAC7ByqD,EAAM3pD,YAASb,EACR,CAAE+H,WAAO/H,EAAWqL,MAAM,IAEvB,QAAR8tD,EAAuB,CAAEpxD,MAAOkD,EAAOI,MAAM,GACrC,UAAR8tD,EAAyB,CAAEpxD,MAAOlH,EAAOoK,GAAQI,MAAM,GACpD,CAAEtD,MAAO,CAACkD,EAAOpK,EAAOoK,IAASI,MAAM,KAC7C,UAKHgtD,EAAUsM,UAAYtM,EAAU90D,MAGhCkhE,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,Y,qBCpDjB,IAAInqD,EAAW,EAAQ,QAEvB7a,EAAOC,QAAU,SAAUmB,EAAQ4sB,EAAK/S,GACtC,IAAK,IAAI1S,KAAOylB,EAAKnT,EAASzZ,EAAQmH,EAAKylB,EAAIzlB,GAAM0S,GACrD,OAAO7Z,I,qBCJT,IAAIN,EAAI,EAAQ,QACZ4G,EAAQ,EAAQ,QAChB9E,EAAkB,EAAQ,QAC1B0B,EAAiC,EAAQ,QAAmDxB,EAC5FkB,EAAc,EAAQ,QAEtBupE,EAAsB7lE,GAAM,WAAcpD,EAA+B,MACzE4W,GAAUlX,GAAeupE,EAI7BzsE,EAAE,CAAEM,OAAQ,SAAUqG,MAAM,EAAM6I,OAAQ4K,EAAQQ,MAAO1X,GAAe,CACtEO,yBAA0B,SAAkClB,EAAIkF,GAC9D,OAAOjE,EAA+B1B,EAAgBS,GAAKkF,O,wSCHzDsJ,EAAa,OAAAwN,EAAA,MAAO,EAAD,YAAzB,QAiBe,EAAAxN,EAAA,gBAAoC,CACjDhO,KADiD,WAGjDgB,MAAO,CACL8oH,cADK,QAELz7G,MAFK,QAGLF,KAHK,QAILG,SAAU,CACRpN,KAAM,CAACmI,OADC,QAERlI,QAAS,QAEXgX,SAAU,CAAC9O,OARN,QASLu1G,YAAa,CACX19G,KAAM,CAACmI,OADI,QAEXlI,QAAS,GAEX4oH,UAAW,CACT7oH,KAAM,CAACmI,OADE,QAETlI,QAAS,GAEX6oH,WAAY,CACV9oH,KAAM,CAACmI,OADG,QAEVlI,QAAS,GAEX8oH,SAAU,CACR/oH,KAAM,CAACmI,OADC,QAERlI,QAAS,GAEX+oH,WAAY,CACVhpH,KAAM,CAACmI,OADG,QAEVlI,QAAS,GAEXgpH,eA7BK,QA8BLtN,YA9BK,QA+BLuN,UAAW,CACTlpH,KADS,OAETC,QAAS,MAEXkpH,UAAW,CACTnpH,KADS,OAETC,QAAS,MAEXiQ,OAAQ,CACNlQ,KAAM,CAACmI,OADD,QAENlI,QAAS,OAIbO,KAAM,iBAAO,CACX4oH,UADW,EAEXC,UAFW,EAGX57G,YAHW,KAIX67G,gBAJW,EAKXC,WAAY,CACV/5G,UAAW,CACToN,IADS,EAET3U,KAFS,EAGT0U,OAHS,EAITzU,MAJS,EAKTqC,MALS,EAMTD,OANS,EAOTyuF,UAPS,EAQTU,aARS,EASTX,WAAY,GAEdjqF,QAAS,CACP+N,IADO,EAEP3U,KAFO,EAGP0U,OAHO,EAIPzU,MAJO,EAKPqC,MALO,EAMPD,OANO,EAOPyuF,UAPO,EAQPU,aAAc,IAGlB+vB,gBA5BW,EA6BXC,WA7BW,EA8BXC,gBA9BW,EA+BXC,iBA/BW,EAgCXC,UAhCW,EAiCXC,YAjCW,EAkCXC,WAlCW,0BAmCXj8G,eAAgB,IAGlBxF,SAAU,CACR2lE,aADQ,WAEN,IAAMtyE,EAAIgB,KAAK6sH,WAAf,UACM3tH,EAAIc,KAAK6sH,WAAf,QACMQ,IAAiC,IAAhBrtH,KAAKiU,OAAmBjV,EAAxB,WAAuCA,EAAxC,OAAtB,EACMub,EAAWjS,KAAA,IAAStJ,EAAT,MAAkBE,EAAnC,OACIqM,EAAJ,EAEA,GADAA,GAAQvL,KAAKuL,KAAO8hH,GAAiB9yG,EAAWvb,EAAxC,OAAR,EACIgB,KAAJ,QAAkB,CAChB,IAAM0Q,EAAWoR,MAAMrW,OAAOzL,KAAb,WACbhB,EADa,MAEbsJ,KAAA,IAAStJ,EAAT,MAAkByM,OAAOzL,KAF7B,WAIAuL,GAAQvL,KAAKuL,MAAL,EAAwBvM,EAAhC,MAKF,OAHIgB,KAAJ,YAAoBuL,GAAQmJ,SAAS1U,KAAjB,YAChBA,KAAJ,aAAqBuL,GAAQmJ,SAAS1U,KAAjB,aAErB,GAEFq1E,YApBQ,WAqBN,IAAMr2E,EAAIgB,KAAK6sH,WAAf,UACM3tH,EAAIc,KAAK6sH,WAAf,QACI3sG,EAAJ,EASA,OAPIlgB,KAAJ,MAAckgB,GAAOlhB,EAAA,OAAWE,EAAlB,SACd,IAAIc,KAAKiU,OAAkBiM,GAAOlhB,EAAlC,UACKkhB,GAAOlhB,EAAA,IAAQgB,KAAf,YACDA,KAAJ,UAAkBkgB,GAAOlgB,KAAKkgB,KAAOlhB,EAAZ,OAAuBA,EAA9B,QACdgB,KAAJ,WAAmBkgB,GAAOxL,SAAS1U,KAAhB,WACfA,KAAJ,cAAsBkgB,GAAOxL,SAAS1U,KAAhB,cAEtB,GAEFsR,aAlCQ,WAmCN,QAAStR,KAAKoM,OAAP,aAA6BpM,KAAKuR,aAAlC,aAA8DvR,KAA9D,aAAkFA,KAAzF,iBAIJwR,MAAO,CACLlG,SADK,SACG,GACNP,GAAO/K,KAAP,kBAEFkR,SAJK,SAIG,GACFlR,KAAJ,WAEA+K,EAAM/K,KAAH,eAAyBA,KAA5B,mBAEFwsH,UATK,mBAULC,UAAW,oBAGb76G,YA1IiD,WA2I/C5R,KAAA,+BAAwBwB,QAG1ByK,QAAS,CACPqhH,iBADO,WAEL,MAAO,CACLjxB,UADK,EAELD,WAFK,EAGLW,aAHK,EAIL78E,IAAKlgB,KAAKysH,WAAazsH,KAJlB,UAKLigB,OAAQjgB,KAAKysH,WAAazsH,KALrB,UAMLuL,KAAMvL,KAAKwsH,WAAaxsH,KANnB,UAOLwL,MAAOxL,KAAKwsH,WAAaxsH,KAPpB,UAQL4N,OARK,EASLC,MAAO,IAGX6hC,SAdO,aAeP69E,SAfO,SAeC,GACN,OAAO,gBAA8B,IAAhBvtH,KAAKiU,OACtBjU,KADiB,aAEjBA,KAAKwtH,cAAcxtH,KAAnB,aAFJ,KAIFytH,QApBO,WAqBL,OAAO,gBAA8B,IAAhBztH,KAAKiU,OACtBjU,KADiB,YAEjBA,KAAK0tH,cAAc1tH,KAFvB,eAIFwtH,cAzBO,SAyBM,KACX,IAAMG,EAAYpiH,EAAA,EAAmBvL,KAAnB,UAAlB,GAQA,OALEuL,IADIvL,KAAD,MAAcA,KAAf,QAA8B2tH,EAAlC,EACSrlH,KAAA,IAASiD,EAAT,EAAP,GAEOjD,KAAA,MAAP,IAGKiD,EAAOvL,KAAd,iBAEF0tH,cApCO,SAoCM,GACX,IAAME,EAAiB5tH,KAAvB,iBACM6tH,EAAQ7tH,KAAKmtH,YAAnB,EACMr6G,EAAY9S,KAAK6sH,WAAvB,UACMiB,EAAgB9tH,KAAK6sH,WAAW16G,QAAtC,OACM47G,EAAc7tG,EAApB,EACM8tG,EAAgBH,EANE,EAyBxB,OAfIG,GACFhuH,KADE,gBAIF8S,EAAA,IAJF,EAMEoN,EAAMlgB,KAAKmtH,aAAer6G,EAAA,IAD1B,GAGSk7G,IAAkBhuH,KAAtB,cACLkgB,EAAM2tG,EAAA,EADyC,GAGtC3tG,EAAMlgB,KAAN,cAA2BA,KAA/B,gBACLkgB,EAAMlgB,KAAKmtH,YAAX,IAGKjtG,EAAA,MAAP,GAEF+tG,aA/DO,WAgEAjuH,KAAL,WAEAA,KAAA,YAEFkuH,eApEO,WAqELluH,KAAA,mBAEAA,KAAA,cAEFmuH,oBAzEO,WA0EDnuH,KAAJ,YACEA,KAAA,YAAmBA,KAAK4sH,eAAiB,EAAI5sH,KAA7C,iBAGJouH,oBA9EO,WA+EL,QAAIpuH,KAAKiU,OAAT,CACA,IAAIhQ,EAAKjE,KAAT,eACA,QAAW,CACT,aAAIwB,OAAA,6BAEF,YADAxB,KAAA,mBAGFiE,EAAKA,EAAL,aAEFjE,KAAA,oBAEFquH,WA1FO,aA2FPj7C,sBA3FO,WA2Fc,WACbrzD,EAAY,kDAAlB,MAEMC,EAAUD,EAAhB,MAWA,OATAA,EAAA,MAAmB,SAAAtV,GACb,EAAJ,aACEuV,GAAWA,EAAX,GAGF,YAAiBvV,EAAjB,QACA,YAAiBA,EAAjB,SAGF,GAEF6jH,eA3GO,WA4GL,OAAKtuH,KAAL,UAEOwB,OAAA,aACLiR,SAAA,gBADF,aAF4B,GAK9B87G,cAjHO,WAkHL,OAAKvuH,KAAL,UAEOwB,OAAA,aACLiR,SAAA,gBADF,WAF4B,GAK9B+7G,aAvHO,WAwHL,OAAKxuH,KAAL,UAEOwB,OAAA,aACLiR,SAAA,gBADF,UAF4B,GAK9Bg8G,4BA7HO,SA6HoB,GACzB,IAAMxwB,EAAOh6F,EAAb,wBACA,MAAO,CACLic,IAAK5X,KAAA,MAAW21F,EADX,KAEL1yF,KAAMjD,KAAA,MAAW21F,EAFZ,MAGLh+E,OAAQ3X,KAAA,MAAW21F,EAHd,QAILzyF,MAAOlD,KAAA,MAAW21F,EAJb,OAKLpwF,MAAOvF,KAAA,MAAW21F,EALb,OAMLrwF,OAAQtF,KAAA,MAAW21F,EAAX,UAGZywB,QAxIO,SAwIA,GACL,IAAKzqH,IAAOjE,KAAZ,UAA4B,OAAO,KAEnC,IAAMi+F,EAAOj+F,KAAKyuH,4BAHI,GAMtB,QAAIzuH,KAAKiU,OAAkB,CACzB,IAAMtG,EAAQnM,OAAA,iBAAd,GAEAy8F,EAAA,KAAYvpF,SAAS/G,EAArB,YACAswF,EAAA,IAAWvpF,SAAS/G,EAApB,WAGF,UAEFghH,UAvJO,SAuJE,GAAgB,WACvB5pH,uBAAsB,WACpB,IAAMd,EAAK,QAAX,QAEKA,GAAL,SAAWA,EAAA,eAKXA,EAAA,6BACA2Q,IACA3Q,EAAA,sBANE2Q,QASNg6G,gBArKO,WAqKQ,WACb,OAAO,IAAIp9F,SAAc,SAAAC,GAAO,OAAI1sB,uBAAsB,WACxD,kBAAuB,iBAAsB,EAA7C,SACA0sB,WAGJo9F,iBA3KO,WA2KS,WACd7uH,KAAA,+BAAwBwB,OACxBxB,KAAA,sBACAA,KAAA,sBACAA,KAAA,UAAiByS,SAAA,gBAAjB,YAEA,IAAMo6G,EAAkB,CACtB/5G,UAAW,kBAAK9S,KAAK6sH,WAAW/5G,WAChCX,QAAS,kBAAKnS,KAAK6sH,WAAW16G,UAIhC,IAAKnS,KAAD,cAAsBA,KAA1B,SACE6sH,EAAA,UAAuB7sH,KAAvB,uBACK,CACL,IAAM8S,EAAY9S,KAAlB,eACA,MAAgB,OAEhB6sH,EAAA,UAAuB7sH,KAAK0uH,QAA5B,GACA7B,EAAA,qBAAkC/5G,EAAlC,YACA,IAAI9S,KAAKiU,OAGP44G,EAAA,oBAAiC/5G,EAAjC,UAEA+5G,EAAA,sBAKJ7sH,KAAA,WAAe,WACb,kBAAuB6sH,EAAA,QAAqB,UAAa,QAAzD,UAEA,sB,oFCrVF,EAAa,OAAAjvG,EAAA,MAAO,EAAD,0CAAzB,QAYe,gBAAkB,CAC/Bxb,KAD+B,SAG/BkT,QAH+B,WAI7B,MAAO,CACLw5E,UADK,EAGLvL,MAAOvjF,KAAKujF,QAIhBlzE,WAAY,CACVC,aAAA,OACA+6G,OAAA,QAGFjoH,MAAO,CACL0rH,KADK,QAELhQ,aAAc,CACZx7G,KADY,QAEZC,SAAS,GAEXw7G,oBAAqB,CACnBz7G,KADmB,QAEnBC,SAAS,GAEX+H,SAVK,QAWL0zG,YAXK,QAYL3kG,UAAW,CACT/W,KAAM,CAACmI,OADE,QAETlI,QAAS,QAEXyxE,QAhBK,QAiBLC,QAjBK,QAkBLgqC,YAAa,CACX37G,KADW,QAEXC,SAAS,GAEXqvE,YAtBK,QAuBL1vE,OAAQ,CACNI,KADM,OAENC,QAAS,YAEXkB,WAAY,CACVnB,KAAM,CAACwI,QADG,QAEVvI,QAAS,sBAIbO,KAjD+B,WAkD7B,MAAO,CACLirH,kBADK,EAELC,cAFK,EAGLlC,gBAHK,EAIL3J,WAJK,EAKL8L,cALK,EAMLpwE,cANK,KAOLqwE,MAAO,KAIXvjH,SAAU,CACRu3G,WADQ,WAEN,OAAOljH,KAAKkvH,MAAMlvH,KAAlB,YAEFmvH,eAJQ,WAKN,IAAMC,EAAY9mH,KAAA,IAAStI,KAAK6sH,WAAW16G,QAAzB,MAAwCgN,WAAWnf,KAArE,qBAEA,OAAKA,KAAL,KAEO,eAAcA,KAAKwtH,cAAcxtH,KAAnB,eAAd,KAAP,IAFuBA,KAAKutH,SAAS6B,IAArB,KAIlBC,oBAXQ,WAYN,IAAMzhH,EAAS5N,KAAK8uH,KAAL,QAEX,eAAc9uH,KAFlB,WAIA,OAAO4N,GAAP,KAEF0hH,mBAlBQ,WAmBN,OAAO,eAActvH,KAAd,WAAP,KAEFuvH,mBArBQ,WAsBN,GAAIvvH,KAAJ,SACE,OAAO,eAAcA,KAAd,WAAP,IAGF,IAAMua,EAAWjS,KAAA,IACftI,KAAK6sH,WAAW/5G,UAAUjF,MAC1BpC,OAAOzL,KADP,aAECA,KAAK8uH,KAAO,GAHE,GAIfxmH,KAAA,IAAStI,KAAKktH,UAAd,GAJF,IAOMoC,EAAqBxtG,MAAMpN,SAAS1U,KAAf,uBAEvB0U,SAAS1U,KAFb,oBAIA,OAAO,eAAcsI,KAAA,MAAd,KAAP,KAKFknH,cA1CQ,WA2CN,IAAMtvG,EAAOlgB,KAAD,KAER,eAAcA,KAAK0tH,cAAc1tH,KAFrC,oBACIA,KADQ,UAIZ,OAAOkgB,GAAP,KAEFuvG,kBAjDQ,WAkDN,OAAO3jH,QAAQ9L,KAAKkvH,MAAMjhE,MAAK,SAAAknB,GAAI,OAAIA,EAAA,UAAvC,OAEFj+D,OApDQ,WAqDN,MAAO,CACLmD,UAAWra,KADN,oBAELua,SAAUva,KAFL,mBAGL0Q,SAAU1Q,KAHL,mBAILkgB,IAAKlgB,KAJA,cAKLuL,KAAMvL,KALD,eAMLgU,gBAAiBhU,KANZ,OAOLwT,OAAQxT,KAAKwT,QAAUxT,KAAKuS,gBAKlCf,MAAO,CACLN,SADK,SACG,GACN,IAAUlR,KAAKmjH,WAAL,IAEZ8J,gBAJK,SAIU,GACbjtH,KAAA,kBAEFmjH,UAPK,SAOI,KACP,GAAIptG,KAAQ/V,KAAZ,MAAwB,CACtB,IAAMm1E,EAAOn1E,KAAKkvH,MAAlB,GACA/5C,EAAA,0CACAn1E,KAAA,wBAA+Bm1E,EAAA,UAAiBA,EAAhD,aAGFtG,KAAQ7uE,KAAR,OACEA,KAAKkvH,MAAMrgD,GAAMl2B,UAAUt2B,OAD7B,8BAKJ5Q,QAjJ+B,WAmJzBzR,KAAK0R,OAAOC,eAAhB,eACE,eAAQ,aAAR,OAIJm4B,QAxJ+B,WAyJ7B9pC,KAAA,UAAiBA,KAAjB,gBAGFiM,QAAS,CACPyjC,SADO,WACC,WAGN1vC,KAHM,mBAKN+E,uBAAsB,WAEpB,0BAA4B,WACtB,QAAJ,UACE,oBAAyB,EAAzB,cACA,SAAc,0BAA+B,EAA7C,8BAKR2qH,mBAhBO,WAiBL,IAAMp9G,EAAMtS,KAAKkS,MAAjB,QACMgxG,EAAa5wG,EAAA,cAAnB,wBACMq9G,EAAer9G,EAAA,aAAmBA,EAAxC,aAEA,OAAO4wG,EACH56G,KAAA,MAAuBA,KAAA,MAAY46G,EAAA,UAAuB5wG,EAAA,aAAvB,EAA8C4wG,EAAA,aADpE,IAEb5wG,EAFJ,WAIFs9G,aAzBO,WA0BL,OAAOl7G,SAAS1U,KAAK6sH,WAAW/5G,UAAUvH,KAA1C,EAAiDvL,KAAKgvH,gBAExDa,YA5BO,WA6BL,IAAMv9G,EAAMtS,KAAKkS,MAAjB,QACMgxG,EAAa5wG,EAAA,cAAnB,wBAMA,GAJA,IACEtS,KAAA,oBAGEA,KAAKi1E,UAAT,EACE,OAAOj1E,KAAP,YAGFA,KAAA,cAAqBqC,MAAA,KAAWrC,KAAX,eAArB,GAEA,IAAM8vH,EAA0B5M,EAAA,UAAuBljH,KAAvD,qBACM+vH,EAAsBz9G,EAAA,8BAA5B,UAEA,OAAOtS,KAAKq1E,YAAcy6C,EAA0BC,EAApD,GAEFC,gBA/CO,SA+CQ,GAIb,GAFAhwH,KAAA,WAEKA,KAAD,UAAmBA,KAAvB,kBAEO,GAAIyK,EAAA,UAAc,OAAlB,KAGA,GAAIA,EAAA,UAAc,OAAlB,KACLzK,KAAA,gBACK,GAAIyK,EAAA,UAAc,OAAlB,GACLzK,KAAA,eACK,IAAIyK,EAAA,UAAc,OAAd,QAAJ,IAAoCzK,KAAKmjH,UAEvC,OADPnjH,KAAA,MAAWA,KAAX,mBAGFyK,EAAA,sBAVEzK,KAAA,aAYJgS,iBAlEO,SAkES,GACd,IAAMrS,EAAS8K,EAAf,OAEA,OAAOzK,KAAKkR,WACTlR,KADI,cAELA,KAFK,eAGJA,KAAKkS,MAAMC,QAAQC,SAHtB,IAKF+gE,uBA1EO,WA2EL,IAAMtM,EAAa,mDAAnB,MAEA,OAAI7mE,KAAKkjH,YAAcljH,KAAKkjH,WAA5B,GACE,iCAAO,GAAP,IAEE,wBAAyBljH,KAAKkjH,WAAWp6F,KAI7C,GAEFsqD,sBAtFO,WAuFL,IAAMrzD,EAAY,6CAAlB,MAMA,OAJK/f,KAAL,cACE+f,EAAA,QAAoB/f,KAApB,WAGF,GAEF0T,cA/FO,WAgGL,IAAMvB,EAAUnS,KAAhB,aAEA,OAAKA,KAAL,WAEOA,KAAK2T,eAAe,aAAc,CACvCvQ,MAAO,CACLhB,KAAMpC,KAAKyE,aAEZ,CAJH,IAF6B0N,GAQ/B89G,cA1GO,WA0GM,WACL5/G,EAA+B,CAAC,CACpCjO,KADoC,OAEpCyE,MAAO7G,KAAKitH,kBAed,OAXKjtH,KAAD,aAAqBA,KAAzB,cACEqQ,EAAA,KAAgB,CACdjO,KADc,gBAEdyE,MAAO,CACLiN,QAAS,WAAQ,eACjB9B,iBAAkBhS,KAFb,iBAGL+T,QAAS,kBAAO,EAAD,KAAN,sBAAoB,EAAd,iCAKrB,GAEFZ,WA9HO,WA8HG,WACFqG,EAAU,CACdxM,MAAO,iCACFhN,KADE,mBAAF,IAEHiO,KAAM,SAAUjO,KAAV,OAAwBA,KAAK0R,OAA7B,KAA2C,SAEnD5E,YALc,kBAMdC,MAAO,gDACF/M,KADE,kBAEFA,KAFE,gBAAF,mBAGH,wBAAyBA,KAHpB,KAIL,yBAA0BA,KAJrB,eAKLkwH,0BAA2BlwH,KALtB,UAMJA,KAAK+jF,aAAN,QAA4B,IAE9Bp2E,MAAO3N,KAdO,OAedqQ,WAAYrQ,KAfE,gBAgBdyT,IAhBc,UAiBd1P,GAAI,CACFiI,MAAQ,SAAAvB,GACN,IAAM9K,EAAS8K,EAAf,OAEI9K,EAAA,aAAJ,aACI,EAAJ,sBAA8B,gBAEhC4T,QAASvT,KAAK4tF,YAmBlB,OAfI5tF,KAAKiX,WAAT,SACEuC,EAAA,GAAaA,EAAA,IAAb,GACAA,EAAA,UAAoBxZ,KAAKiX,WAAzB,SAGGjX,KAAD,UAAkBA,KAAtB,cACEwZ,EAAA,GAAaA,EAAA,IAAb,GACAA,EAAA,cAAwBxZ,KAAxB,mBAGEA,KAAJ,cACEwZ,EAAA,GAAaA,EAAA,IAAb,GACAA,EAAA,cAAwBxZ,KAAxB,mBAGKA,KAAK2T,eAAe,MAAO6F,EAASxZ,KAA3C,mBAEFmwH,SA5KO,WA6KAnwH,KAAKkS,MAAV,UAEAlS,KAAA,MAAaqC,MAAA,KAAWrC,KAAKkS,MAAMC,QAAQe,iBAA3C,mBAEFk9G,kBAjLO,WAiLU,WACfpwH,KAAA,iBAAsB,WAChB,EAAJ,iBAEA,oBACA,mBAGJqwH,kBAzLO,SAyLU,GAAe,WAE9BrwH,KAAA,kBAAuB,WACjB,yBAA4ByK,EAAhC,gBAEA1F,uBAAsB,WACpB,cACA,0BAINurH,SApMO,WAqML,IAAMn7C,EAAOn1E,KAAKkvH,MAAMlvH,KAAKmjH,UAA7B,GAEA,MAAW,CACT,IAAKnjH,KAAKkvH,MAAV,OAAwB,OAKxB,OAHAlvH,KAAA,kBACAA,KAAA,WAKFA,KAAA,aACA,IAAIm1E,EAAA,UAAsBn1E,KAAKswH,YAEjCC,SAnNO,WAoNL,IAAMp7C,EAAOn1E,KAAKkvH,MAAMlvH,KAAKmjH,UAA7B,GAEA,MAAW,CACT,IAAKnjH,KAAKkvH,MAAV,OAAwB,OAKxB,OAHAlvH,KAAA,UAAiBA,KAAKkvH,MAAtB,YACAlvH,KAAA,WAKFA,KAAA,aACA,IAAIm1E,EAAA,UAAsBn1E,KAAKuwH,YAEjC3iC,UAlOO,SAkOE,GAAkB,WACzB,GAAInjF,EAAA,UAAc,OAAlB,IAAgC,CAE9BkK,YAAW,WAAQ,iBACnB,IAAM7B,EAAY9S,KAAlB,eACAA,KAAA,WAAe,kBAAM8S,GAAaA,EAAlC,gBAEC9S,KAAD,UACA,CAAC,OAAD,GAAc,OAAd,eAAsCyK,EAFjC,WAILzK,KAAA,aAIFA,KAAA,WAAe,kBAAM,kBAArB,OAEFwwH,SAlPO,WAmPAxwH,KAAL,WAKAA,KAAA,0BACAA,KAPM,mBAcNuU,aAAavU,KAAb,eACAA,KAAA,cAAqBwB,OAAA,WAAkBxB,KAAlB,iBAArB,QAIJ2D,OAja+B,SAiazB,GAAG,WACDG,EAAO,CACXgJ,YADW,SAEXC,MAAO,CACL,mBACkB,KAAhB/M,KAAKiU,SAAL,IACAjU,KAAKiU,QACW,WAAhBjU,KAAKiU,QAET5D,WAAY,CAAC,CACXijC,IADW,MAEXlxC,KAFW,SAGXyE,MAAO7G,KAAKwwH,YAIhB,OAAOtsH,EAAE,MAAOJ,EAAM,EACnB9D,KAAD,WAAmBA,KADC,eAEpBA,KAAKoT,iBAAgB,iBAAM,CACzB,wBAAoC,CAClChQ,MAAO,CACLiQ,MADK,EAEL5C,MAAO,EAFF,MAGLF,KAAM,EAAKA,OAEZ,CAAC,EATR,4B,kCC7dJ,gBAGe,qBAAW,CACxBnO,KADwB,aAGxBgB,MAAO,CACLqtH,YAAa,MAGf3sH,KAAM,iBAAO,CACXoN,UADW,EAEXw/G,cAAe,OAGjBl/G,MAAO,CACLN,SADK,SACG,GACN,EACElR,KAAA,cAAqBA,KAArB,YAEAA,KAAA,4BAAkCA,KAAlC,iBAKNiM,QAAS,CACPijG,KADO,SACH,GAAY,WACdlvG,KAAA,gBACA2U,YAAW,WACT,sB,qBC7BR,IAAIvW,EAAkB,EAAQ,QAE9BI,EAAQ6C,EAAIjD,G,mBCFZG,EAAOC,QAAU,SAAU0Q,GACzB,IACE,MAAO,CAAErN,OAAO,EAAOgF,MAAOqI,KAC9B,MAAOrN,GACP,MAAO,CAAEA,OAAO,EAAMgF,MAAOhF,M,kCCHjC,IAiDI8uH,EAAUC,EAAsBC,EAAgBC,EAjDhDzxH,EAAI,EAAQ,QACZgH,EAAU,EAAQ,QAClB+I,EAAS,EAAQ,QACjBuG,EAAa,EAAQ,QACrBgiF,EAAgB,EAAQ,QACxBv+E,EAAW,EAAQ,QACnBsmE,EAAc,EAAQ,QACtB/8B,EAAiB,EAAQ,QACzBg9B,EAAa,EAAQ,QACrBx/E,EAAW,EAAQ,QACnBzB,EAAY,EAAQ,QACpB4jD,EAAa,EAAQ,QACrBtzC,EAAU,EAAQ,QAClB2rD,EAAgB,EAAQ,QACxBjiD,EAAU,EAAQ,QAClB2oE,EAA8B,EAAQ,QACtCt5E,EAAqB,EAAQ,QAC7BwyG,EAAO,EAAQ,QAAqB9xF,IACpCsoG,EAAY,EAAQ,QACpBn5B,EAAiB,EAAQ,QACzBo5B,EAAmB,EAAQ,QAC3BC,EAA6B,EAAQ,QACrCC,EAAU,EAAQ,QAClBruE,EAAsB,EAAQ,QAC9BtpC,EAAW,EAAQ,QACnBnb,EAAkB,EAAQ,QAC1BqZ,EAAa,EAAQ,QAErBC,EAAUtZ,EAAgB,WAC1B+yH,EAAU,UACV9hD,EAAmBxsB,EAAoBz8C,IACvC68C,EAAmBJ,EAAoBp6B,IACvC2oG,EAA0BvuE,EAAoBM,UAAUguE,GACxDE,EAAqB15B,EACrBxoF,EAAYC,EAAOD,UACnBsD,EAAWrD,EAAOqD,SAClB45C,EAAUj9C,EAAOi9C,QACjBykC,EAASn7E,EAAW,SACpBwzG,EAAuB8H,EAA2B5vH,EAClDiwH,EAA8BnI,EAC9BhP,EAA8B,WAApBnrG,EAAQq9C,GAClBklE,KAAoB9+G,GAAYA,EAAS0wB,aAAe/zB,EAAO2vC,eAC/DyyE,EAAsB,qBACtBC,EAAoB,mBACpBC,EAAU,EACVC,EAAY,EACZC,EAAW,EACXC,EAAU,EACVC,GAAY,EAGZr4G,GAASF,EAAS43G,GAAS,WAC7B,IAAIY,EAAyBp3D,EAAc02D,KAAwB5yH,OAAO4yH,GAC1E,IAAKU,EAAwB,CAI3B,GAAmB,KAAft6G,EAAmB,OAAO,EAE9B,IAAK0iG,GAA2C,mBAAzB6X,sBAAqC,OAAO,EAGrE,GAAI3rH,IAAYgrH,EAAmBnwH,UAAU,WAAY,OAAO,EAIhE,GAAIuW,GAAc,IAAM,cAAcnZ,KAAK+yH,GAAqB,OAAO,EAEvE,IAAIrX,EAAUqX,EAAmB5/F,QAAQ,GACrCwgG,EAAc,SAAU/iH,GAC1BA,GAAK,eAA6B,gBAEhC/M,EAAc63G,EAAQ73G,YAAc,GAExC,OADAA,EAAYuV,GAAWu6G,IACdjY,EAAQv4F,MAAK,yBAAwCwwG,MAG5D36B,GAAsB79E,KAAW4nE,GAA4B,SAAU1oE,GACzE04G,EAAmBj+D,IAAIz6C,GAAU,UAAS,kBAIxCu5G,GAAa,SAAUtwH,GACzB,IAAI6f,EACJ,SAAOthB,EAASyB,IAAkC,mBAAnB6f,EAAO7f,EAAG6f,QAAsBA,GAG7D4H,GAAS,SAAU2wF,EAAS1wD,EAAO6oE,GACrC,IAAI7oE,EAAM8oE,SAAV,CACA9oE,EAAM8oE,UAAW,EACjB,IAAIC,EAAQ/oE,EAAMgpE,UAClBvB,GAAU,WACR,IAAIlqH,EAAQyiD,EAAMziD,MACd0rH,EAAKjpE,EAAMA,OAASqoE,EACpB5nH,EAAQ,EAEZ,MAAOsoH,EAAMxzH,OAASkL,EAAO,CAC3B,IAKIrD,EAAQ+a,EAAM+wG,EALdC,EAAWJ,EAAMtoH,KACjB+J,EAAUy+G,EAAKE,EAASF,GAAKE,EAASC,KACtCjhG,EAAUghG,EAAShhG,QACnB8N,EAASkzF,EAASlzF,OAClB8lD,EAASotC,EAASptC,OAEtB,IACMvxE,GACGy+G,IACCjpE,EAAMqpE,YAAcb,IAAWc,GAAkB5Y,EAAS1wD,GAC9DA,EAAMqpE,UAAYd,IAEJ,IAAZ/9G,EAAkBpN,EAASG,GAEzBw+E,GAAQA,EAAOzgF,QACnB8B,EAASoN,EAAQjN,GACbw+E,IACFA,EAAOi1B,OACPkY,GAAS,IAGT9rH,IAAW+rH,EAASzY,QACtBz6E,EAAOpwB,EAAU,yBACRsS,EAAOywG,GAAWxrH,IAC3B+a,EAAK1iB,KAAK2H,EAAQ+qB,EAAS8N,GACtB9N,EAAQ/qB,IACV64B,EAAO14B,GACd,MAAOhF,GACHwjF,IAAWmtC,GAAQntC,EAAOi1B,OAC9B/6E,EAAO19B,IAGXynD,EAAMgpE,UAAY,GAClBhpE,EAAM8oE,UAAW,EACbD,IAAa7oE,EAAMqpE,WAAWE,GAAY7Y,EAAS1wD,QAIvDvK,GAAgB,SAAU38C,EAAM43G,EAASx6E,GAC3C,IAAIlM,EAAOxf,EACPy9G,GACFj+F,EAAQ7gB,EAAS0wB,YAAY,SAC7B7P,EAAM0mF,QAAUA,EAChB1mF,EAAMkM,OAASA,EACflM,EAAMwrB,UAAU18C,GAAM,GAAO,GAC7BgN,EAAO2vC,cAAczrB,IAChBA,EAAQ,CAAE0mF,QAASA,EAASx6E,OAAQA,IACvC1rB,EAAU1E,EAAO,KAAOhN,IAAO0R,EAAQwf,GAClClxB,IAASovH,GAAqBR,EAAiB,8BAA+BxxF,IAGrFqzF,GAAc,SAAU7Y,EAAS1wD,GACnCixD,EAAKx7G,KAAKqQ,GAAQ,WAChB,IAEI1I,EAFAG,EAAQyiD,EAAMziD,MACdisH,EAAeC,GAAYzpE,GAE/B,GAAIwpE,IACFpsH,EAASwqH,GAAQ,WACX/W,EACF9tD,EAAQzoB,KAAK,qBAAsB/8B,EAAOmzG,GACrCj7D,GAAcyyE,EAAqBxX,EAASnzG,MAGrDyiD,EAAMqpE,UAAYxY,GAAW4Y,GAAYzpE,GAASwoE,GAAYD,EAC1DnrH,EAAO7E,OAAO,MAAM6E,EAAOG,UAKjCksH,GAAc,SAAUzpE,GAC1B,OAAOA,EAAMqpE,YAAcd,IAAYvoE,EAAMltC,QAG3Cw2G,GAAoB,SAAU5Y,EAAS1wD,GACzCixD,EAAKx7G,KAAKqQ,GAAQ,WACZ+qG,EACF9tD,EAAQzoB,KAAK,mBAAoBo2E,GAC5Bj7D,GAAc0yE,EAAmBzX,EAAS1wD,EAAMziD,WAIvD/F,GAAO,SAAUnC,EAAIq7G,EAAS1wD,EAAO0pE,GACvC,OAAO,SAAUnsH,GACflI,EAAGq7G,EAAS1wD,EAAOziD,EAAOmsH,KAI1BC,GAAiB,SAAUjZ,EAAS1wD,EAAOziD,EAAOmsH,GAChD1pE,EAAMn/C,OACVm/C,EAAMn/C,MAAO,EACT6oH,IAAQ1pE,EAAQ0pE,GACpB1pE,EAAMziD,MAAQA,EACdyiD,EAAMA,MAAQsoE,EACdvoG,GAAO2wF,EAAS1wD,GAAO,KAGrB4pE,GAAkB,SAAUlZ,EAAS1wD,EAAOziD,EAAOmsH,GACrD,IAAI1pE,EAAMn/C,KAAV,CACAm/C,EAAMn/C,MAAO,EACT6oH,IAAQ1pE,EAAQ0pE,GACpB,IACE,GAAIhZ,IAAYnzG,EAAO,MAAMsI,EAAU,oCACvC,IAAIsS,EAAOywG,GAAWrrH,GAClB4a,EACFsvG,GAAU,WACR,IAAIhxC,EAAU,CAAE51E,MAAM,GACtB,IACEsX,EAAK1iB,KAAK8H,EACR/F,GAAKoyH,GAAiBlZ,EAASj6B,EAASz2B,GACxCxoD,GAAKmyH,GAAgBjZ,EAASj6B,EAASz2B,IAEzC,MAAOznD,GACPoxH,GAAejZ,EAASj6B,EAASl+E,EAAOynD,QAI5CA,EAAMziD,MAAQA,EACdyiD,EAAMA,MAAQqoE,EACdtoG,GAAO2wF,EAAS1wD,GAAO,IAEzB,MAAOznD,GACPoxH,GAAejZ,EAAS,CAAE7vG,MAAM,GAAStI,EAAOynD,MAKhD7vC,KAEF43G,EAAqB,SAAiB8B,GACpC7wE,EAAWtiD,KAAMqxH,EAAoBF,GACrCzyH,EAAUy0H,GACVxC,EAAS5xH,KAAKiB,MACd,IAAIspD,EAAQ+lB,EAAiBrvE,MAC7B,IACEmzH,EAASryH,GAAKoyH,GAAiBlzH,KAAMspD,GAAQxoD,GAAKmyH,GAAgBjzH,KAAMspD,IACxE,MAAOznD,GACPoxH,GAAejzH,KAAMspD,EAAOznD,KAIhC8uH,EAAW,SAAiBwC,GAC1BlwE,EAAiBjjD,KAAM,CACrBsD,KAAM6tH,EACNhnH,MAAM,EACNioH,UAAU,EACVh2G,QAAQ,EACRk2G,UAAW,GACXK,WAAW,EACXrpE,MAAOooE,EACP7qH,WAAO/H,KAGX6xH,EAASzvH,UAAYw+E,EAAY2xC,EAAmBnwH,UAAW,CAG7DugB,KAAM,SAAc2xG,EAAaC,GAC/B,IAAI/pE,EAAQ8nE,EAAwBpxH,MAChCyyH,EAAWtJ,EAAqBphH,EAAmB/H,KAAMqxH,IAO7D,OANAoB,EAASF,GAA2B,mBAAfa,GAA4BA,EACjDX,EAASC,KAA4B,mBAAdW,GAA4BA,EACnDZ,EAASptC,OAAS80B,EAAU9tD,EAAQg5B,YAASvmF,EAC7CwqD,EAAMltC,QAAS,EACfktC,EAAMgpE,UAAUlqH,KAAKqqH,GACjBnpE,EAAMA,OAASooE,GAASroG,GAAOrpB,KAAMspD,GAAO,GACzCmpE,EAASzY,SAIlB,MAAS,SAAUqZ,GACjB,OAAOrzH,KAAKyhB,UAAK3iB,EAAWu0H,MAGhCzC,EAAuB,WACrB,IAAI5W,EAAU,IAAI2W,EACdrnE,EAAQ+lB,EAAiB2qC,GAC7Bh6G,KAAKg6G,QAAUA,EACfh6G,KAAKyxB,QAAU3wB,GAAKoyH,GAAiBlZ,EAAS1wD,GAC9CtpD,KAAKu/B,OAASz+B,GAAKmyH,GAAgBjZ,EAAS1wD,IAE9C2nE,EAA2B5vH,EAAI8nH,EAAuB,SAAU5oH,GAC9D,OAAOA,IAAM8wH,GAAsB9wH,IAAMswH,EACrC,IAAID,EAAqBrwH,GACzB+wH,EAA4B/wH,IAG7B8F,GAAmC,mBAAjBsxF,IACrBm5B,EAAan5B,EAAcz2F,UAAUugB,KAGrCrI,EAASu+E,EAAcz2F,UAAW,QAAQ,SAAckyH,EAAaC,GACnE,IAAIz0H,EAAOoB,KACX,OAAO,IAAIqxH,GAAmB,SAAU5/F,EAAS8N,GAC/CuxF,EAAW/xH,KAAKH,EAAM6yB,EAAS8N,MAC9B9d,KAAK2xG,EAAaC,KAEpB,CAAEl4G,QAAQ,IAGQ,mBAAV21E,GAAsBzxF,EAAE,CAAE+P,QAAQ,EAAMmX,YAAY,EAAM1X,QAAQ,GAAQ,CAEnF0jF,MAAO,SAAeluC,GACpB,OAAOuzC,EAAey5B,EAAoBvgC,EAAO3xF,MAAMiQ,EAAQhQ,iBAMvEC,EAAE,CAAE+P,QAAQ,EAAM8mF,MAAM,EAAMrnF,OAAQ4K,IAAU,CAC9C+X,QAAS6/F,IAGX1uE,EAAe0uE,EAAoBF,GAAS,GAAO,GACnDxxC,EAAWwxC,GAEXN,EAAiBl7G,EAAWw7G,GAG5B9xH,EAAE,CAAEM,OAAQwxH,EAASnrH,MAAM,EAAM6I,OAAQ4K,IAAU,CAGjD8lB,OAAQ,SAAgBu3B,GACtB,IAAIw8D,EAAanK,EAAqBnpH,MAEtC,OADAszH,EAAW/zF,OAAOxgC,UAAKD,EAAWg4D,GAC3Bw8D,EAAWtZ,WAItB36G,EAAE,CAAEM,OAAQwxH,EAASnrH,MAAM,EAAM6I,OAAQxI,GAAWoT,IAAU,CAG5DgY,QAAS,SAAiBntB,GACxB,OAAOszF,EAAevxF,GAAWrG,OAAS6wH,EAAiBQ,EAAqBrxH,KAAMsE,MAI1FjF,EAAE,CAAEM,OAAQwxH,EAASnrH,MAAM,EAAM6I,OAAQyoF,IAAuB,CAG9DlkC,IAAK,SAAaz6C,GAChB,IAAIpY,EAAIP,KACJszH,EAAanK,EAAqB5oH,GAClCkxB,EAAU6hG,EAAW7hG,QACrB8N,EAAS+zF,EAAW/zF,OACpB74B,EAASwqH,GAAQ,WACnB,IAAIqC,EAAkB70H,EAAU6B,EAAEkxB,SAC9B1rB,EAAS,GACT6rB,EAAU,EACV4hG,EAAY,EAChB96G,EAAQC,GAAU,SAAUqhG,GAC1B,IAAIjwG,EAAQ6nB,IACR6hG,GAAgB,EACpB1tH,EAAOqC,UAAKtJ,GACZ00H,IACAD,EAAgBx0H,KAAKwB,EAAGy5G,GAASv4F,MAAK,SAAU5a,GAC1C4sH,IACJA,GAAgB,EAChB1tH,EAAOgE,GAASlD,IACd2sH,GAAa/hG,EAAQ1rB,MACtBw5B,QAEHi0F,GAAa/hG,EAAQ1rB,MAGzB,OADIW,EAAO7E,OAAO09B,EAAO74B,EAAOG,OACzBysH,EAAWtZ,SAIpB0Z,KAAM,SAAc/6G,GAClB,IAAIpY,EAAIP,KACJszH,EAAanK,EAAqB5oH,GAClCg/B,EAAS+zF,EAAW/zF,OACpB74B,EAASwqH,GAAQ,WACnB,IAAIqC,EAAkB70H,EAAU6B,EAAEkxB,SAClC/Y,EAAQC,GAAU,SAAUqhG,GAC1BuZ,EAAgBx0H,KAAKwB,EAAGy5G,GAASv4F,KAAK6xG,EAAW7hG,QAAS8N,SAI9D,OADI74B,EAAO7E,OAAO09B,EAAO74B,EAAOG,OACzBysH,EAAWtZ,Y,4ICzWP,SAAAp8F,EAAA,MAAO,EAAD,YAAN,eAIN,CACPxb,KADO,YAGPgB,MAAO,CACLmd,SADK,QAELtC,MAAO,CACL3a,KADK,OAELC,QAAS,WAEXgN,KAAM,CACJjN,KADI,QAEJC,SAAS,GAEX6b,QAAS,CACP9b,KAAM,CAACmI,OADA,QAEPlI,QAAS,KAEXsD,MAAO,CACLtD,SAAS,GAEXiQ,OAAQ,CACNlQ,KAAM,CAACmI,OADD,QAENlI,QAAS,IAIboI,SAAU,CACRgoH,QADQ,WAEN,IAAM7vH,EAAO9D,KAAK0e,mBAAmB1e,KAAxB,MAAoC,CAC/C8M,YAD+C,mBAE/Ca,MAAO,CACLyR,QAASpf,KAAKyxE,mBAIlB,OAAOzxE,KAAK2T,eAAe,MAA3B,IAEFvC,QAXQ,WAYN,uBACE,sBAAuBpR,KADlB,SAEL,oBAAqBA,KAFhB,UAGFA,KAAKmN,eAGZskE,gBAlBQ,WAmBN,OAAOhmE,OAAOzL,KAAKkR,SAAWlR,KAAhB,QAAd,IAEFkX,OArBQ,WAsBN,MAAO,CACL1D,OAAQxT,KAAKwT,UAKnBvH,QAAS,CACPkH,WADO,WAEL,OAAOnT,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,sBACZ9M,KAAKoM,OAFR,WAMJzI,OA9DO,SA8DD,GACJ,IAAM2K,EAAW,CAACtO,KAAlB,SAIA,OAFIA,KAAJ,UAAmBsO,EAAA,KAActO,KAAd,cAEZkE,EAAE,MAAO,CACd4I,YADc,YAEdC,MAAO/M,KAFO,QAGd2N,MAAO3N,KAAKkX,QAHd,MClFJ,I,wBC2Be,8BAA4D,CACzE9U,KADyE,cAGzEgB,MAAO,CACLwwH,YADK,QAELC,aAFK,OAGLC,eAAgB,CAACroH,OAAQhN,SAG3BqF,KATyE,WAUvE,MAAO,CACLiwH,eADK,EAEL1hH,QAAS,OAIbb,MAAO,CACLoiH,YADK,SACM,GACJ5zH,KAAL,WAEA,EAAWA,KAAX,gBACKA,KAAKg0H,gBAIdniH,cAzByE,WA0BvE7R,KAAA,iBAGFiM,QAAS,CACPgoH,cADO,WAEL,IAAM5hH,EAAU,IAAI,EAAS,CAC3Bqd,UAAW,CACTnP,SAAUvgB,KADD,SAET6G,OAFS,EAGToX,MAAOje,KAHE,aAITof,QAASpf,KAAK8zH,kBAIlBzhH,EAAA,SAEA,IAAM+J,EAASpc,KAAKugB,SAChBvgB,KAAKsS,IADM,WAEXG,SAAA,cAFJ,cAIA2J,GAAUA,EAAA,aAAoB/J,EAApB,IAAiC+J,EAA3C,YAEApc,KAAA,WAEFg0H,WArBO,WAqBG,WAGR,GAFAh0H,KAAA,cAEIA,KAAJ,YAgBA,OAdKA,KAAL,SAAmBA,KAAKi0H,gBAExBj0H,KAAA,eAAsB+E,uBAAsB,WACrC,EAAL,eAEA,IAAI,eACF,iBAAsBtG,OAAO,eAA7B,GACS,EAAJ,MACL,iBAAsB,eAAU,EAAhC,MAGF,wBAGF,GAGFy1H,cA3CO,WA2CyB,WAAjBC,IAAiB,yDAC1Bn0H,KAAJ,UACE,eAAqBA,KAAKqS,QAAN,qBAAoC,WAEnD,EAAD,SACC,UADD,KAEC,cAFD,aAGA,UAJF,QAOA,qCAAwC,UAAxC,KACA,qBACA,mBAMF+hH,qBAAqBp0H,KAArB,gBAEAA,KAAA,kBAGFm0H,GAAcn0H,KAAdm0H,cAEFE,eApEO,SAoEO,GACZ,eAAI5pH,EAAA,KAAsB,CACxB,GACE,CAAC,QAAS,WAAY,UAAUkQ,SAAUlQ,EAAA,OAA1C,UAECA,EAAA,OAHH,kBAIE,OAEF,IAAM68E,EAAK,CAAC,OAAD,GAAc,OAAzB,QACMC,EAAO,CAAC,OAAD,KAAgB,OAA7B,UAEA,GAAID,EAAA,SAAY78E,EAAhB,SACGA,EAAA,cACI,KAAI88E,EAAA,SAAc98E,EAAlB,SAGL,OAFCA,EAAA,WAMDA,EAAA,SAAazK,KAAb,SACD,YAAAyK,EAAA,MAAwBA,EAAA,SAAagI,SADpC,MAEFzS,KAAKs0H,UAFP,KAEqB7pH,EAAA,kBAEvB8pH,aA5FO,SA4FK,GACV,IAAKtwH,GAAMA,EAAA,WAAgB6/E,KAA3B,aAA8C,OAAO,EAErD,IAAMn2E,EAAQnM,OAAA,iBAAd,GACA,MAAO,CAAC,OAAQ,UAAUmZ,SAAShN,EAA5B,YAAiD1J,EAAA,aAAkBA,EAA1E,cAEFuwH,aAlGO,SAkGK,KACV,OAAI,IAAAvwH,EAAA,WAAsBu4E,EAA1B,GACOv4E,EAAA,UAAeA,EAAf,eAAmCA,EAAnC,cAAsDu4E,EAA7D,GAEFi4C,SAtGO,SAsGC,KACN,OAAIxwH,IAAJ,GAEW,OAAAA,GAAeA,IAAOwO,SAA1B,MAGEzS,KAAKy0H,SAASxwH,EAAd,WAAP,IAGJqwH,UA/GO,SA+GE,GACP,IAAMj9G,EAAO5M,EAAA,MAAUzK,KAAKurG,aAA5B,GACM/uB,EAAQ/xE,EAAd,OAEA,GAAI,YAAAA,EAAA,MAAwB4M,EAAA,KAAY5E,SAAxC,KAAuD,CACrD,IAAMiiH,EAAS10H,KAAKkS,MADiC,OAG/Cm6B,EAAW7qC,OAAA,eAAjB,WACA,QAAIkzH,GAAU10H,KAAKu0H,aAAfG,IAAuC10H,KAAKy0H,SAASpoF,EAAzD,KACSrsC,KAAKw0H,aAAaE,EAAzB,GAKJ,IAAK,IAAI3qH,EAAT,EAAoBA,EAAQsN,EAA5B,OAAyCtN,IAAS,CAChD,IAAM9F,EAAKoT,EAAX,GAEA,GAAIpT,IAAJ,SAAqB,OAAO,EAC5B,GAAIA,IAAOwO,SAAX,gBAAqC,OAAO,EAC5C,GAAIxO,IAAOjE,KAAKkS,MAAhB,QAA+B,OAAO,EAEtC,GAAIlS,KAAKu0H,aAAT,GAAsC,OAAOv0H,KAAKw0H,aAAavwH,EAAzB,GAGxC,UAKFsnG,aA5IO,SA4IK,GACV,GAAI9gG,EAAJ,aAAoB,OAAOA,EAAP,eAEpB,IAAM4M,EAAN,GACIpT,EAAKwG,EAAT,OAEA,QAAW,CAGT,GAFA4M,EAAA,QAEA,SAAIpT,EAAA,QAIF,OAHAoT,EAAA,eACAA,EAAA,aAEA,EAGFpT,EAAKA,EAAL,cAEF,UAEFuO,WAhKO,WAiKDxS,KAAKwf,SAAS2/D,WAAlB,UACE1sE,SAAA,oDAEA,eAAwBjR,OAAQ,QAASxB,KAAlB,eAA8D,CAAE2yB,SAAS,IAChGnxB,OAAA,2BAAmCxB,KAAnC,kBAGJm0H,WAxKO,WAyKL1hH,SAAA,sDACAjR,OAAA,4BAAoCxB,KAApC,gBACAwB,OAAA,8BAAsCxB,KAAtC,qB,qBCvON,IAAI2C,EAAM,EAAQ,QACd4lB,EAAU,EAAQ,QAClBysE,EAAiC,EAAQ,QACzC55E,EAAuB,EAAQ,QAEnC7c,EAAOC,QAAU,SAAUmB,EAAQmK,GAIjC,IAHA,IAAI+F,EAAO0Y,EAAQze,GACf3D,EAAiBiV,EAAqB/Z,EACtCyB,EAA2BkyF,EAA+B3zF,EACrDV,EAAI,EAAGA,EAAIkP,EAAKhR,OAAQ8B,IAAK,CACpC,IAAImG,EAAM+I,EAAKlP,GACVgC,EAAIhD,EAAQmH,IAAMX,EAAexG,EAAQmH,EAAKhE,EAAyBgH,EAAQhD,O,qBCXxF,IAAIkI,EAAU,EAAQ,QAItBzQ,EAAOC,QAAU6D,MAAM6a,SAAW,SAAiBo2B,GACjD,MAAuB,SAAhBtkC,EAAQskC,K,qBCLjB,IAAIl1C,EAAkB,EAAQ,QAC1B+4D,EAAY,EAAQ,QAEpB7wD,EAAWlI,EAAgB,YAC3B+zE,EAAiB9vE,MAAMnB,UAG3B3C,EAAOC,QAAU,SAAUoD,GACzB,YAAc9C,IAAP8C,IAAqBu1D,EAAU90D,QAAUT,GAAMuwE,EAAe7rE,KAAc1E,K,gFCPrF,IAAIlD,EAAY,EAAQ,QAEpBi2H,EAAoB,SAAUp0H,GAChC,IAAIkxB,EAAS8N,EACbv/B,KAAKg6G,QAAU,IAAIz5G,GAAE,SAAUq0H,EAAWC,GACxC,QAAgB/1H,IAAZ2yB,QAAoC3yB,IAAXygC,EAAsB,MAAMpwB,UAAU,2BACnEsiB,EAAUmjG,EACVr1F,EAASs1F,KAEX70H,KAAKyxB,QAAU/yB,EAAU+yB,GACzBzxB,KAAKu/B,OAAS7gC,EAAU6gC,IAI1BhhC,EAAOC,QAAQ6C,EAAI,SAAUd,GAC3B,OAAO,IAAIo0H,EAAkBp0H,K,qBChB/B,IAAI6Z,EAAa,EAAQ,QACrBja,EAAW,EAAQ,QACnBwC,EAAM,EAAQ,QACdwD,EAAiB,EAAQ,QAAuC9E,EAChEunB,EAAM,EAAQ,QACd0iG,EAAW,EAAQ,QAEnBwJ,EAAWlsG,EAAI,QACfE,EAAK,EAEL6D,EAAelrB,OAAOkrB,cAAgB,WACxC,OAAO,GAGLooG,EAAc,SAAUnzH,GAC1BuE,EAAevE,EAAIkzH,EAAU,CAAEjuH,MAAO,CACpCmuH,SAAU,OAAQlsG,EAClBmsG,SAAU,OAIVr1C,EAAU,SAAUh+E,EAAIsgB,GAE1B,IAAK/hB,EAASyB,GAAK,MAAoB,iBAANA,EAAiBA,GAAmB,iBAANA,EAAiB,IAAM,KAAOA,EAC7F,IAAKe,EAAIf,EAAIkzH,GAAW,CAEtB,IAAKnoG,EAAa/qB,GAAK,MAAO,IAE9B,IAAKsgB,EAAQ,MAAO,IAEpB6yG,EAAYnzH,GAEZ,OAAOA,EAAGkzH,GAAUE,UAGpBE,EAAc,SAAUtzH,EAAIsgB,GAC9B,IAAKvf,EAAIf,EAAIkzH,GAAW,CAEtB,IAAKnoG,EAAa/qB,GAAK,OAAO,EAE9B,IAAKsgB,EAAQ,OAAO,EAEpB6yG,EAAYnzH,GAEZ,OAAOA,EAAGkzH,GAAUG,UAIpB1J,EAAW,SAAU3pH,GAEvB,OADI0pH,GAAY6J,EAAKtzC,UAAYl1D,EAAa/qB,KAAQe,EAAIf,EAAIkzH,IAAWC,EAAYnzH,GAC9EA,GAGLuzH,EAAO52H,EAAOC,QAAU,CAC1BqjF,UAAU,EACVjC,QAASA,EACTs1C,YAAaA,EACb3J,SAAUA,GAGZnxG,EAAW06G,IAAY,G,gGCtDjB,aAAkD,MAA/BnlG,EAA+B,uDAAlD,QAAmC2D,EAAe,uDAAlD,QACJ,OAAO,cAAW,CAChBlxB,KADgB,aAGhBg6B,MAAO,CAAEzM,OAAM2D,SAEflwB,MAAO,kBACL,EAAQ,CAAEsI,UAAU,IAGtB5H,KATgB,WAUd,MAAO,CACLoN,WAAYlR,KAAK2vB,KAIrBne,OAAK,sBACH,GADG,SACH,GACExR,KAAA,gBAFC,sCAIK,KACN,IAAUA,KAAV,IAAwBA,KAAKygC,MAAMnN,EAAnC,MALC,KAYT,IAAM8hG,EAAa12F,IAEnB,U,isBCpCe,SAAS22F,EAAgBrhD,EAAU3+D,GAChD,KAAM2+D,aAAoB3+D,GACxB,MAAM,IAAIlG,UAAU,qCCFxB,SAASmmH,EAAkB31H,EAAQyD,GACjC,IAAK,IAAIzC,EAAI,EAAGA,EAAIyC,EAAMvE,OAAQ8B,IAAK,CACrC,IAAIiZ,EAAaxW,EAAMzC,GACvBiZ,EAAW2M,WAAa3M,EAAW2M,aAAc,EACjD3M,EAAW0B,cAAe,EACtB,UAAW1B,IAAYA,EAAW4M,UAAW,GACjD/kB,OAAO0E,eAAexG,EAAQia,EAAW9S,IAAK8S,IAInC,SAAS27G,EAAalgH,EAAamgH,EAAYC,GAG5D,OAFID,GAAYF,EAAkBjgH,EAAYnU,UAAWs0H,GACrDC,GAAaH,EAAkBjgH,EAAaogH,GACzCpgH,E,4BCTH,cAAoE,IAA5B5U,EAA4B,uDAApE,GACJ,IAAK0nC,EAAL,WACCA,EAAA,aAEG,SAAJ,GACE,OAAAlX,EAAA,kKAGF,IAAMuW,EAAa/mC,EAAA,YAAnB,GACM4P,EAAa5P,EAAA,YAAnB,GAEA,IAAK,IAAL,OAA+B,CAC7B,IAAMs9C,EAAY1tC,EAAlB,GAEA8tB,EAAA,gBAGF,SAAUu3F,EAAT,GACC,KAAgB,CACd,IAAK,IAAL,OAA8B,CAC5B,IAAMtnH,EAAYo5B,EAAlB,GACIp5B,IAAcsnH,EAAmBtnH,EAArC,0BACE+vB,EAAA,eAGJ,SAEF,UAVF,CAjBwE,GAiCpEA,EAAJ,sBACAA,EAAA,uBAEAA,EAAA,MAAU,CACRphB,aADQ,WAEN,IAAMvD,EAAUxZ,KAAhB,SAEIwZ,EAAJ,SACEA,EAAA,kBAA2BA,EAA3B,YACAxZ,KAAA,SAAgBm+B,EAAA,WAAe3kB,EAAA,QAA/B,YAEAxZ,KAAA,SAAiBwZ,EAAA,QAAkBA,EAAA,OAAnB,UAAhBxZ,U,gBChDO,SAAS21H,EAAgB5zH,EAAGwI,GAMzC,OALAorH,EAAkBl0H,OAAO+gF,gBAAkB,SAAyBzgF,EAAGwI,GAErE,OADAxI,EAAEyqB,UAAYjiB,EACPxI,GAGF4zH,EAAgB5zH,EAAGwI,GCLb,SAASqrH,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI3mH,UAAU,sDAGtB0mH,EAAS30H,UAAYO,OAAOygB,OAAO4zG,GAAcA,EAAW50H,UAAW,CACrEiB,YAAa,CACX0E,MAAOgvH,EACPrvG,UAAU,EACVlL,cAAc,KAGdw6G,GAAYtzC,EAAeqzC,EAAUC,G,oBCb5B,SAASC,EAAgBh0H,GAItC,OAHAg0H,EAAkBt0H,OAAO+gF,eAAiB/gF,OAAO41D,eAAiB,SAAyBt1D,GACzF,OAAOA,EAAEyqB,WAAa/qB,OAAO41D,eAAet1D,IAEvCg0H,EAAgBh0H,G,oBCJV,SAASi0H,IACtB,GAAuB,qBAAZ1tG,UAA4BA,QAAQhoB,UAAW,OAAO,EACjE,GAAIgoB,QAAQhoB,UAAU2Z,KAAM,OAAO,EACnC,GAAqB,oBAAVg8G,MAAsB,OAAO,EAExC,IAEE,OADAzxG,KAAKtjB,UAAUI,SAASvC,KAAKupB,QAAQhoB,UAAUkkB,KAAM,IAAI,iBAClD,EACP,MAAO/Z,GACP,OAAO,G,gBCTI,SAASyrH,EAAuB13D,GAC7C,QAAa,IAATA,EACF,MAAM,IAAI23D,eAAe,6DAG3B,OAAO33D,ECHM,SAAS43D,EAA2B53D,EAAMz/D,GACvD,OAAIA,GAA2B,WAAlBu4E,eAAQv4E,IAAsC,oBAATA,EAI3Cs3H,EAAsB73D,GAHpBz/D,ECDI,SAASu3H,EAAaC,GACnC,IAAIC,EAA4BC,IAChC,OAAO,WACL,IACI/vH,EADA6hC,EAAQ8uB,EAAek/D,GAG3B,GAAIC,EAA2B,CAC7B,IAAI9zC,EAAYrrB,EAAer3D,MAAMmC,YACrCuE,EAAS4hB,QAAQhoB,UAAUioC,EAAOnpC,UAAWsjF,QAE7Ch8E,EAAS6hC,EAAMppC,MAAMa,KAAMZ,WAG7B,OAAOs3H,EAA0B12H,KAAM0G,I,cChB5B,GACbmvE,MADa,QAEb/gE,MAFa,QAGb6hH,aAAc,CACZC,cADY,4BAEZC,YAAa,oBAEfC,UAAW,CACTC,iBADS,iBAETC,UAAW,CACTC,eADS,qBAETC,cAFS,oBAGTC,SAHS,cAITC,aAJS,8BAKTC,mBALS,+BAMTC,kBAAmB,+BAErBC,OAAQ,WAEVC,WAAY,CACVT,iBADU,kBAEVU,gBAFU,MAGVC,SAHU,YAIVC,SAJU,gBAKVC,UALU,aAMVC,SANU,YAOVC,SAAU,kBAEZC,WAAY,CACVC,cADU,eAEVC,mBAFU,aAGVC,kBAHU,YAIVC,mBAJU,iBAKVC,kBAAmB,iBAErB5a,WAnCa,oBAoCb6a,SAAU,CACRxpD,KADQ,kBAER94D,KAFQ,cAGRihH,UAAW,CACTp7C,UAAW,8BAGf08C,SAAU,CACRC,WAAY,YAEdC,UAAW,CACT5mG,QADS,YAET6mG,YAAa,4BAEfC,WAAY,CACVC,GADU,KAEVC,GAAI,MAENC,WAAY,CACV7B,UAAW,CACTj3C,QADS,wBAEThqE,KAFS,YAGToqE,SAHS,gBAIT24C,KAJS,gBAKTC,YAAa,4BC/CN,EAAwB,CACnC55C,WAAY,CAEV65C,iBAFU,KAGVC,eAHU,GAIVC,WAAY,CACVC,GADU,IAEVC,GAFU,IAGVC,GAHU,KAIVC,GAAI,OAGRC,MAAO,CAELC,SAFK,MAGLzzH,OAAQ,IAEV4vE,KAAM,CACJlsC,QADI,KAEJgwF,QAAS,CAAEC,MAEX3iE,OAAGj4D,GAEL2gB,KAvBmC,EAwBnC8jE,MAAO,CACLhzE,MADK,EAELhN,QAFK,QAGLo2H,SAHK,EAILngH,QAAS,CACPogH,cADO,EAEPC,sBAFO,EAGPC,iBAHO,EAIPC,gBAJO,EAKPC,YAAY,GAEdC,OAAQ,CACNxpH,MAAO,CACLypH,QADK,UAELC,UAFK,UAGLC,OAHK,UAILv4H,MAJK,UAKL2uB,KALK,UAMLg8C,QANK,UAOL6tD,QAAS,WAEX9pH,KAAM,CACJ2pH,QADI,UAEJC,UAFI,UAGJC,OAHI,UAIJv4H,MAJI,UAKJ2uB,KALI,UAMJg8C,QANI,UAOJ6tD,QAAS,c,YC3DX,EAAN,kCACE,KAAAC,UAAA,GADF,uCAGM,UAHN,KCSM,EAAN,8BAGE,gBAEwC,+BAKtC,IAAMC,EAAgB,eAAU,GALM,GAO9BC,EAP8B,EAO9BA,WAP8B,EAStC,EACEC,OAAQC,OAV4B,MAShC,GATgC,EAWjCD,EAXiC,eAStC,EATsC,mBActC,MAAIC,EAAA,QACF,OAAAzpG,EAAA,uFAGF7U,EAAA,OAAgB,eACd,eAAUm+G,EADa,GAAzB,GAlBsC,EAL1C,UAAM,GACG,EAAAvtG,SAAA,U,oCCVH,EAAN,kE,0BAGE,EAAA2tG,IAAA,EAEA,EAAAz6G,IAAA,EAEA,EAAA3U,KAAA,EAEA,EAAAqvH,YAAA,EAEA,EAAApvH,MAAA,EAEA,EAAAyU,OAAA,EAEA,EAAAymD,OAAA,EAEA,EAAA6K,YAA4C,CAC1CopD,IAD0C,GAE1Cz6G,IAF0C,GAG1C3U,KAH0C,GAI1CqvH,YAJ0C,GAK1CpvH,MAL0C,GAM1CyU,OAN0C,GAO1CymD,OAAQ,IAxBZ,6CA2BU,OAKN1mE,KAAA,iCAA+B,EAAOsF,GAEtCtF,KAAA,YAlCJ,iCAqCY,KACR,MAAIA,KAAKuxE,YAAYplB,GAAUvjC,YAExB5oB,KAAKuxE,YAAYplB,GAAxB,GACAnsD,KAAA,aAzCJ,6BA4CQ,GACJA,KAAA,GAAiByB,OAAA,OAAczB,KAAKuxE,YAAnB,YACP,qBAAuCupC,EADhC,IAAjB,OA7CJ,GAAM,GACG,EAAA9tF,SAAA,c,cCAH,EAAN,8BAuDE,cAAkC,+BAnD3B,EAAAmsG,IAAA,EAEA,EAAAC,IAAA,EAEA,EAAAC,IAAA,EAEA,EAAAC,IAAA,EAEA,EAAAuB,IAAA,EAEA,EAAAC,QAAA,EAEA,EAAAC,QAAA,EAEA,EAAAC,WAAA,EAEA,EAAAC,SAAA,EAEA,EAAAC,QAAA,EAEA,EAAAC,WAAA,EAEA,EAAAC,SAAA,EAEA,EAAAC,QAAA,EAEA,EAAAC,WAAA,EAEA,EAAAC,SAAA,EAEA,EAAAC,QAAA,EAGA,EAAAp5H,KAAA,KAEA,EAAAwL,OAAA,EAEA,EAAAC,MAAA,EAIA,EAAA4tH,QAAA,EAQC,EAAAxM,cAAA,EAE0B,MAO5BwL,EAAOiB,EAJX,UAAM,EAH0B,EAG1B,mBAH0B,EAG1B,eAGJxC,EAN8B,EAM9BA,WAN8B,OAShC,qBACA,mBACA,eAEA,SAbgC,EAvDpC,yCAyEI,qBAAW13H,SAEXA,OAAA,0BAEExB,KAAKwwH,SAAS1vH,KAFhB,MAGE,CAAE6xB,SAAS,IAGb3yB,KAAA,YAjFJ,iCAqFIuU,aAAavU,KADC,eAOdA,KAAA,cAAqBwB,OAAA,WAAkBxB,KAAKspB,OAAOxoB,KAA9B,MAArB,OA3FJ,+BAgGI,IAAM8M,EAAS5N,KAAf,kBACM6N,EAAQ7N,KAAd,iBAEMm5H,EAAKtrH,EAAQ7N,KAAKk5H,WAAxB,GACME,EAAKvrH,EAAQ7N,KAAKk5H,WAAb,KAAX,EACMG,EAAKxrH,EAAS7N,KAAKk5H,WAAWG,GAAKr5H,KAA9B,kBAAwDo5H,GAAnE,GACME,EAAKzrH,EAAS7N,KAAKk5H,WAAWI,GAAKt5H,KAA9B,kBAAwDq5H,GAAA,GAAnE,GACMwB,EAAKhtH,GAAU7N,KAAKk5H,WAAWI,GAAKt5H,KAA1C,eAuBA,OArBAA,KAAA,SACAA,KAAA,QAEAA,KAAA,KACAA,KAAA,KACAA,KAAA,KACAA,KAAA,KACAA,KAAA,KAEAA,KAAA,SACAA,KAAA,SACAA,KAAA,WAAkBm5H,GAAD,MAAgBE,GAAA,GAAjC,GACAr5H,KAAA,SAAgBm5H,IAAOC,GAAA,MAAvB,GACAp5H,KAAA,SACAA,KAAA,WAAkBm5H,GAAA,GAAD,MAAsBG,GAAvC,GACAt5H,KAAA,UAAiBm5H,GAAF,KAAgBE,GAAA,GAA/B,GACAr5H,KAAA,SACAA,KAAA,WAAkBm5H,GAAA,MAAD,KAAjB,EACAn5H,KAAA,UAAiBm5H,GAAA,GAAF,KAAsBG,GAArC,GACAt5H,KAAA,UAEA,GACE,OACEA,KAAA,UACA,MACF,OACEA,KAAA,UACA,MACF,OACEA,KAAA,UACA,MACF,OACEA,KAAA,UACA,MACF,QACEA,KAAA,UACA,MAGJ,qBAAWA,KAAP,iBAAJ,CAMA,IAAM0+E,EAAc,CAClBy6C,GADkB,EAElBC,GAFkB,EAGlBC,GAHkB,EAIlBC,GAJkB,EAKlBuB,GAAI,GAGApxF,EAAUi1C,EAAY1+E,KAA5B,MACMkZ,EAAMwlE,EAAY1+E,KAAxB,kBAEAA,KAAA,OAAcypC,GAAd,OAhBEzpC,KAAA,OAAc6N,EAAQ6G,SAAS1U,KAAD,iBAA9B,MAjJN,uCAwKI,2BAAWyS,SAFS,EAGbnK,KAAA,IACLmK,SAAA,gBADK,YAELjR,OAAA,YAFF,KAzKJ,wCAiLI,2BAAWiR,SAFU,EAGdnK,KAAA,IACLmK,SAAA,gBADK,aAELjR,OAAA,aAFF,OAlLJ,GAAM,GACU,EAAAwrB,SAAA,a,gBCLH2uG,EAAU,SAAA5kE,GAAD,OAAf,GAEM6kE,EAAc,SAAA7kE,GAAD,gBAAeA,EAAlC,IAEM8kE,EAAe,SAAA9kE,GAAD,OAAeA,GAAK,EAAxC,IAEM+kE,EAAiB,SAAA/kE,GAAD,OAAgBA,EAAA,GAAU,EAAI,KAAJ,IAAIA,EAAd,IAA6B,EAAI,EAAL,GAAlE,EAA8D,GAExDglE,EAAe,SAAAhlE,GAAD,gBAAeA,EAAnC,IAEMilE,EAAgB,SAAAjlE,GAAD,OAAe,gBAApC,GAEMklE,EAAkB,SAAAllE,GAAD,OAAeA,EAAA,GAAU,EAAI,KAAJ,IAAIA,EAAd,IAAwBA,EAAD,IAAW,EAAIA,EAAf,IAAyB,EAAIA,EAA7B,GAA7D,GAEMmlE,EAAe,SAAAnlE,GAAD,gBAAeA,EAAnC,IAEMolE,EAAgB,SAAAplE,GAAD,OAAe,EAAI,KAAJ,MAAMA,EAA1C,IAEMqlE,EAAkB,SAAArlE,GAAD,OAAgBA,EAAA,GAAU,EAAIA,EAAIA,EAAIA,EAAtBA,EAA8B,EAAI,UAAzE,GAEMslE,EAAe,SAAAtlE,GAAD,gBAAeA,EAAnC,IAEMulE,EAAgB,SAAAvlE,GAAD,OAAe,EAAI,KAAJ,MAAMA,EAA1C,IAEMwlE,EAAkB,SAAAxlE,GAAD,OAAeA,EAAA,GAAU,GAAK,KAAL,IAAKA,EAAf,GAAwB,EAAI,GAAK,KAAL,MAAOA,EAAzE,ICxBD,cACJ,qBAAWp3D,EACT,SAGF,IAAIsE,EAAK5E,EAAT,GACA,MACE,KAAwB,kBAAXM,EACT,IAAIskE,MAAM,mBAAV,OADE,EACF,iBACA,IAAI90D,UAAU,uEAAd,OAAqF,EAFzF,GAEI,cAGN,IAAIqtH,EAAJ,EACA,QACEA,GAAev4H,EAAf,UACAA,EAAKA,EAAL,aAGF,SAGI,cACJ,IAAMA,EAAK5E,EAAX,GAEA,KAAQ,OAAO4E,EAEf,KAA2B,kBAAdq0E,EACT,IAAIrU,MAAM,sBAAV,OADE,EACF,iBACA,IAAI90D,UAAU,mEAAd,OAAiF,EAFrF,GAEI,cAGN,SAAS,EAAT,GACE,OAAO,MAAAlL,IAAkBA,EAAA,YAAzB,KAGF,SAAS5E,EAAT,GACE,wBAAW4E,EACFwO,SAAA,cAAP,GACSxO,GAAMA,EAAV,OACGA,EAAR,IACSA,aAAJ,YACL,EAEA,KC/BU,cAEwB,IAApCw4H,EAAoC,uDAFxB,GAINC,EAAQ,gBACZpkD,UAAY7lE,SAAA,kBAAoDA,SAApD,MAAqEA,SADrD,gBAE5B4pC,SAF4B,IAG5Bv3C,OAH4B,EAI5B+6F,OAJ4B,iBAK5B88B,WAL4B,GAMzBF,GAECnkD,EAAYskD,EAAaF,EAA/B,WAGA,GAAIA,EAAA,WAAsBG,EAAA,UAA1B,YAAsD,CACpD,IAAMC,EAAWxkD,EAAA,mBAAjB,uBACMykD,EAAYzkD,EAAA,mBAAlB,gCAFoD,EAG/BukD,EAAA,UAArB,YAAM,EAH8C,EAG9C,IAAO38G,EAHuC,EAGvCA,IAEbw8G,EAAA,UAEKI,IAAL,IAA4BJ,EAAA,WAG9B,IAEA,EAFMM,EAAY13G,YAAlB,MAIE23G,EADF,kBAAWh9F,EACQi9F,EAAA,GAAqBR,EAAtC,OAEiBQ,EAAA,GAAqBA,EAArB,GAA4CR,EAA7D,OAGF,IAAMS,EAAgB7kD,EAAtB,UACA,GAAI2kD,IAAJ,EAAsC,OAAOzrG,QAAA,QAAP,GAEtC,IAAM4rG,EAAO,oBAAOV,EAAP,OACTA,EADS,OAET,EAAeA,EAFnB,QAIA,MAAW,MAAM,IAAIvtH,UAAU,oBAAd,OAAkCutH,EAvCf,OAuCnB,iBAKjB,OAAO,IAAIlrG,SAAQ,SAAAC,GAAO,OAAI1sB,uBAAsB,SAASiU,EAAT,GAClD,IAAMqkH,EAAcC,EAApB,EACMh9G,EAAWhY,KAAA,IAASo0H,EAAA,SAAoBp0H,KAAA,IAAS+0H,EAAcX,EAAvB,SAApB,GAA1B,GAEApkD,EAAA,UAAsBhwE,KAAA,MAAW60H,GAAiBF,EAAD,GAAmCG,EAApF,IAEA,IAAMtgC,EAAexkB,IAAc7lE,SAAd,KAA8BA,SAAA,gBAA9B,aAAsE6lE,EAA3F,aACA,GAAI,IAAAh4D,GAAkBw8E,EAAexkB,EAAf,YAAuCA,EAA7D,aACE,OAAO7mD,EAAP,GAGF1sB,sBAAA,SAIJ83H,EAAA,aACAA,EAAA,KAAY,aAEL,IAAD,EAAN,8BAGE,mBAGE,OAHF,UACE,eAEA,OANJ,UAAM,GACU,EAAA7vG,SAAA,O,wBC9EVusG,EAAsB,CAC1BgE,SAD0B,0DAE1B98B,OAF0B,2MAG1B3rF,MAH0B,gHAI1Bu1B,OAJ0B,2MAK1B3hB,MAL0B,gHAM1B8jD,QAN0B,4JAO1Bh8C,KAP0B,2HAQ1B6pG,QAR0B,kDAS1Bx4H,MAT0B,oDAU1BgtE,KAV0B,gEAW1B94D,KAX0B,8DAY1BynH,WAZ0B,iJAa1BC,YAb0B,iHAc1BC,sBAd0B,gHAe1B9hD,UAf0B,+FAgB1B50E,KAhB0B,yEAiB1BgoF,OAjB0B,6DAkB1BqyB,KAlB0B,iDAmB1Bsc,SAnB0B,uBAoB1BC,SApB0B,uBAqB1BC,QArB0B,sRAsB1BC,SAtB0B,2LAuB1BC,KAvB0B,sJAwB1BC,YAxB0B,kNAyB1BC,WAzB0B,uGA0B1BC,WA1B0B,iKA2B1B/9G,QA3B0B,uPA4B1Bs/D,MA5B0B,8EA6B1BnrD,KA7B0B,2EA8B1B6pG,OA9B0B,oHA+B1Bz3E,KA/B0B,8WAgC1ByqC,KAhC0B,4CAiC1BitC,MAAO,sBAGT,ICpCM,EAAsB,CAC1Bb,SAD0B,QAE1B98B,OAF0B,SAG1B3rF,MAH0B,QAI1Bu1B,OAJ0B,SAK1B3hB,MAL0B,QAM1B8jD,QAN0B,eAO1Bh8C,KAP0B,OAQ1B6pG,QAR0B,gBAS1Bx4H,MAT0B,UAU1BgtE,KAV0B,eAW1B94D,KAX0B,gBAY1BynH,WAZ0B,YAa1BC,YAb0B,0BAc1BC,sBAd0B,0BAe1B9hD,UAf0B,sBAgB1B50E,KAhB0B,eAiB1BgoF,OAjB0B,sBAkB1BqyB,KAlB0B,OAmB1Bsc,SAnB0B,kBAoB1BC,SApB0B,kBAqB1BC,QArB0B,uBAsB1BC,SAtB0B,yBAuB1BC,KAvB0B,OAwB1BC,YAxB0B,cAyB1BC,WAzB0B,OA0B1BC,WA1B0B,YA2B1B/9G,QA3B0B,SA4B1Bs/D,MA5B0B,aA6B1BnrD,KA7B0B,YA8B1B6pG,OA9B0B,cA+B1Bz3E,KA/B0B,cAgC1ByqC,KAhC0B,MAiC1BitC,MAAO,UAGT,ICpCM,EAAsB,CAC1Bb,SAD0B,YAE1B98B,OAF0B,mBAG1B3rF,MAH0B,YAI1Bu1B,OAJ0B,mBAK1B3hB,MAL0B,YAM1B8jD,QAN0B,mBAO1Bh8C,KAP0B,kBAQ1B6pG,QAR0B,kBAS1Bx4H,MAT0B,YAU1BgtE,KAV0B,mBAW1B94D,KAX0B,oBAY1BynH,WAZ0B,sBAa1BC,YAb0B,6BAc1BC,sBAd0B,gBAe1B9hD,UAf0B,aAgB1B50E,KAhB0B,eAiB1BgoF,OAjB0B,mBAkB1BqyB,KAlB0B,WAmB1Bsc,SAnB0B,gBAoB1BC,SApB0B,gBAqB1BC,QArB0B,sBAsB1BC,SAtB0B,qBAuB1BC,KAvB0B,aAwB1BC,YAxB0B,mBAyB1BC,WAzB0B,WA0B1BC,WA1B0B,gBA2B1B/9G,QA3B0B,aA4B1Bs/D,MA5B0B,iBA6B1BnrD,KA7B0B,gBA8B1B6pG,OA9B0B,6BA+B1Bz3E,KA/B0B,gBAgC1ByqC,KAhC0B,WAiC1BitC,MAAO,aAGT,ICpCM,EAAsB,CAC1Bb,SAD0B,eAE1B98B,OAF0B,sBAG1B3rF,MAH0B,eAI1Bu1B,OAJ0B,sBAK1B3hB,MAL0B,sBAM1B8jD,QAN0B,sBAO1Bh8C,KAP0B,qBAQ1B6pG,QAR0B,qBAS1Bx4H,MAT0B,8BAU1BgtE,KAV0B,sBAW1B94D,KAX0B,uBAY1BynH,WAZ0B,sBAa1BC,YAb0B,gBAc1BC,sBAd0B,sBAe1B9hD,UAf0B,gBAgB1B50E,KAhB0B,iBAiB1BgoF,OAjB0B,sBAkB1BqyB,KAlB0B,cAmB1Bsc,SAnB0B,oBAoB1BC,SApB0B,oBAqB1BC,QArB0B,oBAsB1BC,SAtB0B,gBAuB1BC,KAvB0B,cAwB1BC,YAxB0B,cAyB1BC,WAzB0B,cA0B1BC,WA1B0B,mBA2B1B/9G,QA3B0B,cA4B1Bs/D,MA5B0B,uBA6B1BnrD,KA7B0B,sBA8B1B6pG,OA9B0B,sBA+B1Bz3E,KA/B0B,mBAgC1ByqC,KAhC0B,cAiC1BitC,MAAO,gBAGT,KCpCM,GAAsB,CAC1Bb,SAD0B,cAE1B98B,OAF0B,qBAG1B3rF,MAH0B,cAI1Bu1B,OAJ0B,qBAK1B3hB,MAL0B,qBAM1B8jD,QAN0B,qBAO1Bh8C,KAP0B,oBAQ1B6pG,QAR0B,oBAS1Bx4H,MAT0B,6BAU1BgtE,KAV0B,qBAW1B94D,KAX0B,sBAY1BynH,WAZ0B,qBAa1BC,YAb0B,iBAc1BC,sBAd0B,qBAe1B9hD,UAf0B,eAgB1B50E,KAhB0B,gBAiB1BgoF,OAjB0B,qBAkB1BqyB,KAlB0B,aAmB1Bsc,SAnB0B,mBAoB1BC,SApB0B,mBAqB1BC,QArB0B,qBAsB1BC,SAtB0B,iBAuB1BC,KAvB0B,eAwB1BC,YAxB0B,eAyB1BC,WAzB0B,aA0B1BC,WA1B0B,oBA2B1B/9G,QA3B0B,gBA4B1Bs/D,MA5B0B,sBA6B1BnrD,KA7B0B,qBA8B1B6pG,OA9B0B,0BA+B1Bz3E,KA/B0B,kBAgC1ByqC,KAhC0B,aAiC1BitC,MAAO,eAGT,M,oBClCM,iBAIJ,IAAM13H,EAAN,GAEA,IAAK,IAAL,OACEA,EAAA,GAAc,CACZ0H,YACAhL,MAAO,CACL8H,KAAOmzH,EAAA,mBAKb,SAGa,OAAAC,GAA+B,oBAA9C,ICfe,GAAA78H,OAAA,OAAc,CAC3B88H,OAAA,EACAlF,KACAmF,MACAC,MACAC,OACAC,MAAA,KCAI,GAAN,8BAOE,cAAkC,gBAChC,eADgC,MAM5BlE,EAAOmE,EAHX,UAAM,EAH0B,EAG1B,SAEJ74H,EAL8B,EAK9BA,OAL8B,OAQhC,aACA,SAAc,eACZ84H,GADqB,GAAvB,GATgC,EAPpC,UAAM,GACG,GAAA7xG,SAAA,Q,sDCAH8xG,GAAN,YACM5oG,GAAW7Y,OAAjB,iBAEA,SAAS0hH,GAAT,KAI8B,IAD5BC,EAC4B,wDAJ9B,EAI8B,uCAEtBC,EAAWn4H,EAAA,WAAjB,IACIo4H,EAAc,eAAqBC,EAAQF,EAA/C,IAYA,OAVIC,IAAJ,KACE,GACE,OAAAjuG,EAAA,MAAa,oBAAD,OAAZ,EAAY,4BACZiuG,EAAA,IAEA,OAAAjuG,EAAA,MAAY,oBAAD,OAAX,EAAW,yCACXiuG,EAAcH,GAAeK,EAAet4H,GAAK,EAAjD,KAIJ,EAGK,IAAD,GAAN,8BAWE,cAAkC,gBAChC,eAPK,EAAAs4H,cAAA,KAM2B,MAO5B3E,EAAO4E,EAJX,UAAM,EAH0B,EAG1B,UAH0B,EAG1B,QAGJtoE,EAN8B,EAM9BA,EAN8B,OAShC,YACA,YACA,aAAkBA,GAAK,EAAvB,kBAXgC,EAXpC,gDAyBsB,GAClB,IAAMmoE,EAAcl/H,KAAKy5H,QAAQz5H,KAAjC,SACMo/H,EAAgBp/H,KAAKy5H,QAAQz5H,KAAnC,eAEA,OAAO++H,GAAeG,EAAap4H,GAAK,EAAxC,KA7BJ,wBAgCU,GAA+B,2BAA/B,EAA+B,iCAA/B,EAA+B,kBACrC,OAAKA,EAAA,WAAL,IAEO9G,KAAKs/H,WAAL,MAAAt/H,KAAA,WAAP,IAFyCA,KAAK2W,QAAQ7P,EAApB,KAjCtC,wCAsC2B,GAA+B,2BAA/B,EAA+B,iCAA/B,EAA+B,kBACtD,OAAO9G,KAAK2W,QAAQ3W,KAAKu/H,cAAlB,GAAP,KAvCJ,8BA0CiB,KACb,OAAO93H,EAAA,sBAA0B,cAE/B,OAAOhJ,OAAO80B,GAAd,WA7CN,GAAM,GACG,GAAAvG,SAAA,O,yECtCHwvD,I,UAAN,oBAEMgjD,GAA0B,SAAAzoE,GAAD,OAC7BA,EAAI,KAAH,IAAGylB,GAAJ,GACIl0E,KAAA,KADJyuD,GAEKA,GAAK,EAAI,KAAJ,IAAIylB,GAAV,IAAyB,EAH/B,IAMMijD,GAA0B,SAAA1oE,GAAD,OAC7BA,EAAA,YACIA,EADJ,GAEK,EAAI,KAAJ,IAAIylB,GAAL,IAAoBzlB,EAAI,EAH9B,KAMM,eACJ,IAAMvV,EAAN,GACMk+E,EAAel+E,EAAUouC,EAA/B,IAEA,MAAO,CACL,IAAM8vC,EADD,GAEL,KAAOl+E,EAAUouC,EAAA,GAAV,QAFF,GAGL,KAAO8vC,EAAel+E,EAAUouC,EAAA,GAHlC,WAOI,eACJ,IAAMpuC,EAAN,GACMm+E,GAAMC,EAAA,GAAD,IAAX,IACA,MAAO,QACLp+E,EAAUm+E,EAAKC,EAAA,GAAf,KACAp+E,EAFK,GAAP,QAGEA,EAAUm+E,EAAKC,EAAA,GAAf,MCzBE,eASJ,IANiB,IADjBC,EACiB,wDAAjB7F,IAAiB,yDAEX,EAAN,EAAM,OAAa8F,EAFF,eAEjB,EAFiB,YAGXC,EAASt+H,OAAA,KAAf,GACMu+H,EAAN,GAESr/H,EAAT,EAAgBA,EAAIo/H,EAApB,WAAwC,CACtC,IAAM39H,EAAO29H,EAAb,GACMl5H,EAAQ08E,EAAd,GAEA,MAAI18E,IAEJ,EAEWg5H,GAEL,SAAAz9H,GAAmBA,EAAA,WAAnB,YAAiDA,EAAA,WAArD,aACE49H,EAAA,GAAoB,gBAApB,IAEG,WAAI,kBACTA,EAAA,GAAoBC,GAAMp5H,GAAO,EAAjC,GAEAm5H,EAAA,GAAoBE,GAAc99H,EAAM,gBAAxC,IATA49H,EAAA,GAAoB,CAAE9nH,KAAM,gBAAS,gBAAD,MAiBxC,OAJA,IACE8nH,EAAA,OAAqB5qH,GAAU4qH,EAAV,MAA8BA,EAAA,QAAnD,MAGF,EAMF,IAAMG,GAAe,SAAC/9H,EAAD,GACnB,kCACgBA,EADhB,mCAEoByE,EAFpB,yCAGgBA,EAHhB,4CAKgBzE,EALhB,8BAMSyE,EANT,wCAOeA,EAPf,oBAcI,GAAkB,SAACzE,EAAD,KAAyD,MAC7D09H,EAAA,aAAlB,GAD+E,uBACzE,EADyE,KACzE,EADyE,KAE/E,kCACgB19H,EADhB,YACwBkB,EADxB,YACgCpB,EADhC,mCAEoB2E,EAFpB,yCAGgBA,EAHhB,4CAKgBzE,EALhB,wBAKoCkB,EALpC,YAK4CpB,EAL5C,wBAMS2E,EANT,wCAOeA,EAPf,oBAWIu5H,GAAuB,SAACh+H,GAAD,IAAe09H,EAAf,kFAAmD19H,EAAnD,YAA7B,IAEMi+H,GAAmB,SAACj+H,GAAD,IAAe09H,EAAf,kFAAmDM,GAAqBh+H,EAAjG,GAAyB,MAEnB,eAA8D,IAAdk+H,EAAc,wDAC5D,EAAN,EAAM,OAAaR,EAD+C,eAClE,EADkE,YAE5DC,EAASt+H,OAAA,KAAf,GAEA,IAAKs+H,EAAL,OAAoB,MAAO,GAE3B,IAAIQ,EAAJ,GACIvnF,EAAJ,GAEMwnF,EAASF,EAASD,GAAH,UAArB,EACArnF,GAAO,6BAAJ,OAAH,EAAG,OACHsnF,IAAWC,GAAgB,KAAJ,OAASH,GAAqB,UAA9B,aAAvB,EAAuB,QAEvB,IAAK,IAAIz/H,EAAT,EAAgBA,EAAIo/H,EAApB,WAAwC,CACtC,IAAM39H,EAAO29H,EAAb,GACMl5H,EAAQ08E,EAAd,GAEAvqC,GAAOmnF,GAAa/9H,EAAMk+H,EAASD,GAAH,GAA4Bx5H,EAA5D,MACAy5H,IAAWC,GAAgB,KAAJ,OAASH,GAAqBh+H,GAA9B,aAAwCyE,EAA/D,KAAuB,QAGvB,IADA,IAAM45H,EAAWh/H,OAAA,KAAjB,GACS,EAAT,EAAgB,EAAIg/H,EAApB,WAA0C,CACxC,IAAM,EAAUA,EAAhB,GACMC,EAAe75H,EAArB,GACA,SAAI,IAEJmyC,GAAO,GAAgB52C,EAAM,EAASk+H,EAASD,GAAiBj+H,EAApB,GAA5C,GACAk+H,IAAWC,GAAgB,KAAJ,OAASH,GAAqBh+H,EAAM,GAApC,aAAvB,EAAuB,UAQ3B,OAJA,IACEm+H,EAAe,YAAH,OAAZA,EAAY,UAGPA,EAAP,EAGI,iBAKJ,IAJA,IAAMx6H,EAAiC,CACrCmS,KAAM,gBAASrR,IAGRlG,EAAT,EAAgBA,EAAhB,MACEoF,EAAO,UAAD,OAAN,IAAwB,gBAAS46H,GAAQ95H,EAAzC,IAGF,IAAK,IAAI,EAAT,EAAgB,GAAhB,MACEd,EAAO,SAAD,OAAN,IAAuB,gBAAS66H,GAAO/5H,EAAvC,IAGF,SAGI,iBACJ,IAAM+4H,EAAM,GAAY,QAAxB,IAEA,OADAA,EAAA,GAASA,EAAA,GAAT,GAAkBiB,EACX,QAAa,GAApB,IAGI,iBACJ,IAAMjB,EAAM,GAAY,QAAxB,IAEA,OADAA,EAAA,GAASA,EAAA,GAAT,GAAkBiB,EACX,QAAa,GAApB,IC5HK,IAAD,GAAN,8BAmBE,cAAkC,gBAChC,eAjBK,EAAAv1H,UAAA,EAUC,EAAA8hE,OAAA,KAEA,EAAA0zD,YAAA,KAEA,EAAAC,QAAA,KAE0B,MAQ5BtG,EAAOuG,EALX,UAAM,EAH0B,EAG1B,OAH0B,EAG1B,UAH0B,EAG1B,QAIJ/G,EAP8B,EAO9BA,OAOF,OAJA,OAAYnuH,QAAZ,GACA,WAAgB,SAAhB,EACA,YAEA,GACE,cAEA,OAGF,SAAc,CACZyE,KAAM,cAAiB0pH,EAAjB,MADM,GAEZxpH,MAAO,cAAiBwpH,EAAjB,WAtBuB,GAnBpC,+CAyEI,GAAIj6H,KAAJ,SAAmB,OAAOA,KAAP,WAEnBA,KAAA,IAAWA,KAAX,kBA3EJ,iCA+EIA,KAAA,SA/EJ,2BAqFa,KACLA,KAAJ,WAGKqT,EAAL,MACErT,KAAA,eACSmc,GACTnc,KAAA,WAGFA,KAAA,eA/FJ,+BAmGiB,KACbA,KAAA,UAAqByB,OAAA,OAAczB,KAAKi6H,OAAnB,GAArB,GACAj6H,KAAA,eArGJ,oCA0GIA,KAAA,aAAoByB,OAAA,UAAkBzB,KAAKigG,SAA3C,OACAjgG,KAAA,YAAmByB,OAAA,UAAkBzB,KAAKigG,SAA1C,MACAjgG,KAAA,eA5GJ,kDAoHI,OAHAA,KAAA,QAAeyS,SAAA,eAAf,8BAGIzS,KAAJ,UAEAA,KAN+B,kBAQxB8L,QAAQ9L,KAAf,YAxHJ,oCA6HiB,IADbujF,EACa,uDAFI,KAEJ,uCAEP09C,EAAejhI,KAAKi6H,OAAO1pH,EAAO,OAAxC,SAEA,OAAO9O,OAAA,YAAP,KAjIJ,wCA2II,qBAAWgR,WAGXzS,KAAA,QAAeyS,SAAA,cAAf,SACAzS,KAAA,wBACAA,KAAA,sCAEIA,KAAKwZ,QAAT,UACExZ,KAAA,6BAAmCA,KAAKwZ,QAAxC,UAGF/G,SAAA,iBAA0BzS,KAA1B,YAtJJ,kCAyJqB,GAAW,WAE5B,GADAA,KAAA,QAAeqT,EAAf,QACIrT,KAAJ,YAEEqT,EAAA,WAAe,WACb,0BAHJ,CAQA,IAAM6tH,EAAc,oBAAOlhI,KAAK+gI,QAAZ,WAAgD/gI,KAAK+gI,QAAQI,aAA7D,QAApB,WACMC,EAAW/tH,EAAA,aAAjB,GAEAA,EAAA,YAA6B,WAC3B+tH,EAAA,MAAiBA,EAAA,OAAjB,GAEA,IAAMC,EAAoBD,EAAA,YAAqB,SAAAzlF,GAAD,MAA9C,6BAA0DA,EAAA,MAa1D,OAXA,EAQE0lF,EAAA,QAA4B,EAA5B,gBAPAD,EAAA,WAAoB,CAClBnqF,QAAS,EADS,gBAElB3zC,KAFkB,WAGlBwlB,GAHkB,2BAIlBw4G,OAAQ,WAAD,IAAqB1H,WAMhC,MAtLN,uCA0LwB,MACJ55H,KAAK+gI,QAAQQ,OAA7B,WAAQ94G,EADY,EACZA,IAERA,EAAI,CACF9a,MAAO,CAAC,CACNspC,QAASj3C,KADH,gBAENsD,KAFM,WAGNwlB,GAHM,2BAINw4G,MAAOthI,KAAKwZ,QAAQogH,eAlM5B,8BAuMiB,GAEb,IAAM0H,EAAQthI,KAAKwZ,QAAQogH,SAAW,WAAxB,OAAmC55H,KAAKwZ,QAAxC,cAAd,GACA2C,EAAA,KAAkBA,EAAA,MAAlB,GACAA,EAAA,oEAA0EmlH,EAA1E,YAAmFthI,KAAnF,8BA3MJ,kCA8MmB,WAEf,qBAAWyS,WAIPzS,KAAJ,aAAsBA,KAAK8gI,YANZ,WAWf9gI,KAAA,YAAmB,IAAI,EAAJ,KAAQ,CACzB8D,KAAM,CAAEm2H,OAAQj6H,KAAKi6H,QAErBzoH,MAAO,CACLyoH,OAAQ,CACNxzF,WADM,EAENxC,MAFM,EAGNnwB,QAAS,kBAAM,uBAhOzB,wBA+CE,GACM9T,KAAJ,QACMA,KAAJ,aACEA,KAAA,iBAIJA,KAAA,8BAAqCA,KAAKwhI,QAAL,UAArC,KAtDJ,yBAyDE,GACE,IAAMC,EAAUzhI,KAAhB,OAEAA,KAAA,OAHoB,EAMpB,MAAAyhI,GAAmBzhI,KAAnB,cA/DJ,eAmEI,OAAO8L,QAAQ9L,KAAf,UAnEJ,mCAuOI,IAAML,EAASK,KAAKuQ,KAAO,OAA3B,QAEA,OAAOvQ,KAAKi6H,OAAZ,KAzOJ,sCA6OI,IAGA,EAHM12C,EAAQvjF,KAAd,YAEMwZ,EAAUxZ,KAAKwZ,SAArB,GAGA,aAAIA,EAAA,aACFw/B,EAAMx/B,EAAA,eAAN,GAEA,MAAIw/B,KAGNA,EAAM,KAA4Bx/B,EAAlC,kBAEA,MAAIA,EAAA,cACFw/B,EAAMx/B,EAAA,YAANw/B,IAGF,MAAIx/B,EAAA,YACFA,EAAA,qBAVwBw/B,IArP9B,kCAsQI,OAAO,GACLh5C,KAAK0hI,cADA,UAGL,eAAe1hI,KAAD,QAAe,CAAf,eAHhB,MAtQJ,kCAgRI,0BAAcA,KAAK+gI,QAAZ,WAhRX,GAAM,GACG,GAAA/zG,SAAA,Q,ICHK,G,WAmBZ,aAA+C,IAAlCwtG,EAAkC,uDAA/C,GAA+C,UARxC,KAAAF,UAAA,GAEA,KAAAqH,UAAA,GAEA,KAAAlH,OAAA,GAEA,KAAAD,WAAA,GAGLx6H,KAAA,aAEAA,KAAA,IAAS,GACTA,KAAA,IAAS,GACTA,KAAA,IAAS,GACTA,KAAA,IAAS,GACTA,KAAA,IAAS,IACTA,KAAA,IAAS,IACTA,KAAA,IAAS,I,uCAMP,KAAgC,WAClCA,KAAA,mBAAuB,SAAAgtB,GACrB,IAAM40G,EAAU,YAAhB,GAEAA,EAAA,UAAoB,EAApB,UAEAA,EAAA,aAMF5hI,KAAA,cAAqB8L,QAAQ9L,KAAKy6H,OAAlC,O,0BAIC,GACD,IAAMztG,EAAW60G,EAAjB,SAEI7hI,KAAK2hI,UAAUhnH,SAAnB,KAGA3a,KAAA,aAA2B,IAAI6hI,EAAQ7hI,KAAZ,OAA3BA,MACAA,KAAA,uB,KAxDK,GAAAmoC,UAEA,GAAAw5F,WAAA,EAEA,GAAAp3F,QAAA,QAEA,GAAAtlB,OAAS,CACdE,QAAQ,I,qBCxBZ,IAAIq0F,EAAwB,EAAQ,QAChCsoB,EAAa,EAAQ,QACrB1jI,EAAkB,EAAQ,QAE1BC,EAAgBD,EAAgB,eAEhC2jI,EAAuE,aAAnDD,EAAW,WAAc,OAAO1iI,UAArB,IAG/Bg7D,EAAS,SAAUx4D,EAAIkF,GACzB,IACE,OAAOlF,EAAGkF,GACV,MAAOjF,MAIXtD,EAAOC,QAAUg7G,EAAwBsoB,EAAa,SAAUlgI,GAC9D,IAAI7B,EAAG6D,EAAK8C,EACZ,YAAc5H,IAAP8C,EAAmB,YAAqB,OAAPA,EAAc,OAEM,iBAAhDgC,EAAMw2D,EAAOr6D,EAAI0B,OAAOG,GAAKvD,IAA8BuF,EAEnEm+H,EAAoBD,EAAW/hI,GAEH,WAA3B2G,EAASo7H,EAAW/hI,KAAsC,mBAAZA,EAAEw6D,OAAuB,YAAc7zD,I,mBCtB5FnI,EAAOC,QAAU8J,KAAKinE,MAAQ,SAAcjrE,GAE1C,OAAmB,IAAXA,GAAKA,IAAWA,GAAKA,EAAIA,EAAIA,EAAI,GAAK,EAAI,I,qBCJpD,IAAIs5D,EAAS,EAAQ,QACjBh1C,EAAM,EAAQ,QAEd/Y,EAAO+tD,EAAO,QAElBr/D,EAAOC,QAAU,SAAUsI,GACzB,OAAO+I,EAAK/I,KAAS+I,EAAK/I,GAAO8hB,EAAI9hB,M,0LCAxB,gBAAW,CACxB1E,KADwB,SAGxBgB,MAAO,CACL41H,iBAAkB,CAChB11H,KAAM,CAACmI,OADS,QAEhBlI,QAFgB,WAKd,OAAOvD,KAAKwf,SACRxf,KAAKwf,SAAS2/D,WADX,sBAAP,GAIFzM,UAAW,SAAA7xD,GAAC,OACTiB,MAAMrW,OAAP,KACA,CAAC,KAAM,KAAM,KAAM,KAAM,MAAMkP,SAASlc,OAAxC,OAKNkN,SAAU,CACRq2H,SADQ,WACA,MAMFhiI,KAAKwf,SANH,WACA,EADA,EACA,SADA,EACA,QADA,EACA,KAIJw5G,EALI,EAKJA,iBAKF,GAAIA,IAAqBh5H,KAAzB,iBAAgD,OAAOy7H,EAEvD,IAAMwG,EAAcvtH,SAAS1U,KAAD,iBAA5B,IACMkiI,GAAYpgH,MAAlB,GAEA,OAAOogH,EACHr0H,EADW,EAEXzL,IAASpC,KAFb,mBAMJyR,QA1CwB,WA4ClBzR,KAAK0R,OAAOC,eAAhB,uBACE,eAAU,qBAAsB,oBAAhC,S,8FCrCAwwH,EAAiB,SAAApiD,GAAyB,IACxC,EAAN,EAAM,cAAN,EAAM,YAAN,EAAM,YAAuCqiD,EAA7C,EAA6CA,UACvCC,EAAN,GACMC,EAAN,GACAviD,EAAA,QAAkBwiD,EAAlB,EACAxiD,EAAA,QAAkBqiD,EAAlB,EAEI95H,KAAA,IAASy3E,EAAT,SAA4BsiD,EAAW/5H,KAAA,IAASy3E,EAApD,WACEA,EAAA,MAAiBwiD,EAAYC,EAA7B,GAA2DziD,EAAA,KAA3DA,GACAA,EAAA,OAAkBwiD,EAAYC,EAA9B,GAA4DziD,EAAA,MAA5DA,IAGEz3E,KAAA,IAASy3E,EAAT,SAA4BsiD,EAAW/5H,KAAA,IAASy3E,EAApD,WACEA,EAAA,IAAeqiD,EAAYK,EAA3B,GAAyD1iD,EAAA,GAAzDA,GACAA,EAAA,MAAiBqiD,EAAYK,EAA7B,GAA2D1iD,EAAA,KAA3DA,KAIJ,SAAS,EAAT,KACE,IAAMqrB,EAAQ93E,EAAA,eAAd,GACAysD,EAAA,YAAsBqrB,EAAtB,QACArrB,EAAA,YAAsBqrB,EAAtB,QAEArrB,EAAA,OACEA,EAAA,MAAct+E,OAAA,SADhBs+E,IAIF,SAAS,EAAT,KACE,IAAMqrB,EAAQ93E,EAAA,eAAd,GACAysD,EAAA,UAAoBqrB,EAApB,QACArrB,EAAA,UAAoBqrB,EAApB,QAEArrB,EAAA,KACEA,EAAA,IAAYt+E,OAAA,SADds+E,IAGAoiD,EAAA,GAGF,SAAS,EAAT,KACE,IAAM/2B,EAAQ93E,EAAA,eAAd,GACAysD,EAAA,WAAqBqrB,EAArB,QACArrB,EAAA,WAAqBqrB,EAArB,QAEArrB,EAAA,MAAgBA,EAAA,KAAat+E,OAAA,SAA7Bs+E,IAGF,SAAS2iD,EAAT,GACE,IAAM3iD,EAAU,CACdyiD,YADc,EAEdC,YAFc,EAGdF,UAHc,EAIdH,UAJc,EAKdO,WALc,EAMdC,WANc,EAOd5tD,QAPc,EAQdC,QARc,EASd1pE,KAAM1E,EATQ,KAUd2E,MAAO3E,EAVO,MAWdygF,GAAIzgF,EAXU,GAYd0gF,KAAM1gF,EAZQ,KAad8c,MAAO9c,EAbO,MAcdwgE,KAAMxgE,EAdQ,KAedyqC,IAAKzqC,EAAMyqC,KAGb,MAAO,CACL40E,WAAa,SAAAz7G,GAAD,OAAmB,EAAWA,EADrC,IAELo4H,SAAW,SAAAp4H,GAAD,OAAmB,EAASA,EAFjC,IAGLq4H,UAAY,SAAAr4H,GAAD,OAAmB,EAAUA,EAAGs1E,KAI/C,SAASr0D,EAAT,OACE,IAAM7kB,EAAQm3C,EAAd,MACMr+C,EAASkH,EAAA,OAAe5C,EAAf,cAAf,EACMuV,EAAU3S,EAAA,SAAiB,CAAE8rB,SAAS,GAG5C,MAEA,IAAM8P,EAAWigG,EAAe1kF,EAAhC,OACAr+C,EAAA,eAAwB8B,OAAO9B,EAA/B,gBACAA,EAAA,eAAuBurB,EAAA,QAAvB,QAEA,2BAAuB,SAAAo1E,GACrB3gG,EAAA,mBAAmC8iC,EAAnC,UAIJ,SAAS3wB,EAAT,OACE,IAAMnS,EAASq+C,EAAA,aAAwB/5C,EAAxB,cAAf,EACA,GAAKtE,GAAWA,EAAhB,gBAEA,IAAM8iC,EAAW9iC,EAAA,eAAsBurB,EAAA,QAAvC,MACA,2BAAuB,SAAAo1E,GACrB3gG,EAAA,sBAAsC8iC,EAAtC,cAEK9iC,EAAA,eAAsBurB,EAAA,QAA7B,OAGK,IAAM63G,EAAQ,CACnBr3G,WACA5Z,UAGF,I,YC3FM1B,EAAa,OAAAwN,EAAA,MACjB,eAAgB,OAAQ,CAAC,WAAD,yEADD,wCAAzB,QAoBe,OAAAxN,EAAA,OAAkB,CAC/BhO,KAD+B,sBAG/BkT,QAH+B,WAI7B,MAAO,CACLy5E,QAAsB,QAAb/uF,KAAK4D,MAIlByM,WAAY,CACVC,aAAA,OACA+6G,OAAA,OACA0X,MAAA,GAGF3/H,MAAO,CACL6c,OADK,QAEL+iH,QAFK,QAGLC,qBAHK,QAILC,oBAJK,QAKLC,cALK,QAMLrgD,SANK,QAOLl1E,OAAQ,CACNtK,KAAM,CAACmI,OADD,QAENlI,QAFM,WAGJ,OAAOvD,KAAK2uE,IAAM,QAAlB,SAGJy0D,YAbK,QAcLC,iBAAkB,CAChB//H,KAAM,CAACmI,OADS,QAEhBlI,QAAS,IAEX+/H,UAlBK,QAmBL93H,MAnBK,QAoBL+gB,IAAK,CACHjpB,KAAM,CAAC7E,OADJ,QAEH8E,QAAS,IAEXggI,UAxBK,QAyBL3/H,IAAK,CACHN,KADG,OAEHC,QAFG,WAGD,OAAOvD,KAAK2uE,IAAM,MAAlB,UAGJ60D,UA/BK,QAgCLC,UAhCK,QAiCL51H,MAAO,CACLvK,KAAM,CAACmI,OADF,QAELlI,QAAS,KAEXsD,MAAO,MAGT/C,KAAM,iBAAO,CACX4/H,aADW,EAEXC,UAAW,CACTp4H,KADS,EAETC,MAAO,GAET2F,eAAgB,IAGlBxF,SAAU,CAKRijE,oBALQ,WAMN,OAAO5uE,KAAKwL,MAAQ,QAApB,QAEF4F,QARQ,WASN,uBACE,uBADK,EAEL,gCAAiCpR,KAF5B,SAGL,8BAA+BA,KAH1B,OAIL,+BAAgCA,KAJ3B,QAKL,8BAA+BA,KAL1B,SAML,8BAA+BA,KAAD,WAAmBA,KAAK2uE,KAAO3uE,KANxD,OAOL,gCAAiCA,KAP5B,SAQL,iCAAkCA,KAR7B,SASL,oCAAqCA,KAThC,YAUL,oCAAqCA,KAVhC,cAWL,2CAXK,KAWuCyL,OAAOzL,KAAP,kBAC5C,4BAA6BA,KAZxB,SAaL,qCAAsCA,KAbjC,cAcL,6BAA8BA,KAdzB,MAeL,iCAAkCA,KAf7B,WAgBFA,KAAKmN,eAGZy2H,kBA5BQ,WA6BN,IAAK5jI,KAAL,OAAkB,OAAO,KAEzB,IAAM4jI,EACJ5jI,KAAKwf,SAAS+xD,YAAYtxD,OAC1BjgB,KAAKwf,SAAS+xD,YADd,OAEAvxE,KAAKwf,SAAS+xD,YAHhB,IAMA,OAAKvxE,KAAL,QAEO4jI,EAAoB5jI,KAAKwf,SAAS+xD,YAAzC,IAF0BqyD,GAI5BvuD,YAzCQ,WA0CN,IAAKr1E,KAAL,OAAkB,OAAO,EAEzB,IAAIq1E,EAAcr1E,KAAKwf,SAAS+xD,YAAhC,IAMA,OAJA8D,GAAer1E,KAAKgjI,QAChBhjI,KAAKwf,SAAS+xD,YADH,IAAf,EAIA,GAEFK,kBApDQ,WAqDN,OAAI5xE,KAAJ,SAA0B,EACtBA,KAAJ,UACOA,KAAKwL,MADc,KAC1B,KAEFq4H,cAzDQ,WA0DN,OAAO7jI,KAAK8jI,cAAgB9jI,KAArB,iBAA6CA,KAApD,OAEF+jI,OA5DQ,WA6DN,OACE/jI,KAAK2uE,MACH3uE,KAAD,WAAmBA,KAFtB,WAKFgkI,SAlEQ,WAmEN,OAAOhkI,KAAKigB,QAAUjgB,KAAtB,UAEF8jI,cArEQ,WAsEN,OACG9jI,KAAD,eACAA,KAFK,aAILA,KAAKmjI,gBACJnjI,KALH,aAQFgiI,SA9EQ,WA+EN,OACGhiI,KAAD,YACCA,KADD,WAEA,iCAHF,OAMFikI,cArFQ,WAsFN,OACGjkI,KAAD,YACCA,KADD,YAECA,KAAKgiI,UAAYhiI,KAHpB,YAMFkkI,eA5FQ,WA6FN,OACElkI,KAAK2uE,MACJ3uE,KADD,uBAECA,KAFD,YAGCA,KAHD,YAICA,KALH,WAQFmkI,eArGQ,WAsGN,OAAQnkI,KAAD,uBAA+BA,KAAtC,WAEFokI,cAxGQ,WAyGN,OACGpkI,KAAD,sBACCA,KADD,YAECA,KAAKwjI,WAAaxjI,KAHrB,WAMFqkI,YA/GQ,WAgHN,OACGrkI,KAAD,aACAA,KADA,WAECA,KAAKgiI,UAAYhiI,KAHpB,YAMFkX,OAtHQ,WAuHN,IAAMotH,EAAYtkI,KAAKgkI,SAAW,aAAlC,aACM9sH,EAAS,CACbtJ,OAAQ,eAAc5N,KADT,QAEbkgB,IAAMlgB,KAAD,SAFQ,OAES,eAAcA,KAA/B,aACLqa,UAAqC,MAA1Bra,KAAK4jI,kBAAL,sBACQ,eAAc5jI,KADtB,6BAHE,EAMbwhD,UAAW,GAAF,OAAK8iF,EAAL,YAAkB,eAActkI,KAAD,kBAN3B,KAMJ,KACT6N,MAAO,eAAc7N,KAAD,gBAGtB,WAIJwR,MAAO,CACL2F,OADK,gBAELjG,SAFK,SAEG,GACNlR,KAAA,kBAMFgiI,SATK,SASG,MACN,GACEhiI,KADF,WAEGA,KAFH,WAGEA,KAHF,gBAKI,MAAA6uE,GACD7uE,KADC,gBAEDA,KAFH,iBAKAA,KAAA,cAEFsjI,UAtBK,SAsBI,GAEP,IAAStjI,KAAKkR,UAAW,IAE3BmzH,YA1BK,SA0BM,GACT,EAASrkI,KAAT,aACKA,KAAKk0H,iBAEZrtH,MA9BK,SA8BA,GACC7G,KAAJ,YAEA,MAAI+K,EAKAA,IAAQ/K,KAAZ,WAA2BA,KAAKkR,SAAWnG,GAJzC/K,KAAA,SAMJmjI,cAxCK,oBAyCLO,YAzCK,SAyCM,GACT1jI,KAAA,wBAIJ4R,YApP+B,WAqP7B5R,KAAA,QAGFiM,QAAS,CACPs4H,mBADO,WAEL,IAAMnoH,EAASpc,KAAKsS,IAApB,WAEA,MAEA,IAAMkyH,EAAapoH,EAAnB,wBAEApc,KAAA,UAAiB,CACfuL,KAAMi5H,EAAA,KADS,GAEfh5H,MAAOg5H,EAAA,MAAmB,MAG9BxyH,iBAbO,WAcL,OAAOhS,KAAKkR,WAAalR,KAAlB,cAAuCA,KAA9C,eAEFykI,UAhBO,WAiBL,OAAOzkI,KAAK0kI,YAAZ,WAEFzyD,cAnBO,WAoBL,IAAM7uE,EAAQ,CACZwK,OADY,OAEZC,MAFY,OAGZ0e,IAAKvsB,KAAKusB,KAGN42D,EAAQnjF,KAAKuR,aAAa6xE,IAC5BpjF,KAAKuR,aAAa6xE,IADR,GAEVpjF,KAAK2T,eAAegxH,EAApB,KAA0B,CAAEvhI,UAEhC,OAAOpD,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,8BACZ,CAFH,KAIFmjH,cAlCO,WAkCM,WACL5/G,EAAa,CAAC,CAClBjO,KADkB,gBAElByE,MAAO,CACLiN,QAAS,WAAQ,eACjB9B,iBAAkBhS,KAFb,iBAGL+T,QAAS/T,KAAKgT,4BAelB,OAXKhT,KAAD,WAAoBA,KAAxB,WACEqQ,EAAA,KAAgB,CACdjO,KADc,QAEdyE,MAAO,CACLuV,QADK,EAEL7Q,KAAMvL,KAFD,UAGLwL,MAAOxL,KAAK4kI,cAKlB,GAEF9kH,aAzDO,WAyDK,WACJ/b,EAAyC,CAC7C8gI,cAAgB,SAAAp6H,GACd,GAAIA,EAAA,SAAaA,EAAjB,eACA,wBAF0B,GAK1B,IAAMq6H,EAAcryH,SAAA,YAApB,YACAqyH,EAAA,qCACAtjI,OAAA,oBAaJ,OATIxB,KAAJ,cACE+D,EAAA,MAAW,kBAAM,+BAAjB,KAGE/D,KAAJ,gBACE+D,EAAA,WAAgB,kBAAO,eAAvB,GACAA,EAAA,WAAgB,kBAAO,eAAvB,IAGF,GAEF2gI,YAjFO,SAiFI,GACT,IAAM7kH,EAAO,eAAQ7f,KAArB,GAEA,SAEOA,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,wBAAF,OAA0B1K,IADvC,GAFkByd,GAMpBklH,WA1FO,WA2FL,OAAO/kI,KAAK0kI,YAAZ,YAEFvxH,WA7FO,WA8FL,OAAOnT,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,gCACZ9M,KAAKoM,OAFR,UAIF44H,UAlGO,WAmGL,OAAOhlI,KAAK2T,eAAe,MAAO,CAChC7G,YAAa,iCAGjB6tB,KAvGO,WAwGD36B,KAAJ,UACEA,KAAA,YACSA,KAAKujI,WAAT,MACLvjI,KAAK6G,MAEL7G,KAAA,SAAgBA,KAAhB,MACUA,KAAL,YACLA,KAAA,UAAiBA,KAAjB,WAGJsX,cAlHO,WAmHDtX,KAAKokI,eAAiBpkI,KAA1B,qBACEA,KAAA,cAGJilI,UAvHO,SAuHE,GACHjlI,KAAKkR,UAAYlR,KAArB,QACAA,KAAA,qBAEIsI,KAAA,IAASmC,EAAA,UAAcA,EAAvB,aAAJ,MACIzK,KAAKwL,OACPf,EAAA,aAAiBzK,KAAK2jI,UADxB,MAEE3jI,KAAKkR,UAFP,GAGUlR,KAAD,OAAeA,KAAnB,WAAkCA,KAAKkR,UAAW,MAEzD0zH,WAjIO,SAiIG,GACJ5kI,KAAKkR,WAAalR,KAAtB,QACAA,KAAA,qBAEIsI,KAAA,IAASmC,EAAA,UAAcA,EAAvB,aAAJ,OACKzK,KAAD,OACFyK,EAAA,aAAiBzK,KAAK2jI,UADxB,KAEE3jI,KAAKkR,UAFP,EAGSlR,KAAKwL,OAASxL,KAAlB,WAAiCA,KAAKkR,UAAW,MAKxDg+D,kBA9IO,WA+IL,IACGlvE,KAAD,UACAA,KADA,UAEAA,KAFA,YAGCA,KAJH,IAKE,OAAO,EAET,IAAM6N,EAAQpC,OAAOzL,KAArB,eAEA,OAAO8hB,MAAA,GAAe9hB,KAAKsS,IAApB,YAAP,GAEF4yH,kBA1JO,SA0JU,GACXllI,KAAKojI,cAAT,GAA8BpjI,KAAKygC,MAAM,sBAAuB11B,KAIpEpH,OAvZ+B,SAuZzB,GACJ,IAAM2K,EAAW,CACftO,KADe,aAEfA,KAFe,aAGfA,KAHe,YAIfA,KAJF,aASA,OAFIA,KAAKusB,KAAO,eAAQvsB,KAAxB,SAAsCsO,EAAA,QAAiBtO,KAAjB,iBAE/BkE,EAAElE,KAAD,IAAWA,KAAK0e,mBAAmB1e,KAAxB,MAAoC,CACrD+M,MAAO/M,KAD8C,QAErD2N,MAAO3N,KAF8C,OAGrDqQ,WAAYrQ,KAHyC,gBAIrD+D,GAAI/D,KAAK8f,iBAJX,O,kCChdJ,IAAIzgB,EAAI,EAAQ,QACZc,EAAW,EAAQ,QACnB+c,EAAU,EAAQ,QAClBulD,EAAkB,EAAQ,QAC1BjjE,EAAW,EAAQ,QACnB2B,EAAkB,EAAQ,QAC1Bi1E,EAAiB,EAAQ,QACzBh4E,EAAkB,EAAQ,QAC1B83E,EAA+B,EAAQ,QACvCznE,EAA0B,EAAQ,QAElC0nE,EAAsBD,EAA6B,SACnDvnE,EAAiBF,EAAwB,QAAS,CAAE2lF,WAAW,EAAMC,EAAG,EAAGzlF,EAAG,IAE9E8I,EAAUtZ,EAAgB,WAC1B+mI,EAAc,GAAG/kI,MACjB8Y,EAAM5Q,KAAK4Q,IAKf7Z,EAAE,CAAEM,OAAQ,QAASC,OAAO,EAAMiP,QAASsnE,IAAwBxnE,GAAkB,CACnFvO,MAAO,SAAeujB,EAAO2tB,GAC3B,IAKIj8B,EAAa3O,EAAQxE,EALrBnC,EAAIoB,EAAgBnB,MACpBnB,EAASW,EAASO,EAAElB,QACpBu/D,EAAIqE,EAAgB9+C,EAAO9kB,GAC3BumI,EAAM3iE,OAAwB3jE,IAARwyC,EAAoBzyC,EAASyyC,EAAKzyC,GAG5D,GAAIqe,EAAQnd,KACVsV,EAActV,EAAEoC,YAEU,mBAAfkT,GAA8BA,IAAgBhT,QAAS6a,EAAQ7H,EAAYnU,WAE3Ef,EAASkV,KAClBA,EAAcA,EAAYqC,GACN,OAAhBrC,IAAsBA,OAAcvW,IAHxCuW,OAAcvW,EAKZuW,IAAgBhT,YAAyBvD,IAAhBuW,GAC3B,OAAO8vH,EAAYpmI,KAAKgB,EAAGq+D,EAAGgnE,GAIlC,IADA1+H,EAAS,SAAqB5H,IAAhBuW,EAA4BhT,MAAQgT,GAAa6D,EAAIksH,EAAMhnE,EAAG,IACvEl8D,EAAI,EAAGk8D,EAAIgnE,EAAKhnE,IAAKl8D,IAASk8D,KAAKr+D,GAAGq2E,EAAe1vE,EAAQxE,EAAGnC,EAAEq+D,IAEvE,OADA13D,EAAO7H,OAASqD,EACTwE,M,qBC7CX,IAAI43E,EAAgB,EAAQ,QACxBh3E,EAAyB,EAAQ,QAErC/I,EAAOC,QAAU,SAAUoD,GACzB,OAAO08E,EAAch3E,EAAuB1F,M,mBCH9CrD,EAAOC,QAAU,CACf+hE,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnBC,eAAgB,EAChBC,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,SAAU,EACVC,iBAAkB,EAClBC,OAAQ,EACRC,YAAa,EACbC,cAAe,EACfC,cAAe,EACfC,eAAgB,EAChBC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,iBAAkB,EAClBC,eAAgB,EAChBC,iBAAkB,EAClBC,cAAe,EACfC,UAAW,I,qBCjCb,IAAIuyB,EAAgB,EAAQ,QAE5Br2F,EAAOC,QAAUo2F,IAEXv3E,OAAOpD,MAEkB,iBAAnBoD,OAAOvE,U,kCCNnB,8DAIMusH,EAAiB,CACrB9kH,SADqB,QAErBN,OAFqB,QAGrB2oG,MAHqB,QAIrBr9G,KAJqB,QAKrBC,MALqB,QAMrB0U,IAAKpU,SAQD,aAAuC,IAApBugC,EAAoB,uDAAvC,GACJ,OAAO,cAAW,CAChBjqC,KADgB,eAEhBgB,MAAOipC,EAAA,OAAkB,eAAmBg5F,EAArCh5F,GAAiEg5F,IAI7D,OAAA3mG,K,qBCzBf,IAAItvB,EAAS,EAAQ,QAErB7Q,EAAOC,QAAU4Q,EAAOoiB,S","file":"js/chunk-vendors.a0f21a27.js","sourcesContent":["var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 0: return function () {\n      return fn.call(that);\n    };\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://github.com/tc39/proposal-flatMap\n$({ target: 'Array', proto: true }, {\n  flat: function flat(/* depthArg = 1 */) {\n    var depthArg = arguments.length ? arguments[0] : undefined;\n    var O = toObject(this);\n    var sourceLen = toLength(O.length);\n    var A = arraySpeciesCreate(O, 0);\n    A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n    return A;\n  }\n});\n","'use strict';\nvar aFunction = require('../internals/a-function');\nvar isObject = require('../internals/is-object');\n\nvar slice = [].slice;\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n  if (!(argsLength in factories)) {\n    for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n    // eslint-disable-next-line no-new-func\n    factories[argsLength] = Function('C,a', 'return new C(' + list.join(',') + ')');\n  } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.github.io/ecma262/#sec-function.prototype.bind\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n  var fn = aFunction(this);\n  var partArgs = slice.call(arguments, 1);\n  var boundFunction = function bound(/* args... */) {\n    var args = partArgs.concat(slice.call(arguments));\n    return this instanceof boundFunction ? construct(fn, args.length, args) : fn.apply(that, args);\n  };\n  if (isObject(fn.prototype)) boundFunction.prototype = fn.prototype;\n  return boundFunction;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return nativeGetOwnPropertyNames(it);\n  } catch (error) {\n    return windowNames.slice();\n  }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]'\n    ? getWindowNames(it)\n    : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return nativeGetOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","import { FunctionalComponentOptions, VNode, VNodeData } from 'vue'\nimport mergeData from '../../util/mergeData'\n\nfunction mergeTransitions (\n  dest: Function | Function[] = [],\n  ...transitions: (Function | Function[])[]\n) {\n  /* eslint-disable-next-line no-array-constructor */\n  return Array<Function>().concat(dest, ...transitions)\n}\n\nexport function createSimpleTransition (\n  name: string,\n  origin = 'top center 0',\n  mode?: string\n): FunctionalComponentOptions {\n  return {\n    name,\n\n    functional: true,\n\n    props: {\n      group: {\n        type: Boolean,\n        default: false,\n      },\n      hideOnLeave: {\n        type: Boolean,\n        default: false,\n      },\n      leaveAbsolute: {\n        type: Boolean,\n        default: false,\n      },\n      mode: {\n        type: String,\n        default: mode,\n      },\n      origin: {\n        type: String,\n        default: origin,\n      },\n    },\n\n    render (h, context): VNode {\n      const tag = `transition${context.props.group ? '-group' : ''}`\n      const data: VNodeData = {\n        props: {\n          name,\n          mode: context.props.mode,\n        },\n        on: {\n          beforeEnter (el: HTMLElement) {\n            el.style.transformOrigin = context.props.origin\n            el.style.webkitTransformOrigin = context.props.origin\n          },\n        },\n      }\n\n      if (context.props.leaveAbsolute) {\n        data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => (el.style.position = 'absolute'))\n      }\n      if (context.props.hideOnLeave) {\n        data.on!.leave = mergeTransitions(data.on!.leave, (el: HTMLElement) => (el.style.display = 'none'))\n      }\n\n      return h(tag, mergeData(context.data, data), context.children)\n    },\n  }\n}\n\nexport function createJavascriptTransition (\n  name: string,\n  functions: Record<string, any>,\n  mode = 'in-out'\n): FunctionalComponentOptions {\n  return {\n    name,\n\n    functional: true,\n\n    props: {\n      mode: {\n        type: String,\n        default: mode,\n      },\n    },\n\n    render (h, context): VNode {\n      return h(\n        'transition',\n        mergeData(context.data, {\n          props: { name },\n          on: functions,\n        }),\n        context.children\n      )\n    },\n  }\n}\n","import { upperFirst } from '../../util/helpers'\n\ninterface HTMLExpandElement extends HTMLElement {\n  _parent?: (Node & ParentNode & HTMLElement) | null\n  _initialStyle: {\n    transition: string\n    visibility: string | null\n    overflow: string | null\n    height?: string | null\n    width?: string | null\n  }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n  const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n  const offsetProperty = `offset${upperFirst(sizeProperty)}` as 'offsetHeight' | 'offsetWidth'\n\n  return {\n    beforeEnter (el: HTMLExpandElement) {\n      el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n      el._initialStyle = {\n        transition: el.style.transition,\n        visibility: el.style.visibility,\n        overflow: el.style.overflow,\n        [sizeProperty]: el.style[sizeProperty],\n      }\n    },\n\n    enter (el: HTMLExpandElement) {\n      const initialStyle = el._initialStyle\n      const offset = `${el[offsetProperty]}px`\n\n      el.style.setProperty('transition', 'none', 'important')\n      el.style.visibility = 'hidden'\n      el.style.visibility = initialStyle.visibility\n      el.style.overflow = 'hidden'\n      el.style[sizeProperty] = '0'\n\n      void el.offsetHeight // force reflow\n\n      el.style.transition = initialStyle.transition\n\n      if (expandedParentClass && el._parent) {\n        el._parent.classList.add(expandedParentClass)\n      }\n\n      requestAnimationFrame(() => {\n        el.style[sizeProperty] = offset\n      })\n    },\n\n    afterEnter: resetStyles,\n    enterCancelled: resetStyles,\n\n    leave (el: HTMLExpandElement) {\n      el._initialStyle = {\n        transition: '',\n        visibility: '',\n        overflow: el.style.overflow,\n        [sizeProperty]: el.style[sizeProperty],\n      }\n\n      el.style.overflow = 'hidden'\n      el.style[sizeProperty] = `${el[offsetProperty]}px`\n      void el.offsetHeight // force reflow\n\n      requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n    },\n\n    afterLeave,\n    leaveCancelled: afterLeave,\n  }\n\n  function afterLeave (el: HTMLExpandElement) {\n    if (expandedParentClass && el._parent) {\n      el._parent.classList.remove(expandedParentClass)\n    }\n    resetStyles(el)\n  }\n\n  function resetStyles (el: HTMLExpandElement) {\n    const size = el._initialStyle[sizeProperty]\n    el.style.overflow = el._initialStyle.overflow\n    if (size != null) el.style[sizeProperty] = size\n    delete el._initialStyle\n  }\n}\n","import {\n  createSimpleTransition,\n  createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createSimpleTransition('carousel-transition')\nexport const VCarouselReverseTransition = createSimpleTransition('carousel-reverse-transition')\nexport const VTabTransition = createSimpleTransition('tab-transition')\nexport const VTabReverseTransition = createSimpleTransition('tab-reverse-transition')\nexport const VMenuTransition = createSimpleTransition('menu-transition')\nexport const VFabTransition = createSimpleTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createSimpleTransition('dialog-transition')\nexport const VDialogBottomTransition = createSimpleTransition('dialog-bottom-transition')\nexport const VFadeTransition = createSimpleTransition('fade-transition')\nexport const VScaleTransition = createSimpleTransition('scale-transition')\nexport const VScrollXTransition = createSimpleTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createSimpleTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createSimpleTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createSimpleTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createSimpleTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createSimpleTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createSimpleTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createSimpleTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport default {\n  $_vuetify_subcomponents: {\n    VCarouselTransition,\n    VCarouselReverseTransition,\n    VDialogTransition,\n    VDialogBottomTransition,\n    VFabTransition,\n    VFadeTransition,\n    VMenuTransition,\n    VScaleTransition,\n    VScrollXTransition,\n    VScrollXReverseTransition,\n    VScrollYTransition,\n    VScrollYReverseTransition,\n    VSlideXTransition,\n    VSlideXReverseTransition,\n    VSlideYTransition,\n    VSlideYReverseTransition,\n    VTabReverseTransition,\n    VTabTransition,\n    VExpandTransition,\n    VExpandXTransition,\n  },\n}\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n  values: function values(O) {\n    return $values(O);\n  }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n  var url = new URL('b?a=1&b=2&c=3', 'http://a');\n  var searchParams = url.searchParams;\n  var result = '';\n  url.pathname = 'c%20d';\n  searchParams.forEach(function (value, key) {\n    searchParams['delete']('b');\n    result += key + value;\n  });\n  return (IS_PURE && !url.toJSON)\n    || !searchParams.sort\n    || url.href !== 'http://a/c%20d?a=1&c=3'\n    || searchParams.get('c') !== '3'\n    || String(new URLSearchParams('?a=1')) !== 'a=1'\n    || !searchParams[ITERATOR]\n    // throws in Edge\n    || new URL('https://a@b').username !== 'a'\n    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n    // not punycoded in Edge\n    || new URL('http://тест').host !== 'xn--e1aybc'\n    // not escaped in Chrome 62-\n    || new URL('http://a#б').hash !== '#%D0%B1'\n    // fails in Chrome 66-\n    || result !== 'a1c3'\n    // throws in Safari\n    || new URL('http://x', undefined).host !== 'x';\n});\n","import VSheet from './VSheet'\n\nexport { VSheet }\nexport default VSheet\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n  var str = String(requireObjectCoercible(this));\n  var result = '';\n  var n = toInteger(count);\n  if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n  return result;\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n  var internalSplit;\n  if (\n    'abbc'.split(/(b)*/)[1] == 'c' ||\n    'test'.split(/(?:)/, -1).length != 4 ||\n    'ab'.split(/(?:ab)*/).length != 2 ||\n    '.'.split(/(.?)(.?)/).length != 4 ||\n    '.'.split(/()()/).length > 1 ||\n    ''.split(/.?/).length\n  ) {\n    // based on es5-shim implementation, need to rework it\n    internalSplit = function (separator, limit) {\n      var string = String(requireObjectCoercible(this));\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (separator === undefined) return [string];\n      // If `separator` is not a regex, use native split\n      if (!isRegExp(separator)) {\n        return nativeSplit.call(string, separator, lim);\n      }\n      var output = [];\n      var flags = (separator.ignoreCase ? 'i' : '') +\n                  (separator.multiline ? 'm' : '') +\n                  (separator.unicode ? 'u' : '') +\n                  (separator.sticky ? 'y' : '');\n      var lastLastIndex = 0;\n      // Make `global` and avoid `lastIndex` issues by working with a copy\n      var separatorCopy = new RegExp(separator.source, flags + 'g');\n      var match, lastIndex, lastLength;\n      while (match = regexpExec.call(separatorCopy, string)) {\n        lastIndex = separatorCopy.lastIndex;\n        if (lastIndex > lastLastIndex) {\n          output.push(string.slice(lastLastIndex, match.index));\n          if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n          lastLength = match[0].length;\n          lastLastIndex = lastIndex;\n          if (output.length >= lim) break;\n        }\n        if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n      }\n      if (lastLastIndex === string.length) {\n        if (lastLength || !separatorCopy.test('')) output.push('');\n      } else output.push(string.slice(lastLastIndex));\n      return output.length > lim ? output.slice(0, lim) : output;\n    };\n  // Chakra, V8\n  } else if ('0'.split(undefined, 0).length) {\n    internalSplit = function (separator, limit) {\n      return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n    };\n  } else internalSplit = nativeSplit;\n\n  return [\n    // `String.prototype.split` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.split\n    function split(separator, limit) {\n      var O = requireObjectCoercible(this);\n      var splitter = separator == undefined ? undefined : separator[SPLIT];\n      return splitter !== undefined\n        ? splitter.call(separator, O, limit)\n        : internalSplit.call(String(O), separator, limit);\n    },\n    // `RegExp.prototype[@@split]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n    //\n    // NOTE: This cannot be properly polyfilled in engines that don't support\n    // the 'y' flag.\n    function (regexp, limit) {\n      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n      var C = speciesConstructor(rx, RegExp);\n\n      var unicodeMatching = rx.unicode;\n      var flags = (rx.ignoreCase ? 'i' : '') +\n                  (rx.multiline ? 'm' : '') +\n                  (rx.unicode ? 'u' : '') +\n                  (SUPPORTS_Y ? 'y' : 'g');\n\n      // ^(? + rx + ) is needed, in combination with some S slicing, to\n      // simulate the 'y' flag.\n      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n      var p = 0;\n      var q = 0;\n      var A = [];\n      while (q < S.length) {\n        splitter.lastIndex = SUPPORTS_Y ? q : 0;\n        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n        var e;\n        if (\n          z === null ||\n          (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n        ) {\n          q = advanceStringIndex(S, q, unicodeMatching);\n        } else {\n          A.push(S.slice(p, q));\n          if (A.length === lim) return A;\n          for (var i = 1; i <= z.length - 1; i++) {\n            A.push(z[i]);\n            if (A.length === lim) return A;\n          }\n          q = p = e;\n        }\n      }\n      A.push(S.slice(p));\n      return A;\n    }\n  ];\n}, !SUPPORTS_Y);\n","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n  // eslint-disable-next-line no-self-compare\n  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","import './VIcon.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Sizeable from '../../mixins/sizeable'\nimport Themeable from '../../mixins/themeable'\n\n// Util\nimport { convertToUnit, keys, remapInternalIcon } from '../../util/helpers'\n\n// Types\nimport Vue, { CreateElement, VNode, VNodeChildren, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport { VuetifyIcon, VuetifyIconComponent } from 'vuetify/types/services/icons'\n\nenum SIZE_MAP {\n  xSmall = '12px',\n  small = '16px',\n  default = '24px',\n  medium = '28px',\n  large = '36px',\n  xLarge = '40px'\n}\n\nfunction isFontAwesome5 (iconType: string): boolean {\n  return ['fas', 'far', 'fal', 'fab', 'fad'].some(val => iconType.includes(val))\n}\n\nfunction isSvgPath (icon: string): boolean {\n  return (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(icon) && /[\\dz]$/i.test(icon) && icon.length > 4)\n}\n\nconst VIcon = mixins(\n  BindsAttrs,\n  Colorable,\n  Sizeable,\n  Themeable\n  /* @vue/component */\n).extend({\n  name: 'v-icon',\n\n  props: {\n    dense: Boolean,\n    disabled: Boolean,\n    left: Boolean,\n    right: Boolean,\n    size: [Number, String],\n    tag: {\n      type: String,\n      required: false,\n      default: 'i',\n    },\n  },\n\n  computed: {\n    medium () {\n      return false\n    },\n    hasClickListener (): boolean {\n      return Boolean(\n        this.listeners$.click || this.listeners$['!click']\n      )\n    },\n  },\n\n  methods: {\n    getIcon (): VuetifyIcon {\n      let iconName = ''\n      if (this.$slots.default) iconName = this.$slots.default[0].text!.trim()\n\n      return remapInternalIcon(this, iconName)\n    },\n    getSize (): string | undefined {\n      const sizes = {\n        xSmall: this.xSmall,\n        small: this.small,\n        medium: this.medium,\n        large: this.large,\n        xLarge: this.xLarge,\n      }\n\n      const explicitSize = keys(sizes).find(key => sizes[key])\n\n      return (\n        (explicitSize && SIZE_MAP[explicitSize]) || convertToUnit(this.size)\n      )\n    },\n    // Component data for both font and svg icon.\n    getDefaultData (): VNodeData {\n      const data: VNodeData = {\n        staticClass: 'v-icon notranslate',\n        class: {\n          'v-icon--disabled': this.disabled,\n          'v-icon--left': this.left,\n          'v-icon--link': this.hasClickListener,\n          'v-icon--right': this.right,\n          'v-icon--dense': this.dense,\n        },\n        attrs: {\n          'aria-hidden': !this.hasClickListener,\n          disabled: this.hasClickListener && this.disabled,\n          type: this.hasClickListener ? 'button' : undefined,\n          ...this.attrs$,\n        },\n        on: this.listeners$,\n      }\n\n      return data\n    },\n    applyColors (data: VNodeData): void {\n      data.class = { ...data.class, ...this.themeClasses }\n      this.setTextColor(this.color, data)\n    },\n    renderFontIcon (icon: string, h: CreateElement): VNode {\n      const newChildren: VNodeChildren = []\n      const data = this.getDefaultData()\n\n      let iconType = 'material-icons'\n      // Material Icon delimiter is _\n      // https://material.io/icons/\n      const delimiterIndex = icon.indexOf('-')\n      const isMaterialIcon = delimiterIndex <= -1\n\n      if (isMaterialIcon) {\n        // Material icon uses ligatures.\n        newChildren.push(icon)\n      } else {\n        iconType = icon.slice(0, delimiterIndex)\n        if (isFontAwesome5(iconType)) iconType = ''\n      }\n\n      data.class[iconType] = true\n      data.class[icon] = !isMaterialIcon\n\n      const fontSize = this.getSize()\n      if (fontSize) data.style = { fontSize }\n\n      this.applyColors(data)\n\n      return h(this.hasClickListener ? 'button' : this.tag, data, newChildren)\n    },\n    renderSvgIcon (icon: string, h: CreateElement): VNode {\n      const fontSize = this.getSize()\n      const wrapperData = {\n        ...this.getDefaultData(),\n        style: fontSize ? {\n          fontSize,\n          height: fontSize,\n          width: fontSize,\n        } : undefined,\n      }\n      wrapperData.class['v-icon--svg'] = true\n      this.applyColors(wrapperData)\n\n      const svgData: VNodeData = {\n        attrs: {\n          xmlns: 'http://www.w3.org/2000/svg',\n          viewBox: '0 0 24 24',\n          height: fontSize || '24',\n          width: fontSize || '24',\n          role: 'img',\n          'aria-hidden': true,\n        },\n      }\n\n      return h(this.hasClickListener ? 'button' : 'span', wrapperData, [\n        h('svg', svgData, [\n          h('path', {\n            attrs: {\n              d: icon,\n            },\n          }),\n        ]),\n      ])\n    },\n    renderSvgIconComponent (\n      icon: VuetifyIconComponent,\n      h: CreateElement\n    ): VNode {\n      const data = this.getDefaultData()\n      data.class['v-icon--is-component'] = true\n\n      const size = this.getSize()\n      if (size) {\n        data.style = {\n          fontSize: size,\n          height: size,\n          width: size,\n        }\n      }\n\n      this.applyColors(data)\n\n      const component = icon.component\n      data.props = icon.props\n      data.nativeOn = data.on\n\n      return h(component, data)\n    },\n  },\n\n  render (h: CreateElement): VNode {\n    const icon = this.getIcon()\n\n    if (typeof icon === 'string') {\n      if (isSvgPath(icon)) {\n        return this.renderSvgIcon(icon, h)\n      }\n      return this.renderFontIcon(icon, h)\n    }\n\n    return this.renderSvgIconComponent(icon, h)\n  },\n})\n\nexport default Vue.extend({\n  name: 'v-icon',\n\n  $_wrapperFor: VIcon,\n\n  functional: true,\n\n  render (h, { data, children }): VNode {\n    let iconName = ''\n\n    // Support usage of v-text and v-html\n    if (data.domProps) {\n      iconName = data.domProps.textContent ||\n        data.domProps.innerHTML ||\n        iconName\n\n      // Remove nodes so it doesn't\n      // overwrite our changes\n      delete data.domProps.textContent\n      delete data.domProps.innerHTML\n    }\n\n    return h(VIcon, data, iconName ? [iconName] : children)\n  },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (typeof exec === 'function') {\n    var result = exec.call(R, S);\n    if (typeof result !== 'object') {\n      throw TypeError('RegExp exec method returned something other than an Object or null');\n    }\n    return result;\n  }\n\n  if (classof(R) !== 'RegExp') {\n    throw TypeError('RegExp#exec called on incompatible receiver');\n  }\n\n  return regexpExec.call(R, S);\n};\n\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  // some Chrome versions have non-configurable methods on DOMTokenList\n  if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n    createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n  } catch (error) {\n    CollectionPrototype.forEach = forEach;\n  }\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n  convertToUnit,\n  keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n  Activatable,\n  Dependent,\n  Detachable,\n  Overlayable,\n  Returnable,\n  Stackable,\n  Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'v-dialog',\n\n  directives: { ClickOutside },\n\n  props: {\n    dark: Boolean,\n    disabled: Boolean,\n    fullscreen: Boolean,\n    light: Boolean,\n    maxWidth: {\n      type: [String, Number],\n      default: 'none',\n    },\n    noClickAnimation: Boolean,\n    origin: {\n      type: String,\n      default: 'center center',\n    },\n    persistent: Boolean,\n    retainFocus: {\n      type: Boolean,\n      default: true,\n    },\n    scrollable: Boolean,\n    transition: {\n      type: [String, Boolean],\n      default: 'dialog-transition',\n    },\n    width: {\n      type: [String, Number],\n      default: 'auto',\n    },\n  },\n\n  data () {\n    return {\n      activatedBy: null as EventTarget | null,\n      animate: false,\n      animateTimeout: -1,\n      isActive: !!this.value,\n      stackMinZIndex: 200,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        [(`v-dialog ${this.contentClass}`).trim()]: true,\n        'v-dialog--active': this.isActive,\n        'v-dialog--persistent': this.persistent,\n        'v-dialog--fullscreen': this.fullscreen,\n        'v-dialog--scrollable': this.scrollable,\n        'v-dialog--animated': this.animate,\n      }\n    },\n    contentClasses (): object {\n      return {\n        'v-dialog__content': true,\n        'v-dialog__content--active': this.isActive,\n      }\n    },\n    hasActivator (): boolean {\n      return Boolean(\n        !!this.$slots.activator ||\n        !!this.$scopedSlots.activator\n      )\n    },\n  },\n\n  watch: {\n    isActive (val) {\n      if (val) {\n        this.show()\n        this.hideScroll()\n      } else {\n        this.removeOverlay()\n        this.unbind()\n      }\n    },\n    fullscreen (val) {\n      if (!this.isActive) return\n\n      if (val) {\n        this.hideScroll()\n        this.removeOverlay(false)\n      } else {\n        this.showScroll()\n        this.genOverlay()\n      }\n    },\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('full-width')) {\n      removed('full-width', this)\n    }\n  },\n\n  beforeMount () {\n    this.$nextTick(() => {\n      this.isBooted = this.isActive\n      this.isActive && this.show()\n    })\n  },\n\n  beforeDestroy () {\n    if (typeof window !== 'undefined') this.unbind()\n  },\n\n  methods: {\n    animateClick () {\n      this.animate = false\n      // Needed for when clicking very fast\n      // outside of the dialog\n      this.$nextTick(() => {\n        this.animate = true\n        window.clearTimeout(this.animateTimeout)\n        this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n      })\n    },\n    closeConditional (e: Event) {\n      const target = e.target as HTMLElement\n      // Ignore the click if the dialog is closed or destroyed,\n      // if it was on an element inside the content,\n      // if it was dragged onto the overlay (#6969),\n      // or if this isn't the topmost dialog (#9907)\n      return !(\n        this._isDestroyed ||\n        !this.isActive ||\n        this.$refs.content.contains(target) ||\n        (this.overlay && target && !this.overlay.$el.contains(target))\n      ) && this.activeZIndex >= this.getMaxZIndex()\n    },\n    hideScroll () {\n      if (this.fullscreen) {\n        document.documentElement.classList.add('overflow-y-hidden')\n      } else {\n        Overlayable.options.methods.hideScroll.call(this)\n      }\n    },\n    show () {\n      !this.fullscreen && !this.hideOverlay && this.genOverlay()\n      this.$nextTick(() => {\n        this.$refs.content.focus()\n        this.bind()\n      })\n    },\n    bind () {\n      window.addEventListener('focusin', this.onFocusin)\n    },\n    unbind () {\n      window.removeEventListener('focusin', this.onFocusin)\n    },\n    onClickOutside (e: Event) {\n      this.$emit('click:outside', e)\n\n      if (this.persistent) {\n        this.noClickAnimation || this.animateClick()\n      } else {\n        this.isActive = false\n      }\n    },\n    onKeydown (e: KeyboardEvent) {\n      if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n        if (!this.persistent) {\n          this.isActive = false\n          const activator = this.getActivator()\n          this.$nextTick(() => activator && (activator as HTMLElement).focus())\n        } else if (!this.noClickAnimation) {\n          this.animateClick()\n        }\n      }\n      this.$emit('keydown', e)\n    },\n    // On focus change, wrap focus to stay inside the dialog\n    // https://github.com/vuetifyjs/vuetify/issues/6892\n    onFocusin (e: Event) {\n      if (!e || !this.retainFocus) return\n\n      const target = e.target as HTMLElement\n\n      if (\n        !!target &&\n        // It isn't the document or the dialog body\n        ![document, this.$refs.content].includes(target) &&\n        // It isn't inside the dialog body\n        !this.$refs.content.contains(target) &&\n        // We're the topmost dialog\n        this.activeZIndex >= this.getMaxZIndex() &&\n        // It isn't inside a dependent element (like a menu)\n        !this.getOpenDependentElements().some(el => el.contains(target))\n        // So we must have focused something outside the dialog and its children\n      ) {\n        // Find and focus the first available element inside the dialog\n        const focusable = this.$refs.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n        const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n        el && el.focus()\n      }\n    },\n    genContent () {\n      return this.showLazyContent(() => [\n        this.$createElement(VThemeProvider, {\n          props: {\n            root: true,\n            light: this.light,\n            dark: this.dark,\n          },\n        }, [\n          this.$createElement('div', {\n            class: this.contentClasses,\n            attrs: {\n              role: 'document',\n              tabindex: this.isActive ? 0 : undefined,\n              ...this.getScopeIdAttrs(),\n            },\n            on: { keydown: this.onKeydown },\n            style: { zIndex: this.activeZIndex },\n            ref: 'content',\n          }, [this.genTransition()]),\n        ]),\n      ])\n    },\n    genTransition () {\n      const content = this.genInnerContent()\n\n      if (!this.transition) return content\n\n      return this.$createElement('transition', {\n        props: {\n          name: this.transition,\n          origin: this.origin,\n          appear: true,\n        },\n      }, [content])\n    },\n    genInnerContent () {\n      const data: VNodeData = {\n        class: this.classes,\n        ref: 'dialog',\n        directives: [\n          {\n            name: 'click-outside',\n            value: {\n              handler: this.onClickOutside,\n              closeConditional: this.closeConditional,\n              include: this.getOpenDependentElements,\n            },\n          },\n          { name: 'show', value: this.isActive },\n        ],\n        style: {\n          transformOrigin: this.origin,\n        },\n      }\n\n      if (!this.fullscreen) {\n        data.style = {\n          ...data.style as object,\n          maxWidth: this.maxWidth === 'none' ? undefined : convertToUnit(this.maxWidth),\n          width: this.width === 'auto' ? undefined : convertToUnit(this.width),\n        }\n      }\n\n      return this.$createElement('div', data, this.getContentSlot())\n    },\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: 'v-dialog__container',\n      class: {\n        'v-dialog__container--attached':\n          this.attach === '' ||\n          this.attach === true ||\n          this.attach === 'attach',\n      },\n      attrs: { role: 'dialog' },\n    }, [\n      this.genActivator(),\n      this.genContent(),\n    ])\n  },\n})\n","import Vue from 'vue'\n\n/**\n * Delayable\n *\n * @mixin\n *\n * Changes the open or close delay time for elements\n */\nexport default Vue.extend<Vue & { isActive?: boolean }>().extend({\n  name: 'delayable',\n\n  props: {\n    openDelay: {\n      type: [Number, String],\n      default: 0,\n    },\n    closeDelay: {\n      type: [Number, String],\n      default: 0,\n    },\n  },\n\n  data: () => ({\n    openTimeout: undefined as number | undefined,\n    closeTimeout: undefined as number | undefined,\n  }),\n\n  methods: {\n    /**\n     * Clear any pending delay timers from executing\n     */\n    clearDelay (): void {\n      clearTimeout(this.openTimeout)\n      clearTimeout(this.closeTimeout)\n    },\n    /**\n     * Runs callback after a specified delay\n     */\n    runDelay (type: 'open' | 'close', cb?: () => void): void {\n      this.clearDelay()\n\n      const delay = parseInt((this as any)[`${type}Delay`], 10)\n\n      ;(this as any)[`${type}Timeout`] = setTimeout(cb || (() => {\n        this.isActive = { open: true, close: false }[type]\n      }), delay)\n    },\n  },\n})\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n  return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'v-list-item-action',\n\n  functional: true,\n\n  render (h, { data, children = [] }): VNode {\n    data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n    const filteredChild = children.filter(VNode => {\n      return VNode.isComment === false && VNode.text !== ' '\n    })\n    if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n    return h('div', data, children)\n  },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n  anchor: function anchor(name) {\n    return createHTML(this, 'a', 'name', name);\n  }\n});\n","module.exports = function (it, Constructor, name) {\n  if (!(it instanceof Constructor)) {\n    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n  } return it;\n};\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n  BaseItemGroup,\n  Colorable\n).extend({\n  name: 'v-list-item-group',\n\n  provide () {\n    return {\n      isInGroup: true,\n      listItemGroup: this,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        ...BaseItemGroup.options.computed.classes.call(this),\n        'v-list-item-group': true,\n      }\n    },\n  },\n\n  methods: {\n    genData (): object {\n      return this.setTextColor(this.color, {\n        ...BaseItemGroup.options.methods.genData.call(this),\n        attrs: {\n          role: 'listbox',\n        },\n      })\n    },\n  },\n})\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n  if (typeof it != 'function') {\n    throw TypeError(String(it) + ' is not a function');\n  } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var called = 0;\n  var iteratorWithReturn = {\n    next: function () {\n      return { done: !!called++ };\n    },\n    'return': function () {\n      SAFE_CLOSING = true;\n    }\n  };\n  iteratorWithReturn[ITERATOR] = function () {\n    return this;\n  };\n  // eslint-disable-next-line no-throw-literal\n  Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n  if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n  var ITERATION_SUPPORT = false;\n  try {\n    var object = {};\n    object[ITERATOR] = function () {\n      return {\n        next: function () {\n          return { done: ITERATION_SUPPORT = true };\n        }\n      };\n    };\n    exec(object);\n  } catch (error) { /* empty */ }\n  return ITERATION_SUPPORT;\n};\n","import Vue, { VNodeData, PropType } from 'vue'\n\n// Directives\nimport Ripple, { RippleOptions } from '../../directives/ripple'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\n\nexport default Vue.extend({\n  name: 'routable',\n\n  directives: {\n    Ripple,\n  },\n\n  props: {\n    activeClass: String,\n    append: Boolean,\n    disabled: Boolean,\n    exact: {\n      type: Boolean as PropType<boolean | undefined>,\n      default: undefined,\n    },\n    exactActiveClass: String,\n    link: Boolean,\n    href: [String, Object],\n    to: [String, Object],\n    nuxt: Boolean,\n    replace: Boolean,\n    ripple: {\n      type: [Boolean, Object],\n      default: null,\n    },\n    tag: String,\n    target: String,\n  },\n\n  data: () => ({\n    isActive: false,\n    proxyClass: '',\n  }),\n\n  computed: {\n    classes (): object {\n      const classes: Record<string, boolean> = {}\n\n      if (this.to) return classes\n\n      if (this.activeClass) classes[this.activeClass] = this.isActive\n      if (this.proxyClass) classes[this.proxyClass] = this.isActive\n\n      return classes\n    },\n    computedRipple (): RippleOptions | boolean {\n      return this.ripple != null ? this.ripple : !this.disabled && this.isClickable\n    },\n    isClickable (): boolean {\n      if (this.disabled) return false\n\n      return Boolean(\n        this.isLink ||\n        this.$listeners.click ||\n        this.$listeners['!click'] ||\n        this.$attrs.tabindex\n      )\n    },\n    isLink (): boolean {\n      return this.to || this.href || this.link\n    },\n    styles: () => ({}),\n  },\n\n  watch: {\n    $route: 'onRouteChange',\n  },\n\n  methods: {\n    click (e: MouseEvent): void {\n      this.$emit('click', e)\n    },\n    generateRouteLink () {\n      let exact = this.exact\n      let tag\n\n      const data: VNodeData = {\n        attrs: {\n          tabindex: 'tabindex' in this.$attrs ? this.$attrs.tabindex : undefined,\n        },\n        class: this.classes,\n        style: this.styles,\n        props: {},\n        directives: [{\n          name: 'ripple',\n          value: this.computedRipple,\n        }],\n        [this.to ? 'nativeOn' : 'on']: {\n          ...this.$listeners,\n          click: this.click,\n        },\n        ref: 'link',\n      }\n\n      if (typeof this.exact === 'undefined') {\n        exact = this.to === '/' ||\n          (this.to === Object(this.to) && this.to.path === '/')\n      }\n\n      if (this.to) {\n        // Add a special activeClass hook\n        // for component level styles\n        let activeClass = this.activeClass\n        let exactActiveClass = this.exactActiveClass || activeClass\n\n        if (this.proxyClass) {\n          activeClass = `${activeClass} ${this.proxyClass}`.trim()\n          exactActiveClass = `${exactActiveClass} ${this.proxyClass}`.trim()\n        }\n\n        tag = this.nuxt ? 'nuxt-link' : 'router-link'\n        Object.assign(data.props, {\n          to: this.to,\n          exact,\n          activeClass,\n          exactActiveClass,\n          append: this.append,\n          replace: this.replace,\n        })\n      } else {\n        tag = (this.href && 'a') || this.tag || 'div'\n\n        if (tag === 'a' && this.href) data.attrs!.href = this.href\n      }\n\n      if (this.target) data.attrs!.target = this.target\n\n      return { tag, data }\n    },\n    onRouteChange () {\n      if (!this.to || !this.$refs.link || !this.$route) return\n      const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()\n\n      const path = `_vnode.data.class.${activeClass}`\n\n      this.$nextTick(() => {\n        /* istanbul ignore else */\n        if (getObjectValueByPath(this.$refs.link, path)) {\n          this.toggle()\n        }\n      })\n    },\n    toggle: () => { /* noop */ },\n  },\n})\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  // We can't use this feature detection in V8 since it causes\n  // deoptimization and serious performance degradation\n  // https://github.com/zloirock/core-js/issues/677\n  return V8_VERSION >= 51 || !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n","import Vue from 'vue'\n\nimport { getZIndex } from '../../util/helpers'\n\ninterface options extends Vue {\n  $refs: {\n    content: Element\n  }\n}\n\n/* @vue/component */\nexport default Vue.extend<options>().extend({\n  name: 'stackable',\n\n  data () {\n    return {\n      stackElement: null as Element | null,\n      stackExclude: null as Element[] | null,\n      stackMinZIndex: 0,\n      isActive: false,\n    }\n  },\n  computed: {\n    activeZIndex (): number {\n      if (typeof window === 'undefined') return 0\n\n      const content = this.stackElement || this.$refs.content\n      // Return current zindex if not active\n\n      const index = !this.isActive\n        ? getZIndex(content)\n        : this.getMaxZIndex(this.stackExclude || [content]) + 2\n\n      if (index == null) return index\n\n      // Return max current z-index (excluding self) + 2\n      // (2 to leave room for an overlay below, if needed)\n      return parseInt(index)\n    },\n  },\n  methods: {\n    getMaxZIndex (exclude: Element[] = []) {\n      const base = this.$el\n      // Start with lowest allowed z-index or z-index of\n      // base component's element, whichever is greater\n      const zis = [this.stackMinZIndex, getZIndex(base)]\n      // Convert the NodeList to an array to\n      // prevent an Edge bug with Symbol.iterator\n      // https://github.com/vuetifyjs/vuetify/issues/2146\n      const activeElements = [\n        ...document.getElementsByClassName('v-menu__content--active'),\n        ...document.getElementsByClassName('v-dialog__content--active'),\n      ]\n\n      // Get z-index for all active dialogs\n      for (let index = 0; index < activeElements.length; index++) {\n        if (!exclude.includes(activeElements[index])) {\n          zis.push(getZIndex(activeElements[index]))\n        }\n      }\n\n      return Math.max(...zis)\n    },\n  },\n})\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n  this.stopped = stopped;\n  this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n  var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n  var iterator, iterFn, index, length, result, next, step;\n\n  if (IS_ITERATOR) {\n    iterator = iterable;\n  } else {\n    iterFn = getIteratorMethod(iterable);\n    if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n    // optimisation for array iterators\n    if (isArrayIteratorMethod(iterFn)) {\n      for (index = 0, length = toLength(iterable.length); length > index; index++) {\n        result = AS_ENTRIES\n          ? boundFunction(anObject(step = iterable[index])[0], step[1])\n          : boundFunction(iterable[index]);\n        if (result && result instanceof Result) return result;\n      } return new Result(false);\n    }\n    iterator = iterFn.call(iterable);\n  }\n\n  next = iterator.next;\n  while (!(step = next.call(iterator)).done) {\n    result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n    if (typeof result == 'object' && result && result instanceof Result) return result;\n  } return new Result(false);\n};\n\niterate.stop = function (result) {\n  return new Result(true, result);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toInteger(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty === typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport Vue, { PropType } from 'vue'\n\nexport type NumberOrNumberString = PropType<string | number | undefined>\n\nexport default Vue.extend({\n  name: 'measurable',\n\n  props: {\n    height: [Number, String] as NumberOrNumberString,\n    maxHeight: [Number, String] as NumberOrNumberString,\n    maxWidth: [Number, String] as NumberOrNumberString,\n    minHeight: [Number, String] as NumberOrNumberString,\n    minWidth: [Number, String] as NumberOrNumberString,\n    width: [Number, String] as NumberOrNumberString,\n  },\n\n  computed: {\n    measurableStyles (): object {\n      const styles: Record<string, string> = {}\n\n      const height = convertToUnit(this.height)\n      const minHeight = convertToUnit(this.minHeight)\n      const minWidth = convertToUnit(this.minWidth)\n      const maxHeight = convertToUnit(this.maxHeight)\n      const maxWidth = convertToUnit(this.maxWidth)\n      const width = convertToUnit(this.width)\n\n      if (height) styles.height = height\n      if (minHeight) styles.minHeight = minHeight\n      if (minWidth) styles.minWidth = minWidth\n      if (maxHeight) styles.maxHeight = maxHeight\n      if (maxWidth) styles.maxWidth = maxWidth\n      if (width) styles.width = width\n\n      return styles\n    },\n  },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~String(requireObjectCoercible(this))\n      .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n  redefine(RegExp.prototype, TO_STRING, function toString() {\n    var R = anObject(this);\n    var p = String(R.source);\n    var rf = R.flags;\n    var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n    return '/' + p + '/' + f;\n  }, { unsafe: true });\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n  var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n  var defineProperty = definePropertyModule.f;\n\n  if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n    defineProperty(Constructor, SPECIES, {\n      configurable: true,\n      get: function () { return this; }\n    });\n  }\n};\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier, /* server only */\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () {\n        injectStyles.call(\n          this,\n          (options.functional ? this.parent : this).$root.$options.shadowRoot\n        )\n      }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functional component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n  return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import './VProgressLinear.sass'\n\n// Components\nimport {\n  VFadeTransition,\n  VSlideXTransition,\n} from '../transitions'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { FunctionalComponentOptions } from 'vue/types'\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n  Colorable,\n  PositionableFactory(['absolute', 'fixed', 'top', 'bottom']),\n  Proxyable,\n  Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'v-progress-linear',\n\n  props: {\n    active: {\n      type: Boolean,\n      default: true,\n    },\n    backgroundColor: {\n      type: String,\n      default: null,\n    },\n    backgroundOpacity: {\n      type: [Number, String],\n      default: null,\n    },\n    bufferValue: {\n      type: [Number, String],\n      default: 100,\n    },\n    color: {\n      type: String,\n      default: 'primary',\n    },\n    height: {\n      type: [Number, String],\n      default: 4,\n    },\n    indeterminate: Boolean,\n    query: Boolean,\n    reverse: Boolean,\n    rounded: Boolean,\n    stream: Boolean,\n    striped: Boolean,\n    value: {\n      type: [Number, String],\n      default: 0,\n    },\n  },\n\n  data () {\n    return {\n      internalLazyValue: this.value || 0,\n    }\n  },\n\n  computed: {\n    __cachedBackground (): VNode {\n      return this.$createElement('div', this.setBackgroundColor(this.backgroundColor || this.color, {\n        staticClass: 'v-progress-linear__background',\n        style: this.backgroundStyle,\n      }))\n    },\n    __cachedBar (): VNode {\n      return this.$createElement(this.computedTransition, [this.__cachedBarType])\n    },\n    __cachedBarType (): VNode {\n      return this.indeterminate ? this.__cachedIndeterminate : this.__cachedDeterminate\n    },\n    __cachedBuffer (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-progress-linear__buffer',\n        style: this.styles,\n      })\n    },\n    __cachedDeterminate (): VNode {\n      return this.$createElement('div', this.setBackgroundColor(this.color, {\n        staticClass: `v-progress-linear__determinate`,\n        style: {\n          width: convertToUnit(this.normalizedValue, '%'),\n        },\n      }))\n    },\n    __cachedIndeterminate (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-progress-linear__indeterminate',\n        class: {\n          'v-progress-linear__indeterminate--active': this.active,\n        },\n      }, [\n        this.genProgressBar('long'),\n        this.genProgressBar('short'),\n      ])\n    },\n    __cachedStream (): VNode | null {\n      if (!this.stream) return null\n\n      return this.$createElement('div', this.setTextColor(this.color, {\n        staticClass: 'v-progress-linear__stream',\n        style: {\n          width: convertToUnit(100 - this.normalizedBuffer, '%'),\n        },\n      }))\n    },\n    backgroundStyle (): object {\n      const backgroundOpacity = this.backgroundOpacity == null\n        ? (this.backgroundColor ? 1 : 0.3)\n        : parseFloat(this.backgroundOpacity)\n\n      return {\n        opacity: backgroundOpacity,\n        [this.isReversed ? 'right' : 'left']: convertToUnit(this.normalizedValue, '%'),\n        width: convertToUnit(this.normalizedBuffer - this.normalizedValue, '%'),\n      }\n    },\n    classes (): object {\n      return {\n        'v-progress-linear--absolute': this.absolute,\n        'v-progress-linear--fixed': this.fixed,\n        'v-progress-linear--query': this.query,\n        'v-progress-linear--reactive': this.reactive,\n        'v-progress-linear--reverse': this.isReversed,\n        'v-progress-linear--rounded': this.rounded,\n        'v-progress-linear--striped': this.striped,\n        ...this.themeClasses,\n      }\n    },\n    computedTransition (): FunctionalComponentOptions {\n      return this.indeterminate ? VFadeTransition : VSlideXTransition\n    },\n    isReversed (): boolean {\n      return this.$vuetify.rtl !== this.reverse\n    },\n    normalizedBuffer (): number {\n      return this.normalize(this.bufferValue)\n    },\n    normalizedValue (): number {\n      return this.normalize(this.internalLazyValue)\n    },\n    reactive (): boolean {\n      return Boolean(this.$listeners.change)\n    },\n    styles (): object {\n      const styles: Record<string, any> = {}\n\n      if (!this.active) {\n        styles.height = 0\n      }\n\n      if (!this.indeterminate && parseFloat(this.normalizedBuffer) !== 100) {\n        styles.width = convertToUnit(this.normalizedBuffer, '%')\n      }\n\n      return styles\n    },\n  },\n\n  methods: {\n    genContent () {\n      const slot = getSlot(this, 'default', { value: this.internalLazyValue })\n\n      if (!slot) return null\n\n      return this.$createElement('div', {\n        staticClass: 'v-progress-linear__content',\n      }, slot)\n    },\n    genListeners () {\n      const listeners = this.$listeners\n\n      if (this.reactive) {\n        listeners.click = this.onClick\n      }\n\n      return listeners\n    },\n    genProgressBar (name: 'long' | 'short') {\n      return this.$createElement('div', this.setBackgroundColor(this.color, {\n        staticClass: 'v-progress-linear__indeterminate',\n        class: {\n          [name]: true,\n        },\n      }))\n    },\n    onClick (e: MouseEvent) {\n      if (!this.reactive) return\n\n      const { width } = this.$el.getBoundingClientRect()\n\n      this.internalValue = e.offsetX / width * 100\n    },\n    normalize (value: string | number) {\n      if (value < 0) return 0\n      if (value > 100) return 100\n      return parseFloat(value)\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-progress-linear',\n      attrs: {\n        role: 'progressbar',\n        'aria-valuemin': 0,\n        'aria-valuemax': this.normalizedBuffer,\n        'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n      },\n      class: this.classes,\n      style: {\n        bottom: this.bottom ? 0 : undefined,\n        height: this.active ? convertToUnit(this.height) : 0,\n        top: this.top ? 0 : undefined,\n      },\n      on: this.genListeners(),\n    }\n\n    return h('div', data, [\n      this.__cachedStream,\n      this.__cachedBackground,\n      this.__cachedBuffer,\n      this.__cachedBar,\n      this.genContent(),\n    ])\n  },\n})\n","import VProgressLinear from './VProgressLinear'\n\nexport { VProgressLinear }\nexport default VProgressLinear\n","import Vue, { VNode } from 'vue'\nimport VProgressLinear from '../../components/VProgressLinear'\n\ninterface colorable extends Vue {\n  color?: string\n}\n\n/**\n * Loadable\n *\n * @mixin\n *\n * Used to add linear progress bar to components\n * Can use a default bar with a specific color\n * or designate a custom progress linear bar\n */\n/* @vue/component */\nexport default Vue.extend<colorable>().extend({\n  name: 'loadable',\n\n  props: {\n    loading: {\n      type: [Boolean, String],\n      default: false,\n    },\n    loaderHeight: {\n      type: [Number, String],\n      default: 2,\n    },\n  },\n\n  methods: {\n    genProgress (): VNode | VNode[] | null {\n      if (this.loading === false) return null\n\n      return this.$slots.progress || this.$createElement(VProgressLinear, {\n        props: {\n          absolute: true,\n          color: (this.loading === true || this.loading === '')\n            ? (this.color || 'primary')\n            : this.loading,\n          height: this.loaderHeight,\n          indeterminate: true,\n        },\n      })\n    },\n  },\n})\n","// Components\nimport VToolbar from './VToolbar'\n\n// Utilities\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VToolbarTitle = createSimpleFunctional('v-toolbar__title')\nconst VToolbarItems = createSimpleFunctional('v-toolbar__items')\n\nexport {\n  VToolbar,\n  VToolbarItems,\n  VToolbarTitle,\n}\n\nexport default {\n  $_vuetify_subcomponents: {\n    VToolbar,\n    VToolbarItems,\n    VToolbarTitle,\n  },\n}\n","/*!\n * Vue.js v2.6.11\n * (c) 2014-2019 Evan You\n * Released under the MIT License.\n */\n/*  */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n  return v === undefined || v === null\n}\n\nfunction isDef (v) {\n  return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n  return v === true\n}\n\nfunction isFalse (v) {\n  return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n  return (\n    typeof value === 'string' ||\n    typeof value === 'number' ||\n    // $flow-disable-line\n    typeof value === 'symbol' ||\n    typeof value === 'boolean'\n  )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n  return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n  return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n  return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n  return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n  var n = parseFloat(String(val));\n  return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n  return (\n    isDef(val) &&\n    typeof val.then === 'function' &&\n    typeof val.catch === 'function'\n  )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n  return val == null\n    ? ''\n    : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n      ? JSON.stringify(val, null, 2)\n      : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n  var n = parseFloat(val);\n  return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n  str,\n  expectsLowerCase\n) {\n  var map = Object.create(null);\n  var list = str.split(',');\n  for (var i = 0; i < list.length; i++) {\n    map[list[i]] = true;\n  }\n  return expectsLowerCase\n    ? function (val) { return map[val.toLowerCase()]; }\n    : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n  if (arr.length) {\n    var index = arr.indexOf(item);\n    if (index > -1) {\n      return arr.splice(index, 1)\n    }\n  }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n  return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n  var cache = Object.create(null);\n  return (function cachedFn (str) {\n    var hit = cache[str];\n    return hit || (cache[str] = fn(str))\n  })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n  return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n  return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n  return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n  function boundFn (a) {\n    var l = arguments.length;\n    return l\n      ? l > 1\n        ? fn.apply(ctx, arguments)\n        : fn.call(ctx, a)\n      : fn.call(ctx)\n  }\n\n  boundFn._length = fn.length;\n  return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n  return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n  ? nativeBind\n  : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n  start = start || 0;\n  var i = list.length - start;\n  var ret = new Array(i);\n  while (i--) {\n    ret[i] = list[i + start];\n  }\n  return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n  for (var key in _from) {\n    to[key] = _from[key];\n  }\n  return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n  var res = {};\n  for (var i = 0; i < arr.length; i++) {\n    if (arr[i]) {\n      extend(res, arr[i]);\n    }\n  }\n  return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n  if (a === b) { return true }\n  var isObjectA = isObject(a);\n  var isObjectB = isObject(b);\n  if (isObjectA && isObjectB) {\n    try {\n      var isArrayA = Array.isArray(a);\n      var isArrayB = Array.isArray(b);\n      if (isArrayA && isArrayB) {\n        return a.length === b.length && a.every(function (e, i) {\n          return looseEqual(e, b[i])\n        })\n      } else if (a instanceof Date && b instanceof Date) {\n        return a.getTime() === b.getTime()\n      } else if (!isArrayA && !isArrayB) {\n        var keysA = Object.keys(a);\n        var keysB = Object.keys(b);\n        return keysA.length === keysB.length && keysA.every(function (key) {\n          return looseEqual(a[key], b[key])\n        })\n      } else {\n        /* istanbul ignore next */\n        return false\n      }\n    } catch (e) {\n      /* istanbul ignore next */\n      return false\n    }\n  } else if (!isObjectA && !isObjectB) {\n    return String(a) === String(b)\n  } else {\n    return false\n  }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n  for (var i = 0; i < arr.length; i++) {\n    if (looseEqual(arr[i], val)) { return i }\n  }\n  return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n  var called = false;\n  return function () {\n    if (!called) {\n      called = true;\n      fn.apply(this, arguments);\n    }\n  }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n  'component',\n  'directive',\n  'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n  'beforeCreate',\n  'created',\n  'beforeMount',\n  'mounted',\n  'beforeUpdate',\n  'updated',\n  'beforeDestroy',\n  'destroyed',\n  'activated',\n  'deactivated',\n  'errorCaptured',\n  'serverPrefetch'\n];\n\n/*  */\n\n\n\nvar config = ({\n  /**\n   * Option merge strategies (used in core/util/options)\n   */\n  // $flow-disable-line\n  optionMergeStrategies: Object.create(null),\n\n  /**\n   * Whether to suppress warnings.\n   */\n  silent: false,\n\n  /**\n   * Show production mode tip message on boot?\n   */\n  productionTip: process.env.NODE_ENV !== 'production',\n\n  /**\n   * Whether to enable devtools\n   */\n  devtools: process.env.NODE_ENV !== 'production',\n\n  /**\n   * Whether to record perf\n   */\n  performance: false,\n\n  /**\n   * Error handler for watcher errors\n   */\n  errorHandler: null,\n\n  /**\n   * Warn handler for watcher warns\n   */\n  warnHandler: null,\n\n  /**\n   * Ignore certain custom elements\n   */\n  ignoredElements: [],\n\n  /**\n   * Custom user key aliases for v-on\n   */\n  // $flow-disable-line\n  keyCodes: Object.create(null),\n\n  /**\n   * Check if a tag is reserved so that it cannot be registered as a\n   * component. This is platform-dependent and may be overwritten.\n   */\n  isReservedTag: no,\n\n  /**\n   * Check if an attribute is reserved so that it cannot be used as a component\n   * prop. This is platform-dependent and may be overwritten.\n   */\n  isReservedAttr: no,\n\n  /**\n   * Check if a tag is an unknown element.\n   * Platform-dependent.\n   */\n  isUnknownElement: no,\n\n  /**\n   * Get the namespace of an element\n   */\n  getTagNamespace: noop,\n\n  /**\n   * Parse the real tag name for the specific platform.\n   */\n  parsePlatformTagName: identity,\n\n  /**\n   * Check if an attribute must be bound using property, e.g. value\n   * Platform-dependent.\n   */\n  mustUseProp: no,\n\n  /**\n   * Perform updates asynchronously. Intended to be used by Vue Test Utils\n   * This will significantly reduce performance if set to false.\n   */\n  async: true,\n\n  /**\n   * Exposed for legacy reasons\n   */\n  _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/*  */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n  var c = (str + '').charCodeAt(0);\n  return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n  Object.defineProperty(obj, key, {\n    value: val,\n    enumerable: !!enumerable,\n    writable: true,\n    configurable: true\n  });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n  if (bailRE.test(path)) {\n    return\n  }\n  var segments = path.split('.');\n  return function (obj) {\n    for (var i = 0; i < segments.length; i++) {\n      if (!obj) { return }\n      obj = obj[segments[i]];\n    }\n    return obj\n  }\n}\n\n/*  */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n  try {\n    var opts = {};\n    Object.defineProperty(opts, 'passive', ({\n      get: function get () {\n        /* istanbul ignore next */\n        supportsPassive = true;\n      }\n    })); // https://github.com/facebook/flow/issues/285\n    window.addEventListener('test-passive', null, opts);\n  } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n  if (_isServer === undefined) {\n    /* istanbul ignore if */\n    if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n      // detect presence of vue-server-renderer and avoid\n      // Webpack shimming the process\n      _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n    } else {\n      _isServer = false;\n    }\n  }\n  return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n  return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n  typeof Symbol !== 'undefined' && isNative(Symbol) &&\n  typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n  // use native Set when available.\n  _Set = Set;\n} else {\n  // a non-standard Set polyfill that only works with primitive keys.\n  _Set = /*@__PURE__*/(function () {\n    function Set () {\n      this.set = Object.create(null);\n    }\n    Set.prototype.has = function has (key) {\n      return this.set[key] === true\n    };\n    Set.prototype.add = function add (key) {\n      this.set[key] = true;\n    };\n    Set.prototype.clear = function clear () {\n      this.set = Object.create(null);\n    };\n\n    return Set;\n  }());\n}\n\n/*  */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n  var hasConsole = typeof console !== 'undefined';\n  var classifyRE = /(?:^|[-_])(\\w)/g;\n  var classify = function (str) { return str\n    .replace(classifyRE, function (c) { return c.toUpperCase(); })\n    .replace(/[-_]/g, ''); };\n\n  warn = function (msg, vm) {\n    var trace = vm ? generateComponentTrace(vm) : '';\n\n    if (config.warnHandler) {\n      config.warnHandler.call(null, msg, vm, trace);\n    } else if (hasConsole && (!config.silent)) {\n      console.error((\"[Vue warn]: \" + msg + trace));\n    }\n  };\n\n  tip = function (msg, vm) {\n    if (hasConsole && (!config.silent)) {\n      console.warn(\"[Vue tip]: \" + msg + (\n        vm ? generateComponentTrace(vm) : ''\n      ));\n    }\n  };\n\n  formatComponentName = function (vm, includeFile) {\n    if (vm.$root === vm) {\n      return '<Root>'\n    }\n    var options = typeof vm === 'function' && vm.cid != null\n      ? vm.options\n      : vm._isVue\n        ? vm.$options || vm.constructor.options\n        : vm;\n    var name = options.name || options._componentTag;\n    var file = options.__file;\n    if (!name && file) {\n      var match = file.match(/([^/\\\\]+)\\.vue$/);\n      name = match && match[1];\n    }\n\n    return (\n      (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n      (file && includeFile !== false ? (\" at \" + file) : '')\n    )\n  };\n\n  var repeat = function (str, n) {\n    var res = '';\n    while (n) {\n      if (n % 2 === 1) { res += str; }\n      if (n > 1) { str += str; }\n      n >>= 1;\n    }\n    return res\n  };\n\n  generateComponentTrace = function (vm) {\n    if (vm._isVue && vm.$parent) {\n      var tree = [];\n      var currentRecursiveSequence = 0;\n      while (vm) {\n        if (tree.length > 0) {\n          var last = tree[tree.length - 1];\n          if (last.constructor === vm.constructor) {\n            currentRecursiveSequence++;\n            vm = vm.$parent;\n            continue\n          } else if (currentRecursiveSequence > 0) {\n            tree[tree.length - 1] = [last, currentRecursiveSequence];\n            currentRecursiveSequence = 0;\n          }\n        }\n        tree.push(vm);\n        vm = vm.$parent;\n      }\n      return '\\n\\nfound in\\n\\n' + tree\n        .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n            ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n            : formatComponentName(vm))); })\n        .join('\\n')\n    } else {\n      return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n    }\n  };\n}\n\n/*  */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n  this.id = uid++;\n  this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n  this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n  remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n  if (Dep.target) {\n    Dep.target.addDep(this);\n  }\n};\n\nDep.prototype.notify = function notify () {\n  // stabilize the subscriber list first\n  var subs = this.subs.slice();\n  if (process.env.NODE_ENV !== 'production' && !config.async) {\n    // subs aren't sorted in scheduler if not running async\n    // we need to sort them now to make sure they fire in correct\n    // order\n    subs.sort(function (a, b) { return a.id - b.id; });\n  }\n  for (var i = 0, l = subs.length; i < l; i++) {\n    subs[i].update();\n  }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n  targetStack.push(target);\n  Dep.target = target;\n}\n\nfunction popTarget () {\n  targetStack.pop();\n  Dep.target = targetStack[targetStack.length - 1];\n}\n\n/*  */\n\nvar VNode = function VNode (\n  tag,\n  data,\n  children,\n  text,\n  elm,\n  context,\n  componentOptions,\n  asyncFactory\n) {\n  this.tag = tag;\n  this.data = data;\n  this.children = children;\n  this.text = text;\n  this.elm = elm;\n  this.ns = undefined;\n  this.context = context;\n  this.fnContext = undefined;\n  this.fnOptions = undefined;\n  this.fnScopeId = undefined;\n  this.key = data && data.key;\n  this.componentOptions = componentOptions;\n  this.componentInstance = undefined;\n  this.parent = undefined;\n  this.raw = false;\n  this.isStatic = false;\n  this.isRootInsert = true;\n  this.isComment = false;\n  this.isCloned = false;\n  this.isOnce = false;\n  this.asyncFactory = asyncFactory;\n  this.asyncMeta = undefined;\n  this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n  return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n  if ( text === void 0 ) text = '';\n\n  var node = new VNode();\n  node.text = text;\n  node.isComment = true;\n  return node\n};\n\nfunction createTextVNode (val) {\n  return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n  var cloned = new VNode(\n    vnode.tag,\n    vnode.data,\n    // #7975\n    // clone children array to avoid mutating original in case of cloning\n    // a child.\n    vnode.children && vnode.children.slice(),\n    vnode.text,\n    vnode.elm,\n    vnode.context,\n    vnode.componentOptions,\n    vnode.asyncFactory\n  );\n  cloned.ns = vnode.ns;\n  cloned.isStatic = vnode.isStatic;\n  cloned.key = vnode.key;\n  cloned.isComment = vnode.isComment;\n  cloned.fnContext = vnode.fnContext;\n  cloned.fnOptions = vnode.fnOptions;\n  cloned.fnScopeId = vnode.fnScopeId;\n  cloned.asyncMeta = vnode.asyncMeta;\n  cloned.isCloned = true;\n  return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n  'push',\n  'pop',\n  'shift',\n  'unshift',\n  'splice',\n  'sort',\n  'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n  // cache original method\n  var original = arrayProto[method];\n  def(arrayMethods, method, function mutator () {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    var result = original.apply(this, args);\n    var ob = this.__ob__;\n    var inserted;\n    switch (method) {\n      case 'push':\n      case 'unshift':\n        inserted = args;\n        break\n      case 'splice':\n        inserted = args.slice(2);\n        break\n    }\n    if (inserted) { ob.observeArray(inserted); }\n    // notify change\n    ob.dep.notify();\n    return result\n  });\n});\n\n/*  */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n  shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n  this.value = value;\n  this.dep = new Dep();\n  this.vmCount = 0;\n  def(value, '__ob__', this);\n  if (Array.isArray(value)) {\n    if (hasProto) {\n      protoAugment(value, arrayMethods);\n    } else {\n      copyAugment(value, arrayMethods, arrayKeys);\n    }\n    this.observeArray(value);\n  } else {\n    this.walk(value);\n  }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n  var keys = Object.keys(obj);\n  for (var i = 0; i < keys.length; i++) {\n    defineReactive$$1(obj, keys[i]);\n  }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n  for (var i = 0, l = items.length; i < l; i++) {\n    observe(items[i]);\n  }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n  /* eslint-disable no-proto */\n  target.__proto__ = src;\n  /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n  for (var i = 0, l = keys.length; i < l; i++) {\n    var key = keys[i];\n    def(target, key, src[key]);\n  }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n  if (!isObject(value) || value instanceof VNode) {\n    return\n  }\n  var ob;\n  if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n    ob = value.__ob__;\n  } else if (\n    shouldObserve &&\n    !isServerRendering() &&\n    (Array.isArray(value) || isPlainObject(value)) &&\n    Object.isExtensible(value) &&\n    !value._isVue\n  ) {\n    ob = new Observer(value);\n  }\n  if (asRootData && ob) {\n    ob.vmCount++;\n  }\n  return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n  obj,\n  key,\n  val,\n  customSetter,\n  shallow\n) {\n  var dep = new Dep();\n\n  var property = Object.getOwnPropertyDescriptor(obj, key);\n  if (property && property.configurable === false) {\n    return\n  }\n\n  // cater for pre-defined getter/setters\n  var getter = property && property.get;\n  var setter = property && property.set;\n  if ((!getter || setter) && arguments.length === 2) {\n    val = obj[key];\n  }\n\n  var childOb = !shallow && observe(val);\n  Object.defineProperty(obj, key, {\n    enumerable: true,\n    configurable: true,\n    get: function reactiveGetter () {\n      var value = getter ? getter.call(obj) : val;\n      if (Dep.target) {\n        dep.depend();\n        if (childOb) {\n          childOb.dep.depend();\n          if (Array.isArray(value)) {\n            dependArray(value);\n          }\n        }\n      }\n      return value\n    },\n    set: function reactiveSetter (newVal) {\n      var value = getter ? getter.call(obj) : val;\n      /* eslint-disable no-self-compare */\n      if (newVal === value || (newVal !== newVal && value !== value)) {\n        return\n      }\n      /* eslint-enable no-self-compare */\n      if (process.env.NODE_ENV !== 'production' && customSetter) {\n        customSetter();\n      }\n      // #7981: for accessor properties without setter\n      if (getter && !setter) { return }\n      if (setter) {\n        setter.call(obj, newVal);\n      } else {\n        val = newVal;\n      }\n      childOb = !shallow && observe(newVal);\n      dep.notify();\n    }\n  });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n  if (process.env.NODE_ENV !== 'production' &&\n    (isUndef(target) || isPrimitive(target))\n  ) {\n    warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n  }\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.length = Math.max(target.length, key);\n    target.splice(key, 1, val);\n    return val\n  }\n  if (key in target && !(key in Object.prototype)) {\n    target[key] = val;\n    return val\n  }\n  var ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      'Avoid adding reactive properties to a Vue instance or its root $data ' +\n      'at runtime - declare it upfront in the data option.'\n    );\n    return val\n  }\n  if (!ob) {\n    target[key] = val;\n    return val\n  }\n  defineReactive$$1(ob.value, key, val);\n  ob.dep.notify();\n  return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n  if (process.env.NODE_ENV !== 'production' &&\n    (isUndef(target) || isPrimitive(target))\n  ) {\n    warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n  }\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.splice(key, 1);\n    return\n  }\n  var ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      'Avoid deleting properties on a Vue instance or its root $data ' +\n      '- just set it to null.'\n    );\n    return\n  }\n  if (!hasOwn(target, key)) {\n    return\n  }\n  delete target[key];\n  if (!ob) {\n    return\n  }\n  ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n  for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n    e = value[i];\n    e && e.__ob__ && e.__ob__.dep.depend();\n    if (Array.isArray(e)) {\n      dependArray(e);\n    }\n  }\n}\n\n/*  */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n  strats.el = strats.propsData = function (parent, child, vm, key) {\n    if (!vm) {\n      warn(\n        \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n        'creation with the `new` keyword.'\n      );\n    }\n    return defaultStrat(parent, child)\n  };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n  if (!from) { return to }\n  var key, toVal, fromVal;\n\n  var keys = hasSymbol\n    ? Reflect.ownKeys(from)\n    : Object.keys(from);\n\n  for (var i = 0; i < keys.length; i++) {\n    key = keys[i];\n    // in case the object is already observed...\n    if (key === '__ob__') { continue }\n    toVal = to[key];\n    fromVal = from[key];\n    if (!hasOwn(to, key)) {\n      set(to, key, fromVal);\n    } else if (\n      toVal !== fromVal &&\n      isPlainObject(toVal) &&\n      isPlainObject(fromVal)\n    ) {\n      mergeData(toVal, fromVal);\n    }\n  }\n  return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n  parentVal,\n  childVal,\n  vm\n) {\n  if (!vm) {\n    // in a Vue.extend merge, both should be functions\n    if (!childVal) {\n      return parentVal\n    }\n    if (!parentVal) {\n      return childVal\n    }\n    // when parentVal & childVal are both present,\n    // we need to return a function that returns the\n    // merged result of both functions... no need to\n    // check if parentVal is a function here because\n    // it has to be a function to pass previous merges.\n    return function mergedDataFn () {\n      return mergeData(\n        typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n        typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n      )\n    }\n  } else {\n    return function mergedInstanceDataFn () {\n      // instance merge\n      var instanceData = typeof childVal === 'function'\n        ? childVal.call(vm, vm)\n        : childVal;\n      var defaultData = typeof parentVal === 'function'\n        ? parentVal.call(vm, vm)\n        : parentVal;\n      if (instanceData) {\n        return mergeData(instanceData, defaultData)\n      } else {\n        return defaultData\n      }\n    }\n  }\n}\n\nstrats.data = function (\n  parentVal,\n  childVal,\n  vm\n) {\n  if (!vm) {\n    if (childVal && typeof childVal !== 'function') {\n      process.env.NODE_ENV !== 'production' && warn(\n        'The \"data\" option should be a function ' +\n        'that returns a per-instance value in component ' +\n        'definitions.',\n        vm\n      );\n\n      return parentVal\n    }\n    return mergeDataOrFn(parentVal, childVal)\n  }\n\n  return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n  parentVal,\n  childVal\n) {\n  var res = childVal\n    ? parentVal\n      ? parentVal.concat(childVal)\n      : Array.isArray(childVal)\n        ? childVal\n        : [childVal]\n    : parentVal;\n  return res\n    ? dedupeHooks(res)\n    : res\n}\n\nfunction dedupeHooks (hooks) {\n  var res = [];\n  for (var i = 0; i < hooks.length; i++) {\n    if (res.indexOf(hooks[i]) === -1) {\n      res.push(hooks[i]);\n    }\n  }\n  return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n  strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  var res = Object.create(parentVal || null);\n  if (childVal) {\n    process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n    return extend(res, childVal)\n  } else {\n    return res\n  }\n}\n\nASSET_TYPES.forEach(function (type) {\n  strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  // work around Firefox's Object.prototype.watch...\n  if (parentVal === nativeWatch) { parentVal = undefined; }\n  if (childVal === nativeWatch) { childVal = undefined; }\n  /* istanbul ignore if */\n  if (!childVal) { return Object.create(parentVal || null) }\n  if (process.env.NODE_ENV !== 'production') {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) { return childVal }\n  var ret = {};\n  extend(ret, parentVal);\n  for (var key$1 in childVal) {\n    var parent = ret[key$1];\n    var child = childVal[key$1];\n    if (parent && !Array.isArray(parent)) {\n      parent = [parent];\n    }\n    ret[key$1] = parent\n      ? parent.concat(child)\n      : Array.isArray(child) ? child : [child];\n  }\n  return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  if (childVal && process.env.NODE_ENV !== 'production') {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) { return childVal }\n  var ret = Object.create(null);\n  extend(ret, parentVal);\n  if (childVal) { extend(ret, childVal); }\n  return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n  return childVal === undefined\n    ? parentVal\n    : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n  for (var key in options.components) {\n    validateComponentName(key);\n  }\n}\n\nfunction validateComponentName (name) {\n  if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n    warn(\n      'Invalid component name: \"' + name + '\". Component names ' +\n      'should conform to valid custom element name in html5 specification.'\n    );\n  }\n  if (isBuiltInTag(name) || config.isReservedTag(name)) {\n    warn(\n      'Do not use built-in or reserved HTML elements as component ' +\n      'id: ' + name\n    );\n  }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n  var props = options.props;\n  if (!props) { return }\n  var res = {};\n  var i, val, name;\n  if (Array.isArray(props)) {\n    i = props.length;\n    while (i--) {\n      val = props[i];\n      if (typeof val === 'string') {\n        name = camelize(val);\n        res[name] = { type: null };\n      } else if (process.env.NODE_ENV !== 'production') {\n        warn('props must be strings when using array syntax.');\n      }\n    }\n  } else if (isPlainObject(props)) {\n    for (var key in props) {\n      val = props[key];\n      name = camelize(key);\n      res[name] = isPlainObject(val)\n        ? val\n        : { type: val };\n    }\n  } else if (process.env.NODE_ENV !== 'production') {\n    warn(\n      \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n      \"but got \" + (toRawType(props)) + \".\",\n      vm\n    );\n  }\n  options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n  var inject = options.inject;\n  if (!inject) { return }\n  var normalized = options.inject = {};\n  if (Array.isArray(inject)) {\n    for (var i = 0; i < inject.length; i++) {\n      normalized[inject[i]] = { from: inject[i] };\n    }\n  } else if (isPlainObject(inject)) {\n    for (var key in inject) {\n      var val = inject[key];\n      normalized[key] = isPlainObject(val)\n        ? extend({ from: key }, val)\n        : { from: val };\n    }\n  } else if (process.env.NODE_ENV !== 'production') {\n    warn(\n      \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n      \"but got \" + (toRawType(inject)) + \".\",\n      vm\n    );\n  }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n  var dirs = options.directives;\n  if (dirs) {\n    for (var key in dirs) {\n      var def$$1 = dirs[key];\n      if (typeof def$$1 === 'function') {\n        dirs[key] = { bind: def$$1, update: def$$1 };\n      }\n    }\n  }\n}\n\nfunction assertObjectType (name, value, vm) {\n  if (!isPlainObject(value)) {\n    warn(\n      \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n      \"but got \" + (toRawType(value)) + \".\",\n      vm\n    );\n  }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n  parent,\n  child,\n  vm\n) {\n  if (process.env.NODE_ENV !== 'production') {\n    checkComponents(child);\n  }\n\n  if (typeof child === 'function') {\n    child = child.options;\n  }\n\n  normalizeProps(child, vm);\n  normalizeInject(child, vm);\n  normalizeDirectives(child);\n\n  // Apply extends and mixins on the child options,\n  // but only if it is a raw options object that isn't\n  // the result of another mergeOptions call.\n  // Only merged options has the _base property.\n  if (!child._base) {\n    if (child.extends) {\n      parent = mergeOptions(parent, child.extends, vm);\n    }\n    if (child.mixins) {\n      for (var i = 0, l = child.mixins.length; i < l; i++) {\n        parent = mergeOptions(parent, child.mixins[i], vm);\n      }\n    }\n  }\n\n  var options = {};\n  var key;\n  for (key in parent) {\n    mergeField(key);\n  }\n  for (key in child) {\n    if (!hasOwn(parent, key)) {\n      mergeField(key);\n    }\n  }\n  function mergeField (key) {\n    var strat = strats[key] || defaultStrat;\n    options[key] = strat(parent[key], child[key], vm, key);\n  }\n  return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n  options,\n  type,\n  id,\n  warnMissing\n) {\n  /* istanbul ignore if */\n  if (typeof id !== 'string') {\n    return\n  }\n  var assets = options[type];\n  // check local registration variations first\n  if (hasOwn(assets, id)) { return assets[id] }\n  var camelizedId = camelize(id);\n  if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n  var PascalCaseId = capitalize(camelizedId);\n  if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n  // fallback to prototype chain\n  var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n  if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n    warn(\n      'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n      options\n    );\n  }\n  return res\n}\n\n/*  */\n\n\n\nfunction validateProp (\n  key,\n  propOptions,\n  propsData,\n  vm\n) {\n  var prop = propOptions[key];\n  var absent = !hasOwn(propsData, key);\n  var value = propsData[key];\n  // boolean casting\n  var booleanIndex = getTypeIndex(Boolean, prop.type);\n  if (booleanIndex > -1) {\n    if (absent && !hasOwn(prop, 'default')) {\n      value = false;\n    } else if (value === '' || value === hyphenate(key)) {\n      // only cast empty string / same name to boolean if\n      // boolean has higher priority\n      var stringIndex = getTypeIndex(String, prop.type);\n      if (stringIndex < 0 || booleanIndex < stringIndex) {\n        value = true;\n      }\n    }\n  }\n  // check default value\n  if (value === undefined) {\n    value = getPropDefaultValue(vm, prop, key);\n    // since the default value is a fresh copy,\n    // make sure to observe it.\n    var prevShouldObserve = shouldObserve;\n    toggleObserving(true);\n    observe(value);\n    toggleObserving(prevShouldObserve);\n  }\n  if (\n    process.env.NODE_ENV !== 'production' &&\n    // skip validation for weex recycle-list child component props\n    !(false)\n  ) {\n    assertProp(prop, key, value, vm, absent);\n  }\n  return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n  // no default, return undefined\n  if (!hasOwn(prop, 'default')) {\n    return undefined\n  }\n  var def = prop.default;\n  // warn against non-factory defaults for Object & Array\n  if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n    warn(\n      'Invalid default value for prop \"' + key + '\": ' +\n      'Props with type Object/Array must use a factory function ' +\n      'to return the default value.',\n      vm\n    );\n  }\n  // the raw prop value was also undefined from previous render,\n  // return previous default value to avoid unnecessary watcher trigger\n  if (vm && vm.$options.propsData &&\n    vm.$options.propsData[key] === undefined &&\n    vm._props[key] !== undefined\n  ) {\n    return vm._props[key]\n  }\n  // call factory function for non-Function types\n  // a value is Function if its prototype is function even across different execution context\n  return typeof def === 'function' && getType(prop.type) !== 'Function'\n    ? def.call(vm)\n    : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n  prop,\n  name,\n  value,\n  vm,\n  absent\n) {\n  if (prop.required && absent) {\n    warn(\n      'Missing required prop: \"' + name + '\"',\n      vm\n    );\n    return\n  }\n  if (value == null && !prop.required) {\n    return\n  }\n  var type = prop.type;\n  var valid = !type || type === true;\n  var expectedTypes = [];\n  if (type) {\n    if (!Array.isArray(type)) {\n      type = [type];\n    }\n    for (var i = 0; i < type.length && !valid; i++) {\n      var assertedType = assertType(value, type[i]);\n      expectedTypes.push(assertedType.expectedType || '');\n      valid = assertedType.valid;\n    }\n  }\n\n  if (!valid) {\n    warn(\n      getInvalidTypeMessage(name, value, expectedTypes),\n      vm\n    );\n    return\n  }\n  var validator = prop.validator;\n  if (validator) {\n    if (!validator(value)) {\n      warn(\n        'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n        vm\n      );\n    }\n  }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n  var valid;\n  var expectedType = getType(type);\n  if (simpleCheckRE.test(expectedType)) {\n    var t = typeof value;\n    valid = t === expectedType.toLowerCase();\n    // for primitive wrapper objects\n    if (!valid && t === 'object') {\n      valid = value instanceof type;\n    }\n  } else if (expectedType === 'Object') {\n    valid = isPlainObject(value);\n  } else if (expectedType === 'Array') {\n    valid = Array.isArray(value);\n  } else {\n    valid = value instanceof type;\n  }\n  return {\n    valid: valid,\n    expectedType: expectedType\n  }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n  var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n  return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n  return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n  if (!Array.isArray(expectedTypes)) {\n    return isSameType(expectedTypes, type) ? 0 : -1\n  }\n  for (var i = 0, len = expectedTypes.length; i < len; i++) {\n    if (isSameType(expectedTypes[i], type)) {\n      return i\n    }\n  }\n  return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n  var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n    \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n  var expectedType = expectedTypes[0];\n  var receivedType = toRawType(value);\n  var expectedValue = styleValue(value, expectedType);\n  var receivedValue = styleValue(value, receivedType);\n  // check if we need to specify expected value\n  if (expectedTypes.length === 1 &&\n      isExplicable(expectedType) &&\n      !isBoolean(expectedType, receivedType)) {\n    message += \" with value \" + expectedValue;\n  }\n  message += \", got \" + receivedType + \" \";\n  // check if we need to specify received value\n  if (isExplicable(receivedType)) {\n    message += \"with value \" + receivedValue + \".\";\n  }\n  return message\n}\n\nfunction styleValue (value, type) {\n  if (type === 'String') {\n    return (\"\\\"\" + value + \"\\\"\")\n  } else if (type === 'Number') {\n    return (\"\" + (Number(value)))\n  } else {\n    return (\"\" + value)\n  }\n}\n\nfunction isExplicable (value) {\n  var explicitTypes = ['string', 'number', 'boolean'];\n  return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n  var args = [], len = arguments.length;\n  while ( len-- ) args[ len ] = arguments[ len ];\n\n  return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/*  */\n\nfunction handleError (err, vm, info) {\n  // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n  // See: https://github.com/vuejs/vuex/issues/1505\n  pushTarget();\n  try {\n    if (vm) {\n      var cur = vm;\n      while ((cur = cur.$parent)) {\n        var hooks = cur.$options.errorCaptured;\n        if (hooks) {\n          for (var i = 0; i < hooks.length; i++) {\n            try {\n              var capture = hooks[i].call(cur, err, vm, info) === false;\n              if (capture) { return }\n            } catch (e) {\n              globalHandleError(e, cur, 'errorCaptured hook');\n            }\n          }\n        }\n      }\n    }\n    globalHandleError(err, vm, info);\n  } finally {\n    popTarget();\n  }\n}\n\nfunction invokeWithErrorHandling (\n  handler,\n  context,\n  args,\n  vm,\n  info\n) {\n  var res;\n  try {\n    res = args ? handler.apply(context, args) : handler.call(context);\n    if (res && !res._isVue && isPromise(res) && !res._handled) {\n      res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n      // issue #9511\n      // avoid catch triggering multiple times when nested calls\n      res._handled = true;\n    }\n  } catch (e) {\n    handleError(e, vm, info);\n  }\n  return res\n}\n\nfunction globalHandleError (err, vm, info) {\n  if (config.errorHandler) {\n    try {\n      return config.errorHandler.call(null, err, vm, info)\n    } catch (e) {\n      // if the user intentionally throws the original error in the handler,\n      // do not log it twice\n      if (e !== err) {\n        logError(e, null, 'config.errorHandler');\n      }\n    }\n  }\n  logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n  }\n  /* istanbul ignore else */\n  if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n    console.error(err);\n  } else {\n    throw err\n  }\n}\n\n/*  */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n  pending = false;\n  var copies = callbacks.slice(0);\n  callbacks.length = 0;\n  for (var i = 0; i < copies.length; i++) {\n    copies[i]();\n  }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n  var p = Promise.resolve();\n  timerFunc = function () {\n    p.then(flushCallbacks);\n    // In problematic UIWebViews, Promise.then doesn't completely break, but\n    // it can get stuck in a weird state where callbacks are pushed into the\n    // microtask queue but the queue isn't being flushed, until the browser\n    // needs to do some other work, e.g. handle a timer. Therefore we can\n    // \"force\" the microtask queue to be flushed by adding an empty timer.\n    if (isIOS) { setTimeout(noop); }\n  };\n  isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n  isNative(MutationObserver) ||\n  // PhantomJS and iOS 7.x\n  MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n  // Use MutationObserver where native Promise is not available,\n  // e.g. PhantomJS, iOS7, Android 4.4\n  // (#6466 MutationObserver is unreliable in IE11)\n  var counter = 1;\n  var observer = new MutationObserver(flushCallbacks);\n  var textNode = document.createTextNode(String(counter));\n  observer.observe(textNode, {\n    characterData: true\n  });\n  timerFunc = function () {\n    counter = (counter + 1) % 2;\n    textNode.data = String(counter);\n  };\n  isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n  // Fallback to setImmediate.\n  // Technically it leverages the (macro) task queue,\n  // but it is still a better choice than setTimeout.\n  timerFunc = function () {\n    setImmediate(flushCallbacks);\n  };\n} else {\n  // Fallback to setTimeout.\n  timerFunc = function () {\n    setTimeout(flushCallbacks, 0);\n  };\n}\n\nfunction nextTick (cb, ctx) {\n  var _resolve;\n  callbacks.push(function () {\n    if (cb) {\n      try {\n        cb.call(ctx);\n      } catch (e) {\n        handleError(e, ctx, 'nextTick');\n      }\n    } else if (_resolve) {\n      _resolve(ctx);\n    }\n  });\n  if (!pending) {\n    pending = true;\n    timerFunc();\n  }\n  // $flow-disable-line\n  if (!cb && typeof Promise !== 'undefined') {\n    return new Promise(function (resolve) {\n      _resolve = resolve;\n    })\n  }\n}\n\n/*  */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n  var allowedGlobals = makeMap(\n    'Infinity,undefined,NaN,isFinite,isNaN,' +\n    'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n    'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n    'require' // for Webpack/Browserify\n  );\n\n  var warnNonPresent = function (target, key) {\n    warn(\n      \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n      'referenced during render. Make sure that this property is reactive, ' +\n      'either in the data option, or for class-based components, by ' +\n      'initializing the property. ' +\n      'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n      target\n    );\n  };\n\n  var warnReservedPrefix = function (target, key) {\n    warn(\n      \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n      'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n      'prevent conflicts with Vue internals. ' +\n      'See: https://vuejs.org/v2/api/#data',\n      target\n    );\n  };\n\n  var hasProxy =\n    typeof Proxy !== 'undefined' && isNative(Proxy);\n\n  if (hasProxy) {\n    var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n    config.keyCodes = new Proxy(config.keyCodes, {\n      set: function set (target, key, value) {\n        if (isBuiltInModifier(key)) {\n          warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n          return false\n        } else {\n          target[key] = value;\n          return true\n        }\n      }\n    });\n  }\n\n  var hasHandler = {\n    has: function has (target, key) {\n      var has = key in target;\n      var isAllowed = allowedGlobals(key) ||\n        (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n      if (!has && !isAllowed) {\n        if (key in target.$data) { warnReservedPrefix(target, key); }\n        else { warnNonPresent(target, key); }\n      }\n      return has || !isAllowed\n    }\n  };\n\n  var getHandler = {\n    get: function get (target, key) {\n      if (typeof key === 'string' && !(key in target)) {\n        if (key in target.$data) { warnReservedPrefix(target, key); }\n        else { warnNonPresent(target, key); }\n      }\n      return target[key]\n    }\n  };\n\n  initProxy = function initProxy (vm) {\n    if (hasProxy) {\n      // determine which proxy handler to use\n      var options = vm.$options;\n      var handlers = options.render && options.render._withStripped\n        ? getHandler\n        : hasHandler;\n      vm._renderProxy = new Proxy(vm, handlers);\n    } else {\n      vm._renderProxy = vm;\n    }\n  };\n}\n\n/*  */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n  _traverse(val, seenObjects);\n  seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n  var i, keys;\n  var isA = Array.isArray(val);\n  if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n    return\n  }\n  if (val.__ob__) {\n    var depId = val.__ob__.dep.id;\n    if (seen.has(depId)) {\n      return\n    }\n    seen.add(depId);\n  }\n  if (isA) {\n    i = val.length;\n    while (i--) { _traverse(val[i], seen); }\n  } else {\n    keys = Object.keys(val);\n    i = keys.length;\n    while (i--) { _traverse(val[keys[i]], seen); }\n  }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n  var perf = inBrowser && window.performance;\n  /* istanbul ignore if */\n  if (\n    perf &&\n    perf.mark &&\n    perf.measure &&\n    perf.clearMarks &&\n    perf.clearMeasures\n  ) {\n    mark = function (tag) { return perf.mark(tag); };\n    measure = function (name, startTag, endTag) {\n      perf.measure(name, startTag, endTag);\n      perf.clearMarks(startTag);\n      perf.clearMarks(endTag);\n      // perf.clearMeasures(name)\n    };\n  }\n}\n\n/*  */\n\nvar normalizeEvent = cached(function (name) {\n  var passive = name.charAt(0) === '&';\n  name = passive ? name.slice(1) : name;\n  var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n  name = once$$1 ? name.slice(1) : name;\n  var capture = name.charAt(0) === '!';\n  name = capture ? name.slice(1) : name;\n  return {\n    name: name,\n    once: once$$1,\n    capture: capture,\n    passive: passive\n  }\n});\n\nfunction createFnInvoker (fns, vm) {\n  function invoker () {\n    var arguments$1 = arguments;\n\n    var fns = invoker.fns;\n    if (Array.isArray(fns)) {\n      var cloned = fns.slice();\n      for (var i = 0; i < cloned.length; i++) {\n        invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n      }\n    } else {\n      // return handler return value for single handlers\n      return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n    }\n  }\n  invoker.fns = fns;\n  return invoker\n}\n\nfunction updateListeners (\n  on,\n  oldOn,\n  add,\n  remove$$1,\n  createOnceHandler,\n  vm\n) {\n  var name, def$$1, cur, old, event;\n  for (name in on) {\n    def$$1 = cur = on[name];\n    old = oldOn[name];\n    event = normalizeEvent(name);\n    if (isUndef(cur)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n        vm\n      );\n    } else if (isUndef(old)) {\n      if (isUndef(cur.fns)) {\n        cur = on[name] = createFnInvoker(cur, vm);\n      }\n      if (isTrue(event.once)) {\n        cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n      }\n      add(event.name, cur, event.capture, event.passive, event.params);\n    } else if (cur !== old) {\n      old.fns = cur;\n      on[name] = old;\n    }\n  }\n  for (name in oldOn) {\n    if (isUndef(on[name])) {\n      event = normalizeEvent(name);\n      remove$$1(event.name, oldOn[name], event.capture);\n    }\n  }\n}\n\n/*  */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n  if (def instanceof VNode) {\n    def = def.data.hook || (def.data.hook = {});\n  }\n  var invoker;\n  var oldHook = def[hookKey];\n\n  function wrappedHook () {\n    hook.apply(this, arguments);\n    // important: remove merged hook to ensure it's called only once\n    // and prevent memory leak\n    remove(invoker.fns, wrappedHook);\n  }\n\n  if (isUndef(oldHook)) {\n    // no existing hook\n    invoker = createFnInvoker([wrappedHook]);\n  } else {\n    /* istanbul ignore if */\n    if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n      // already a merged invoker\n      invoker = oldHook;\n      invoker.fns.push(wrappedHook);\n    } else {\n      // existing plain hook\n      invoker = createFnInvoker([oldHook, wrappedHook]);\n    }\n  }\n\n  invoker.merged = true;\n  def[hookKey] = invoker;\n}\n\n/*  */\n\nfunction extractPropsFromVNodeData (\n  data,\n  Ctor,\n  tag\n) {\n  // we are only extracting raw values here.\n  // validation and default values are handled in the child\n  // component itself.\n  var propOptions = Ctor.options.props;\n  if (isUndef(propOptions)) {\n    return\n  }\n  var res = {};\n  var attrs = data.attrs;\n  var props = data.props;\n  if (isDef(attrs) || isDef(props)) {\n    for (var key in propOptions) {\n      var altKey = hyphenate(key);\n      if (process.env.NODE_ENV !== 'production') {\n        var keyInLowerCase = key.toLowerCase();\n        if (\n          key !== keyInLowerCase &&\n          attrs && hasOwn(attrs, keyInLowerCase)\n        ) {\n          tip(\n            \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n            (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n            \" \\\"\" + key + \"\\\". \" +\n            \"Note that HTML attributes are case-insensitive and camelCased \" +\n            \"props need to use their kebab-case equivalents when using in-DOM \" +\n            \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n          );\n        }\n      }\n      checkProp(res, props, key, altKey, true) ||\n      checkProp(res, attrs, key, altKey, false);\n    }\n  }\n  return res\n}\n\nfunction checkProp (\n  res,\n  hash,\n  key,\n  altKey,\n  preserve\n) {\n  if (isDef(hash)) {\n    if (hasOwn(hash, key)) {\n      res[key] = hash[key];\n      if (!preserve) {\n        delete hash[key];\n      }\n      return true\n    } else if (hasOwn(hash, altKey)) {\n      res[key] = hash[altKey];\n      if (!preserve) {\n        delete hash[altKey];\n      }\n      return true\n    }\n  }\n  return false\n}\n\n/*  */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n  for (var i = 0; i < children.length; i++) {\n    if (Array.isArray(children[i])) {\n      return Array.prototype.concat.apply([], children)\n    }\n  }\n  return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n  return isPrimitive(children)\n    ? [createTextVNode(children)]\n    : Array.isArray(children)\n      ? normalizeArrayChildren(children)\n      : undefined\n}\n\nfunction isTextNode (node) {\n  return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n  var res = [];\n  var i, c, lastIndex, last;\n  for (i = 0; i < children.length; i++) {\n    c = children[i];\n    if (isUndef(c) || typeof c === 'boolean') { continue }\n    lastIndex = res.length - 1;\n    last = res[lastIndex];\n    //  nested\n    if (Array.isArray(c)) {\n      if (c.length > 0) {\n        c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n        // merge adjacent text nodes\n        if (isTextNode(c[0]) && isTextNode(last)) {\n          res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n          c.shift();\n        }\n        res.push.apply(res, c);\n      }\n    } else if (isPrimitive(c)) {\n      if (isTextNode(last)) {\n        // merge adjacent text nodes\n        // this is necessary for SSR hydration because text nodes are\n        // essentially merged when rendered to HTML strings\n        res[lastIndex] = createTextVNode(last.text + c);\n      } else if (c !== '') {\n        // convert primitive to vnode\n        res.push(createTextVNode(c));\n      }\n    } else {\n      if (isTextNode(c) && isTextNode(last)) {\n        // merge adjacent text nodes\n        res[lastIndex] = createTextVNode(last.text + c.text);\n      } else {\n        // default key for nested array children (likely generated by v-for)\n        if (isTrue(children._isVList) &&\n          isDef(c.tag) &&\n          isUndef(c.key) &&\n          isDef(nestedIndex)) {\n          c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n        }\n        res.push(c);\n      }\n    }\n  }\n  return res\n}\n\n/*  */\n\nfunction initProvide (vm) {\n  var provide = vm.$options.provide;\n  if (provide) {\n    vm._provided = typeof provide === 'function'\n      ? provide.call(vm)\n      : provide;\n  }\n}\n\nfunction initInjections (vm) {\n  var result = resolveInject(vm.$options.inject, vm);\n  if (result) {\n    toggleObserving(false);\n    Object.keys(result).forEach(function (key) {\n      /* istanbul ignore else */\n      if (process.env.NODE_ENV !== 'production') {\n        defineReactive$$1(vm, key, result[key], function () {\n          warn(\n            \"Avoid mutating an injected value directly since the changes will be \" +\n            \"overwritten whenever the provided component re-renders. \" +\n            \"injection being mutated: \\\"\" + key + \"\\\"\",\n            vm\n          );\n        });\n      } else {\n        defineReactive$$1(vm, key, result[key]);\n      }\n    });\n    toggleObserving(true);\n  }\n}\n\nfunction resolveInject (inject, vm) {\n  if (inject) {\n    // inject is :any because flow is not smart enough to figure out cached\n    var result = Object.create(null);\n    var keys = hasSymbol\n      ? Reflect.ownKeys(inject)\n      : Object.keys(inject);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      // #6574 in case the inject object is observed...\n      if (key === '__ob__') { continue }\n      var provideKey = inject[key].from;\n      var source = vm;\n      while (source) {\n        if (source._provided && hasOwn(source._provided, provideKey)) {\n          result[key] = source._provided[provideKey];\n          break\n        }\n        source = source.$parent;\n      }\n      if (!source) {\n        if ('default' in inject[key]) {\n          var provideDefault = inject[key].default;\n          result[key] = typeof provideDefault === 'function'\n            ? provideDefault.call(vm)\n            : provideDefault;\n        } else if (process.env.NODE_ENV !== 'production') {\n          warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n        }\n      }\n    }\n    return result\n  }\n}\n\n/*  */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n  children,\n  context\n) {\n  if (!children || !children.length) {\n    return {}\n  }\n  var slots = {};\n  for (var i = 0, l = children.length; i < l; i++) {\n    var child = children[i];\n    var data = child.data;\n    // remove slot attribute if the node is resolved as a Vue slot node\n    if (data && data.attrs && data.attrs.slot) {\n      delete data.attrs.slot;\n    }\n    // named slots should only be respected if the vnode was rendered in the\n    // same context.\n    if ((child.context === context || child.fnContext === context) &&\n      data && data.slot != null\n    ) {\n      var name = data.slot;\n      var slot = (slots[name] || (slots[name] = []));\n      if (child.tag === 'template') {\n        slot.push.apply(slot, child.children || []);\n      } else {\n        slot.push(child);\n      }\n    } else {\n      (slots.default || (slots.default = [])).push(child);\n    }\n  }\n  // ignore slots that contains only whitespace\n  for (var name$1 in slots) {\n    if (slots[name$1].every(isWhitespace)) {\n      delete slots[name$1];\n    }\n  }\n  return slots\n}\n\nfunction isWhitespace (node) {\n  return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\n/*  */\n\nfunction normalizeScopedSlots (\n  slots,\n  normalSlots,\n  prevSlots\n) {\n  var res;\n  var hasNormalSlots = Object.keys(normalSlots).length > 0;\n  var isStable = slots ? !!slots.$stable : !hasNormalSlots;\n  var key = slots && slots.$key;\n  if (!slots) {\n    res = {};\n  } else if (slots._normalized) {\n    // fast path 1: child component re-render only, parent did not change\n    return slots._normalized\n  } else if (\n    isStable &&\n    prevSlots &&\n    prevSlots !== emptyObject &&\n    key === prevSlots.$key &&\n    !hasNormalSlots &&\n    !prevSlots.$hasNormal\n  ) {\n    // fast path 2: stable scoped slots w/ no normal slots to proxy,\n    // only need to normalize once\n    return prevSlots\n  } else {\n    res = {};\n    for (var key$1 in slots) {\n      if (slots[key$1] && key$1[0] !== '$') {\n        res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);\n      }\n    }\n  }\n  // expose normal slots on scopedSlots\n  for (var key$2 in normalSlots) {\n    if (!(key$2 in res)) {\n      res[key$2] = proxyNormalSlot(normalSlots, key$2);\n    }\n  }\n  // avoriaz seems to mock a non-extensible $scopedSlots object\n  // and when that is passed down this would cause an error\n  if (slots && Object.isExtensible(slots)) {\n    (slots)._normalized = res;\n  }\n  def(res, '$stable', isStable);\n  def(res, '$key', key);\n  def(res, '$hasNormal', hasNormalSlots);\n  return res\n}\n\nfunction normalizeScopedSlot(normalSlots, key, fn) {\n  var normalized = function () {\n    var res = arguments.length ? fn.apply(null, arguments) : fn({});\n    res = res && typeof res === 'object' && !Array.isArray(res)\n      ? [res] // single vnode\n      : normalizeChildren(res);\n    return res && (\n      res.length === 0 ||\n      (res.length === 1 && res[0].isComment) // #9658\n    ) ? undefined\n      : res\n  };\n  // this is a slot using the new v-slot syntax without scope. although it is\n  // compiled as a scoped slot, render fn users would expect it to be present\n  // on this.$slots because the usage is semantically a normal slot.\n  if (fn.proxy) {\n    Object.defineProperty(normalSlots, key, {\n      get: normalized,\n      enumerable: true,\n      configurable: true\n    });\n  }\n  return normalized\n}\n\nfunction proxyNormalSlot(slots, key) {\n  return function () { return slots[key]; }\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n  val,\n  render\n) {\n  var ret, i, l, keys, key;\n  if (Array.isArray(val) || typeof val === 'string') {\n    ret = new Array(val.length);\n    for (i = 0, l = val.length; i < l; i++) {\n      ret[i] = render(val[i], i);\n    }\n  } else if (typeof val === 'number') {\n    ret = new Array(val);\n    for (i = 0; i < val; i++) {\n      ret[i] = render(i + 1, i);\n    }\n  } else if (isObject(val)) {\n    if (hasSymbol && val[Symbol.iterator]) {\n      ret = [];\n      var iterator = val[Symbol.iterator]();\n      var result = iterator.next();\n      while (!result.done) {\n        ret.push(render(result.value, ret.length));\n        result = iterator.next();\n      }\n    } else {\n      keys = Object.keys(val);\n      ret = new Array(keys.length);\n      for (i = 0, l = keys.length; i < l; i++) {\n        key = keys[i];\n        ret[i] = render(val[key], key, i);\n      }\n    }\n  }\n  if (!isDef(ret)) {\n    ret = [];\n  }\n  (ret)._isVList = true;\n  return ret\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n  name,\n  fallback,\n  props,\n  bindObject\n) {\n  var scopedSlotFn = this.$scopedSlots[name];\n  var nodes;\n  if (scopedSlotFn) { // scoped slot\n    props = props || {};\n    if (bindObject) {\n      if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n        warn(\n          'slot v-bind without argument expects an Object',\n          this\n        );\n      }\n      props = extend(extend({}, bindObject), props);\n    }\n    nodes = scopedSlotFn(props) || fallback;\n  } else {\n    nodes = this.$slots[name] || fallback;\n  }\n\n  var target = props && props.slot;\n  if (target) {\n    return this.$createElement('template', { slot: target }, nodes)\n  } else {\n    return nodes\n  }\n}\n\n/*  */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n  return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/*  */\n\nfunction isKeyNotMatch (expect, actual) {\n  if (Array.isArray(expect)) {\n    return expect.indexOf(actual) === -1\n  } else {\n    return expect !== actual\n  }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n  eventKeyCode,\n  key,\n  builtInKeyCode,\n  eventKeyName,\n  builtInKeyName\n) {\n  var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n  if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n    return isKeyNotMatch(builtInKeyName, eventKeyName)\n  } else if (mappedKeyCode) {\n    return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n  } else if (eventKeyName) {\n    return hyphenate(eventKeyName) !== key\n  }\n}\n\n/*  */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n  data,\n  tag,\n  value,\n  asProp,\n  isSync\n) {\n  if (value) {\n    if (!isObject(value)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        'v-bind without argument expects an Object or Array value',\n        this\n      );\n    } else {\n      if (Array.isArray(value)) {\n        value = toObject(value);\n      }\n      var hash;\n      var loop = function ( key ) {\n        if (\n          key === 'class' ||\n          key === 'style' ||\n          isReservedAttribute(key)\n        ) {\n          hash = data;\n        } else {\n          var type = data.attrs && data.attrs.type;\n          hash = asProp || config.mustUseProp(tag, type, key)\n            ? data.domProps || (data.domProps = {})\n            : data.attrs || (data.attrs = {});\n        }\n        var camelizedKey = camelize(key);\n        var hyphenatedKey = hyphenate(key);\n        if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n          hash[key] = value[key];\n\n          if (isSync) {\n            var on = data.on || (data.on = {});\n            on[(\"update:\" + key)] = function ($event) {\n              value[key] = $event;\n            };\n          }\n        }\n      };\n\n      for (var key in value) loop( key );\n    }\n  }\n  return data\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n  index,\n  isInFor\n) {\n  var cached = this._staticTrees || (this._staticTrees = []);\n  var tree = cached[index];\n  // if has already-rendered static tree and not inside v-for,\n  // we can reuse the same tree.\n  if (tree && !isInFor) {\n    return tree\n  }\n  // otherwise, render a fresh tree.\n  tree = cached[index] = this.$options.staticRenderFns[index].call(\n    this._renderProxy,\n    null,\n    this // for render fns generated for functional component templates\n  );\n  markStatic(tree, (\"__static__\" + index), false);\n  return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n  tree,\n  index,\n  key\n) {\n  markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n  return tree\n}\n\nfunction markStatic (\n  tree,\n  key,\n  isOnce\n) {\n  if (Array.isArray(tree)) {\n    for (var i = 0; i < tree.length; i++) {\n      if (tree[i] && typeof tree[i] !== 'string') {\n        markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n      }\n    }\n  } else {\n    markStaticNode(tree, key, isOnce);\n  }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n  node.isStatic = true;\n  node.key = key;\n  node.isOnce = isOnce;\n}\n\n/*  */\n\nfunction bindObjectListeners (data, value) {\n  if (value) {\n    if (!isPlainObject(value)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        'v-on without argument expects an Object value',\n        this\n      );\n    } else {\n      var on = data.on = data.on ? extend({}, data.on) : {};\n      for (var key in value) {\n        var existing = on[key];\n        var ours = value[key];\n        on[key] = existing ? [].concat(existing, ours) : ours;\n      }\n    }\n  }\n  return data\n}\n\n/*  */\n\nfunction resolveScopedSlots (\n  fns, // see flow/vnode\n  res,\n  // the following are added in 2.6\n  hasDynamicKeys,\n  contentHashKey\n) {\n  res = res || { $stable: !hasDynamicKeys };\n  for (var i = 0; i < fns.length; i++) {\n    var slot = fns[i];\n    if (Array.isArray(slot)) {\n      resolveScopedSlots(slot, res, hasDynamicKeys);\n    } else if (slot) {\n      // marker for reverse proxying v-slot without scope on this.$slots\n      if (slot.proxy) {\n        slot.fn.proxy = true;\n      }\n      res[slot.key] = slot.fn;\n    }\n  }\n  if (contentHashKey) {\n    (res).$key = contentHashKey;\n  }\n  return res\n}\n\n/*  */\n\nfunction bindDynamicKeys (baseObj, values) {\n  for (var i = 0; i < values.length; i += 2) {\n    var key = values[i];\n    if (typeof key === 'string' && key) {\n      baseObj[values[i]] = values[i + 1];\n    } else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\n      // null is a special value for explicitly removing a binding\n      warn(\n        (\"Invalid value for dynamic directive argument (expected string or null): \" + key),\n        this\n      );\n    }\n  }\n  return baseObj\n}\n\n// helper to dynamically append modifier runtime markers to event names.\n// ensure only append when value is already string, otherwise it will be cast\n// to string and cause the type check to miss.\nfunction prependModifier (value, symbol) {\n  return typeof value === 'string' ? symbol + value : value\n}\n\n/*  */\n\nfunction installRenderHelpers (target) {\n  target._o = markOnce;\n  target._n = toNumber;\n  target._s = toString;\n  target._l = renderList;\n  target._t = renderSlot;\n  target._q = looseEqual;\n  target._i = looseIndexOf;\n  target._m = renderStatic;\n  target._f = resolveFilter;\n  target._k = checkKeyCodes;\n  target._b = bindObjectProps;\n  target._v = createTextVNode;\n  target._e = createEmptyVNode;\n  target._u = resolveScopedSlots;\n  target._g = bindObjectListeners;\n  target._d = bindDynamicKeys;\n  target._p = prependModifier;\n}\n\n/*  */\n\nfunction FunctionalRenderContext (\n  data,\n  props,\n  children,\n  parent,\n  Ctor\n) {\n  var this$1 = this;\n\n  var options = Ctor.options;\n  // ensure the createElement function in functional components\n  // gets a unique context - this is necessary for correct named slot check\n  var contextVm;\n  if (hasOwn(parent, '_uid')) {\n    contextVm = Object.create(parent);\n    // $flow-disable-line\n    contextVm._original = parent;\n  } else {\n    // the context vm passed in is a functional context as well.\n    // in this case we want to make sure we are able to get a hold to the\n    // real context instance.\n    contextVm = parent;\n    // $flow-disable-line\n    parent = parent._original;\n  }\n  var isCompiled = isTrue(options._compiled);\n  var needNormalization = !isCompiled;\n\n  this.data = data;\n  this.props = props;\n  this.children = children;\n  this.parent = parent;\n  this.listeners = data.on || emptyObject;\n  this.injections = resolveInject(options.inject, parent);\n  this.slots = function () {\n    if (!this$1.$slots) {\n      normalizeScopedSlots(\n        data.scopedSlots,\n        this$1.$slots = resolveSlots(children, parent)\n      );\n    }\n    return this$1.$slots\n  };\n\n  Object.defineProperty(this, 'scopedSlots', ({\n    enumerable: true,\n    get: function get () {\n      return normalizeScopedSlots(data.scopedSlots, this.slots())\n    }\n  }));\n\n  // support for compiled functional template\n  if (isCompiled) {\n    // exposing $options for renderStatic()\n    this.$options = options;\n    // pre-resolve slots for renderSlot()\n    this.$slots = this.slots();\n    this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);\n  }\n\n  if (options._scopeId) {\n    this._c = function (a, b, c, d) {\n      var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n      if (vnode && !Array.isArray(vnode)) {\n        vnode.fnScopeId = options._scopeId;\n        vnode.fnContext = parent;\n      }\n      return vnode\n    };\n  } else {\n    this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n  }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n  Ctor,\n  propsData,\n  data,\n  contextVm,\n  children\n) {\n  var options = Ctor.options;\n  var props = {};\n  var propOptions = options.props;\n  if (isDef(propOptions)) {\n    for (var key in propOptions) {\n      props[key] = validateProp(key, propOptions, propsData || emptyObject);\n    }\n  } else {\n    if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n    if (isDef(data.props)) { mergeProps(props, data.props); }\n  }\n\n  var renderContext = new FunctionalRenderContext(\n    data,\n    props,\n    children,\n    contextVm,\n    Ctor\n  );\n\n  var vnode = options.render.call(null, renderContext._c, renderContext);\n\n  if (vnode instanceof VNode) {\n    return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext)\n  } else if (Array.isArray(vnode)) {\n    var vnodes = normalizeChildren(vnode) || [];\n    var res = new Array(vnodes.length);\n    for (var i = 0; i < vnodes.length; i++) {\n      res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n    }\n    return res\n  }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options, renderContext) {\n  // #7817 clone node before setting fnContext, otherwise if the node is reused\n  // (e.g. it was from a cached normal slot) the fnContext causes named slots\n  // that should not be matched to match.\n  var clone = cloneVNode(vnode);\n  clone.fnContext = contextVm;\n  clone.fnOptions = options;\n  if (process.env.NODE_ENV !== 'production') {\n    (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;\n  }\n  if (data.slot) {\n    (clone.data || (clone.data = {})).slot = data.slot;\n  }\n  return clone\n}\n\nfunction mergeProps (to, from) {\n  for (var key in from) {\n    to[camelize(key)] = from[key];\n  }\n}\n\n/*  */\n\n/*  */\n\n/*  */\n\n/*  */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n  init: function init (vnode, hydrating) {\n    if (\n      vnode.componentInstance &&\n      !vnode.componentInstance._isDestroyed &&\n      vnode.data.keepAlive\n    ) {\n      // kept-alive components, treat as a patch\n      var mountedNode = vnode; // work around flow\n      componentVNodeHooks.prepatch(mountedNode, mountedNode);\n    } else {\n      var child = vnode.componentInstance = createComponentInstanceForVnode(\n        vnode,\n        activeInstance\n      );\n      child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n    }\n  },\n\n  prepatch: function prepatch (oldVnode, vnode) {\n    var options = vnode.componentOptions;\n    var child = vnode.componentInstance = oldVnode.componentInstance;\n    updateChildComponent(\n      child,\n      options.propsData, // updated props\n      options.listeners, // updated listeners\n      vnode, // new parent vnode\n      options.children // new children\n    );\n  },\n\n  insert: function insert (vnode) {\n    var context = vnode.context;\n    var componentInstance = vnode.componentInstance;\n    if (!componentInstance._isMounted) {\n      componentInstance._isMounted = true;\n      callHook(componentInstance, 'mounted');\n    }\n    if (vnode.data.keepAlive) {\n      if (context._isMounted) {\n        // vue-router#1212\n        // During updates, a kept-alive component's child components may\n        // change, so directly walking the tree here may call activated hooks\n        // on incorrect children. Instead we push them into a queue which will\n        // be processed after the whole patch process ended.\n        queueActivatedComponent(componentInstance);\n      } else {\n        activateChildComponent(componentInstance, true /* direct */);\n      }\n    }\n  },\n\n  destroy: function destroy (vnode) {\n    var componentInstance = vnode.componentInstance;\n    if (!componentInstance._isDestroyed) {\n      if (!vnode.data.keepAlive) {\n        componentInstance.$destroy();\n      } else {\n        deactivateChildComponent(componentInstance, true /* direct */);\n      }\n    }\n  }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n  Ctor,\n  data,\n  context,\n  children,\n  tag\n) {\n  if (isUndef(Ctor)) {\n    return\n  }\n\n  var baseCtor = context.$options._base;\n\n  // plain options object: turn it into a constructor\n  if (isObject(Ctor)) {\n    Ctor = baseCtor.extend(Ctor);\n  }\n\n  // if at this stage it's not a constructor or an async component factory,\n  // reject.\n  if (typeof Ctor !== 'function') {\n    if (process.env.NODE_ENV !== 'production') {\n      warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n    }\n    return\n  }\n\n  // async component\n  var asyncFactory;\n  if (isUndef(Ctor.cid)) {\n    asyncFactory = Ctor;\n    Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n    if (Ctor === undefined) {\n      // return a placeholder node for async component, which is rendered\n      // as a comment node but preserves all the raw information for the node.\n      // the information will be used for async server-rendering and hydration.\n      return createAsyncPlaceholder(\n        asyncFactory,\n        data,\n        context,\n        children,\n        tag\n      )\n    }\n  }\n\n  data = data || {};\n\n  // resolve constructor options in case global mixins are applied after\n  // component constructor creation\n  resolveConstructorOptions(Ctor);\n\n  // transform component v-model data into props & events\n  if (isDef(data.model)) {\n    transformModel(Ctor.options, data);\n  }\n\n  // extract props\n  var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n  // functional component\n  if (isTrue(Ctor.options.functional)) {\n    return createFunctionalComponent(Ctor, propsData, data, context, children)\n  }\n\n  // extract listeners, since these needs to be treated as\n  // child component listeners instead of DOM listeners\n  var listeners = data.on;\n  // replace with listeners with .native modifier\n  // so it gets processed during parent component patch.\n  data.on = data.nativeOn;\n\n  if (isTrue(Ctor.options.abstract)) {\n    // abstract components do not keep anything\n    // other than props & listeners & slot\n\n    // work around flow\n    var slot = data.slot;\n    data = {};\n    if (slot) {\n      data.slot = slot;\n    }\n  }\n\n  // install component management hooks onto the placeholder node\n  installComponentHooks(data);\n\n  // return a placeholder vnode\n  var name = Ctor.options.name || tag;\n  var vnode = new VNode(\n    (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n    data, undefined, undefined, undefined, context,\n    { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n    asyncFactory\n  );\n\n  return vnode\n}\n\nfunction createComponentInstanceForVnode (\n  vnode, // we know it's MountedComponentVNode but flow doesn't\n  parent // activeInstance in lifecycle state\n) {\n  var options = {\n    _isComponent: true,\n    _parentVnode: vnode,\n    parent: parent\n  };\n  // check inline-template render functions\n  var inlineTemplate = vnode.data.inlineTemplate;\n  if (isDef(inlineTemplate)) {\n    options.render = inlineTemplate.render;\n    options.staticRenderFns = inlineTemplate.staticRenderFns;\n  }\n  return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n  var hooks = data.hook || (data.hook = {});\n  for (var i = 0; i < hooksToMerge.length; i++) {\n    var key = hooksToMerge[i];\n    var existing = hooks[key];\n    var toMerge = componentVNodeHooks[key];\n    if (existing !== toMerge && !(existing && existing._merged)) {\n      hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;\n    }\n  }\n}\n\nfunction mergeHook$1 (f1, f2) {\n  var merged = function (a, b) {\n    // flow complains about extra args which is why we use any\n    f1(a, b);\n    f2(a, b);\n  };\n  merged._merged = true;\n  return merged\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n  var prop = (options.model && options.model.prop) || 'value';\n  var event = (options.model && options.model.event) || 'input'\n  ;(data.attrs || (data.attrs = {}))[prop] = data.model.value;\n  var on = data.on || (data.on = {});\n  var existing = on[event];\n  var callback = data.model.callback;\n  if (isDef(existing)) {\n    if (\n      Array.isArray(existing)\n        ? existing.indexOf(callback) === -1\n        : existing !== callback\n    ) {\n      on[event] = [callback].concat(existing);\n    }\n  } else {\n    on[event] = callback;\n  }\n}\n\n/*  */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n  context,\n  tag,\n  data,\n  children,\n  normalizationType,\n  alwaysNormalize\n) {\n  if (Array.isArray(data) || isPrimitive(data)) {\n    normalizationType = children;\n    children = data;\n    data = undefined;\n  }\n  if (isTrue(alwaysNormalize)) {\n    normalizationType = ALWAYS_NORMALIZE;\n  }\n  return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n  context,\n  tag,\n  data,\n  children,\n  normalizationType\n) {\n  if (isDef(data) && isDef((data).__ob__)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n      'Always create fresh vnode data objects in each render!',\n      context\n    );\n    return createEmptyVNode()\n  }\n  // object syntax in v-bind\n  if (isDef(data) && isDef(data.is)) {\n    tag = data.is;\n  }\n  if (!tag) {\n    // in case of component :is set to falsy value\n    return createEmptyVNode()\n  }\n  // warn against non-primitive key\n  if (process.env.NODE_ENV !== 'production' &&\n    isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n  ) {\n    {\n      warn(\n        'Avoid using non-primitive value as key, ' +\n        'use string/number value instead.',\n        context\n      );\n    }\n  }\n  // support single function children as default scoped slot\n  if (Array.isArray(children) &&\n    typeof children[0] === 'function'\n  ) {\n    data = data || {};\n    data.scopedSlots = { default: children[0] };\n    children.length = 0;\n  }\n  if (normalizationType === ALWAYS_NORMALIZE) {\n    children = normalizeChildren(children);\n  } else if (normalizationType === SIMPLE_NORMALIZE) {\n    children = simpleNormalizeChildren(children);\n  }\n  var vnode, ns;\n  if (typeof tag === 'string') {\n    var Ctor;\n    ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n    if (config.isReservedTag(tag)) {\n      // platform built-in elements\n      if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.nativeOn)) {\n        warn(\n          (\"The .native modifier for v-on is only valid on components but it was used on <\" + tag + \">.\"),\n          context\n        );\n      }\n      vnode = new VNode(\n        config.parsePlatformTagName(tag), data, children,\n        undefined, undefined, context\n      );\n    } else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n      // component\n      vnode = createComponent(Ctor, data, context, children, tag);\n    } else {\n      // unknown or unlisted namespaced elements\n      // check at runtime because it may get assigned a namespace when its\n      // parent normalizes children\n      vnode = new VNode(\n        tag, data, children,\n        undefined, undefined, context\n      );\n    }\n  } else {\n    // direct component options / constructor\n    vnode = createComponent(tag, data, context, children);\n  }\n  if (Array.isArray(vnode)) {\n    return vnode\n  } else if (isDef(vnode)) {\n    if (isDef(ns)) { applyNS(vnode, ns); }\n    if (isDef(data)) { registerDeepBindings(data); }\n    return vnode\n  } else {\n    return createEmptyVNode()\n  }\n}\n\nfunction applyNS (vnode, ns, force) {\n  vnode.ns = ns;\n  if (vnode.tag === 'foreignObject') {\n    // use default namespace inside foreignObject\n    ns = undefined;\n    force = true;\n  }\n  if (isDef(vnode.children)) {\n    for (var i = 0, l = vnode.children.length; i < l; i++) {\n      var child = vnode.children[i];\n      if (isDef(child.tag) && (\n        isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n        applyNS(child, ns, force);\n      }\n    }\n  }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n  if (isObject(data.style)) {\n    traverse(data.style);\n  }\n  if (isObject(data.class)) {\n    traverse(data.class);\n  }\n}\n\n/*  */\n\nfunction initRender (vm) {\n  vm._vnode = null; // the root of the child tree\n  vm._staticTrees = null; // v-once cached trees\n  var options = vm.$options;\n  var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n  var renderContext = parentVnode && parentVnode.context;\n  vm.$slots = resolveSlots(options._renderChildren, renderContext);\n  vm.$scopedSlots = emptyObject;\n  // bind the createElement fn to this instance\n  // so that we get proper render context inside it.\n  // args order: tag, data, children, normalizationType, alwaysNormalize\n  // internal version is used by render functions compiled from templates\n  vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n  // normalization is always applied for the public version, used in\n  // user-written render functions.\n  vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n  // $attrs & $listeners are exposed for easier HOC creation.\n  // they need to be reactive so that HOCs using them are always updated\n  var parentData = parentVnode && parentVnode.data;\n\n  /* istanbul ignore else */\n  if (process.env.NODE_ENV !== 'production') {\n    defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n    }, true);\n    defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n    }, true);\n  } else {\n    defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n    defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n  }\n}\n\nvar currentRenderingInstance = null;\n\nfunction renderMixin (Vue) {\n  // install runtime convenience helpers\n  installRenderHelpers(Vue.prototype);\n\n  Vue.prototype.$nextTick = function (fn) {\n    return nextTick(fn, this)\n  };\n\n  Vue.prototype._render = function () {\n    var vm = this;\n    var ref = vm.$options;\n    var render = ref.render;\n    var _parentVnode = ref._parentVnode;\n\n    if (_parentVnode) {\n      vm.$scopedSlots = normalizeScopedSlots(\n        _parentVnode.data.scopedSlots,\n        vm.$slots,\n        vm.$scopedSlots\n      );\n    }\n\n    // set parent vnode. this allows render functions to have access\n    // to the data on the placeholder node.\n    vm.$vnode = _parentVnode;\n    // render self\n    var vnode;\n    try {\n      // There's no need to maintain a stack because all render fns are called\n      // separately from one another. Nested component's render fns are called\n      // when parent component is patched.\n      currentRenderingInstance = vm;\n      vnode = render.call(vm._renderProxy, vm.$createElement);\n    } catch (e) {\n      handleError(e, vm, \"render\");\n      // return error render result,\n      // or previous vnode to prevent render error causing blank component\n      /* istanbul ignore else */\n      if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\n        try {\n          vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n        } catch (e) {\n          handleError(e, vm, \"renderError\");\n          vnode = vm._vnode;\n        }\n      } else {\n        vnode = vm._vnode;\n      }\n    } finally {\n      currentRenderingInstance = null;\n    }\n    // if the returned array contains only a single node, allow it\n    if (Array.isArray(vnode) && vnode.length === 1) {\n      vnode = vnode[0];\n    }\n    // return empty vnode in case the render function errored out\n    if (!(vnode instanceof VNode)) {\n      if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n        warn(\n          'Multiple root nodes returned from render function. Render function ' +\n          'should return a single root node.',\n          vm\n        );\n      }\n      vnode = createEmptyVNode();\n    }\n    // set parent\n    vnode.parent = _parentVnode;\n    return vnode\n  };\n}\n\n/*  */\n\nfunction ensureCtor (comp, base) {\n  if (\n    comp.__esModule ||\n    (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n  ) {\n    comp = comp.default;\n  }\n  return isObject(comp)\n    ? base.extend(comp)\n    : comp\n}\n\nfunction createAsyncPlaceholder (\n  factory,\n  data,\n  context,\n  children,\n  tag\n) {\n  var node = createEmptyVNode();\n  node.asyncFactory = factory;\n  node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n  return node\n}\n\nfunction resolveAsyncComponent (\n  factory,\n  baseCtor\n) {\n  if (isTrue(factory.error) && isDef(factory.errorComp)) {\n    return factory.errorComp\n  }\n\n  if (isDef(factory.resolved)) {\n    return factory.resolved\n  }\n\n  var owner = currentRenderingInstance;\n  if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n    // already pending\n    factory.owners.push(owner);\n  }\n\n  if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n    return factory.loadingComp\n  }\n\n  if (owner && !isDef(factory.owners)) {\n    var owners = factory.owners = [owner];\n    var sync = true;\n    var timerLoading = null;\n    var timerTimeout = null\n\n    ;(owner).$on('hook:destroyed', function () { return remove(owners, owner); });\n\n    var forceRender = function (renderCompleted) {\n      for (var i = 0, l = owners.length; i < l; i++) {\n        (owners[i]).$forceUpdate();\n      }\n\n      if (renderCompleted) {\n        owners.length = 0;\n        if (timerLoading !== null) {\n          clearTimeout(timerLoading);\n          timerLoading = null;\n        }\n        if (timerTimeout !== null) {\n          clearTimeout(timerTimeout);\n          timerTimeout = null;\n        }\n      }\n    };\n\n    var resolve = once(function (res) {\n      // cache resolved\n      factory.resolved = ensureCtor(res, baseCtor);\n      // invoke callbacks only if this is not a synchronous resolve\n      // (async resolves are shimmed as synchronous during SSR)\n      if (!sync) {\n        forceRender(true);\n      } else {\n        owners.length = 0;\n      }\n    });\n\n    var reject = once(function (reason) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Failed to resolve async component: \" + (String(factory)) +\n        (reason ? (\"\\nReason: \" + reason) : '')\n      );\n      if (isDef(factory.errorComp)) {\n        factory.error = true;\n        forceRender(true);\n      }\n    });\n\n    var res = factory(resolve, reject);\n\n    if (isObject(res)) {\n      if (isPromise(res)) {\n        // () => Promise\n        if (isUndef(factory.resolved)) {\n          res.then(resolve, reject);\n        }\n      } else if (isPromise(res.component)) {\n        res.component.then(resolve, reject);\n\n        if (isDef(res.error)) {\n          factory.errorComp = ensureCtor(res.error, baseCtor);\n        }\n\n        if (isDef(res.loading)) {\n          factory.loadingComp = ensureCtor(res.loading, baseCtor);\n          if (res.delay === 0) {\n            factory.loading = true;\n          } else {\n            timerLoading = setTimeout(function () {\n              timerLoading = null;\n              if (isUndef(factory.resolved) && isUndef(factory.error)) {\n                factory.loading = true;\n                forceRender(false);\n              }\n            }, res.delay || 200);\n          }\n        }\n\n        if (isDef(res.timeout)) {\n          timerTimeout = setTimeout(function () {\n            timerTimeout = null;\n            if (isUndef(factory.resolved)) {\n              reject(\n                process.env.NODE_ENV !== 'production'\n                  ? (\"timeout (\" + (res.timeout) + \"ms)\")\n                  : null\n              );\n            }\n          }, res.timeout);\n        }\n      }\n    }\n\n    sync = false;\n    // return in case resolved synchronously\n    return factory.loading\n      ? factory.loadingComp\n      : factory.resolved\n  }\n}\n\n/*  */\n\nfunction isAsyncPlaceholder (node) {\n  return node.isComment && node.asyncFactory\n}\n\n/*  */\n\nfunction getFirstComponentChild (children) {\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      var c = children[i];\n      if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n        return c\n      }\n    }\n  }\n}\n\n/*  */\n\n/*  */\n\nfunction initEvents (vm) {\n  vm._events = Object.create(null);\n  vm._hasHookEvent = false;\n  // init parent attached events\n  var listeners = vm.$options._parentListeners;\n  if (listeners) {\n    updateComponentListeners(vm, listeners);\n  }\n}\n\nvar target;\n\nfunction add (event, fn) {\n  target.$on(event, fn);\n}\n\nfunction remove$1 (event, fn) {\n  target.$off(event, fn);\n}\n\nfunction createOnceHandler (event, fn) {\n  var _target = target;\n  return function onceHandler () {\n    var res = fn.apply(null, arguments);\n    if (res !== null) {\n      _target.$off(event, onceHandler);\n    }\n  }\n}\n\nfunction updateComponentListeners (\n  vm,\n  listeners,\n  oldListeners\n) {\n  target = vm;\n  updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);\n  target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n  var hookRE = /^hook:/;\n  Vue.prototype.$on = function (event, fn) {\n    var vm = this;\n    if (Array.isArray(event)) {\n      for (var i = 0, l = event.length; i < l; i++) {\n        vm.$on(event[i], fn);\n      }\n    } else {\n      (vm._events[event] || (vm._events[event] = [])).push(fn);\n      // optimize hook:event cost by using a boolean flag marked at registration\n      // instead of a hash lookup\n      if (hookRE.test(event)) {\n        vm._hasHookEvent = true;\n      }\n    }\n    return vm\n  };\n\n  Vue.prototype.$once = function (event, fn) {\n    var vm = this;\n    function on () {\n      vm.$off(event, on);\n      fn.apply(vm, arguments);\n    }\n    on.fn = fn;\n    vm.$on(event, on);\n    return vm\n  };\n\n  Vue.prototype.$off = function (event, fn) {\n    var vm = this;\n    // all\n    if (!arguments.length) {\n      vm._events = Object.create(null);\n      return vm\n    }\n    // array of events\n    if (Array.isArray(event)) {\n      for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {\n        vm.$off(event[i$1], fn);\n      }\n      return vm\n    }\n    // specific event\n    var cbs = vm._events[event];\n    if (!cbs) {\n      return vm\n    }\n    if (!fn) {\n      vm._events[event] = null;\n      return vm\n    }\n    // specific handler\n    var cb;\n    var i = cbs.length;\n    while (i--) {\n      cb = cbs[i];\n      if (cb === fn || cb.fn === fn) {\n        cbs.splice(i, 1);\n        break\n      }\n    }\n    return vm\n  };\n\n  Vue.prototype.$emit = function (event) {\n    var vm = this;\n    if (process.env.NODE_ENV !== 'production') {\n      var lowerCaseEvent = event.toLowerCase();\n      if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n        tip(\n          \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n          (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n          \"Note that HTML attributes are case-insensitive and you cannot use \" +\n          \"v-on to listen to camelCase events when using in-DOM templates. \" +\n          \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n        );\n      }\n    }\n    var cbs = vm._events[event];\n    if (cbs) {\n      cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n      var args = toArray(arguments, 1);\n      var info = \"event handler for \\\"\" + event + \"\\\"\";\n      for (var i = 0, l = cbs.length; i < l; i++) {\n        invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n      }\n    }\n    return vm\n  };\n}\n\n/*  */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction setActiveInstance(vm) {\n  var prevActiveInstance = activeInstance;\n  activeInstance = vm;\n  return function () {\n    activeInstance = prevActiveInstance;\n  }\n}\n\nfunction initLifecycle (vm) {\n  var options = vm.$options;\n\n  // locate first non-abstract parent\n  var parent = options.parent;\n  if (parent && !options.abstract) {\n    while (parent.$options.abstract && parent.$parent) {\n      parent = parent.$parent;\n    }\n    parent.$children.push(vm);\n  }\n\n  vm.$parent = parent;\n  vm.$root = parent ? parent.$root : vm;\n\n  vm.$children = [];\n  vm.$refs = {};\n\n  vm._watcher = null;\n  vm._inactive = null;\n  vm._directInactive = false;\n  vm._isMounted = false;\n  vm._isDestroyed = false;\n  vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n  Vue.prototype._update = function (vnode, hydrating) {\n    var vm = this;\n    var prevEl = vm.$el;\n    var prevVnode = vm._vnode;\n    var restoreActiveInstance = setActiveInstance(vm);\n    vm._vnode = vnode;\n    // Vue.prototype.__patch__ is injected in entry points\n    // based on the rendering backend used.\n    if (!prevVnode) {\n      // initial render\n      vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n    } else {\n      // updates\n      vm.$el = vm.__patch__(prevVnode, vnode);\n    }\n    restoreActiveInstance();\n    // update __vue__ reference\n    if (prevEl) {\n      prevEl.__vue__ = null;\n    }\n    if (vm.$el) {\n      vm.$el.__vue__ = vm;\n    }\n    // if parent is an HOC, update its $el as well\n    if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n      vm.$parent.$el = vm.$el;\n    }\n    // updated hook is called by the scheduler to ensure that children are\n    // updated in a parent's updated hook.\n  };\n\n  Vue.prototype.$forceUpdate = function () {\n    var vm = this;\n    if (vm._watcher) {\n      vm._watcher.update();\n    }\n  };\n\n  Vue.prototype.$destroy = function () {\n    var vm = this;\n    if (vm._isBeingDestroyed) {\n      return\n    }\n    callHook(vm, 'beforeDestroy');\n    vm._isBeingDestroyed = true;\n    // remove self from parent\n    var parent = vm.$parent;\n    if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n      remove(parent.$children, vm);\n    }\n    // teardown watchers\n    if (vm._watcher) {\n      vm._watcher.teardown();\n    }\n    var i = vm._watchers.length;\n    while (i--) {\n      vm._watchers[i].teardown();\n    }\n    // remove reference from data ob\n    // frozen object may not have observer.\n    if (vm._data.__ob__) {\n      vm._data.__ob__.vmCount--;\n    }\n    // call the last hook...\n    vm._isDestroyed = true;\n    // invoke destroy hooks on current rendered tree\n    vm.__patch__(vm._vnode, null);\n    // fire destroyed hook\n    callHook(vm, 'destroyed');\n    // turn off all instance listeners.\n    vm.$off();\n    // remove __vue__ reference\n    if (vm.$el) {\n      vm.$el.__vue__ = null;\n    }\n    // release circular reference (#6759)\n    if (vm.$vnode) {\n      vm.$vnode.parent = null;\n    }\n  };\n}\n\nfunction mountComponent (\n  vm,\n  el,\n  hydrating\n) {\n  vm.$el = el;\n  if (!vm.$options.render) {\n    vm.$options.render = createEmptyVNode;\n    if (process.env.NODE_ENV !== 'production') {\n      /* istanbul ignore if */\n      if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n        vm.$options.el || el) {\n        warn(\n          'You are using the runtime-only build of Vue where the template ' +\n          'compiler is not available. Either pre-compile the templates into ' +\n          'render functions, or use the compiler-included build.',\n          vm\n        );\n      } else {\n        warn(\n          'Failed to mount component: template or render function not defined.',\n          vm\n        );\n      }\n    }\n  }\n  callHook(vm, 'beforeMount');\n\n  var updateComponent;\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n    updateComponent = function () {\n      var name = vm._name;\n      var id = vm._uid;\n      var startTag = \"vue-perf-start:\" + id;\n      var endTag = \"vue-perf-end:\" + id;\n\n      mark(startTag);\n      var vnode = vm._render();\n      mark(endTag);\n      measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n      mark(startTag);\n      vm._update(vnode, hydrating);\n      mark(endTag);\n      measure((\"vue \" + name + \" patch\"), startTag, endTag);\n    };\n  } else {\n    updateComponent = function () {\n      vm._update(vm._render(), hydrating);\n    };\n  }\n\n  // we set this to vm._watcher inside the watcher's constructor\n  // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n  // component's mounted hook), which relies on vm._watcher being already defined\n  new Watcher(vm, updateComponent, noop, {\n    before: function before () {\n      if (vm._isMounted && !vm._isDestroyed) {\n        callHook(vm, 'beforeUpdate');\n      }\n    }\n  }, true /* isRenderWatcher */);\n  hydrating = false;\n\n  // manually mounted instance, call mounted on self\n  // mounted is called for render-created child components in its inserted hook\n  if (vm.$vnode == null) {\n    vm._isMounted = true;\n    callHook(vm, 'mounted');\n  }\n  return vm\n}\n\nfunction updateChildComponent (\n  vm,\n  propsData,\n  listeners,\n  parentVnode,\n  renderChildren\n) {\n  if (process.env.NODE_ENV !== 'production') {\n    isUpdatingChildComponent = true;\n  }\n\n  // determine whether component has slot children\n  // we need to do this before overwriting $options._renderChildren.\n\n  // check if there are dynamic scopedSlots (hand-written or compiled but with\n  // dynamic slot names). Static scoped slots compiled from template has the\n  // \"$stable\" marker.\n  var newScopedSlots = parentVnode.data.scopedSlots;\n  var oldScopedSlots = vm.$scopedSlots;\n  var hasDynamicScopedSlot = !!(\n    (newScopedSlots && !newScopedSlots.$stable) ||\n    (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n    (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key)\n  );\n\n  // Any static slot children from the parent may have changed during parent's\n  // update. Dynamic scoped slots may also have changed. In such cases, a forced\n  // update is necessary to ensure correctness.\n  var needsForceUpdate = !!(\n    renderChildren ||               // has new static slots\n    vm.$options._renderChildren ||  // has old static slots\n    hasDynamicScopedSlot\n  );\n\n  vm.$options._parentVnode = parentVnode;\n  vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n  if (vm._vnode) { // update child tree's parent\n    vm._vnode.parent = parentVnode;\n  }\n  vm.$options._renderChildren = renderChildren;\n\n  // update $attrs and $listeners hash\n  // these are also reactive so they may trigger child update if the child\n  // used them during render\n  vm.$attrs = parentVnode.data.attrs || emptyObject;\n  vm.$listeners = listeners || emptyObject;\n\n  // update props\n  if (propsData && vm.$options.props) {\n    toggleObserving(false);\n    var props = vm._props;\n    var propKeys = vm.$options._propKeys || [];\n    for (var i = 0; i < propKeys.length; i++) {\n      var key = propKeys[i];\n      var propOptions = vm.$options.props; // wtf flow?\n      props[key] = validateProp(key, propOptions, propsData, vm);\n    }\n    toggleObserving(true);\n    // keep a copy of raw propsData\n    vm.$options.propsData = propsData;\n  }\n\n  // update listeners\n  listeners = listeners || emptyObject;\n  var oldListeners = vm.$options._parentListeners;\n  vm.$options._parentListeners = listeners;\n  updateComponentListeners(vm, listeners, oldListeners);\n\n  // resolve slots + force update if has children\n  if (needsForceUpdate) {\n    vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n    vm.$forceUpdate();\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    isUpdatingChildComponent = false;\n  }\n}\n\nfunction isInInactiveTree (vm) {\n  while (vm && (vm = vm.$parent)) {\n    if (vm._inactive) { return true }\n  }\n  return false\n}\n\nfunction activateChildComponent (vm, direct) {\n  if (direct) {\n    vm._directInactive = false;\n    if (isInInactiveTree(vm)) {\n      return\n    }\n  } else if (vm._directInactive) {\n    return\n  }\n  if (vm._inactive || vm._inactive === null) {\n    vm._inactive = false;\n    for (var i = 0; i < vm.$children.length; i++) {\n      activateChildComponent(vm.$children[i]);\n    }\n    callHook(vm, 'activated');\n  }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n  if (direct) {\n    vm._directInactive = true;\n    if (isInInactiveTree(vm)) {\n      return\n    }\n  }\n  if (!vm._inactive) {\n    vm._inactive = true;\n    for (var i = 0; i < vm.$children.length; i++) {\n      deactivateChildComponent(vm.$children[i]);\n    }\n    callHook(vm, 'deactivated');\n  }\n}\n\nfunction callHook (vm, hook) {\n  // #7573 disable dep collection when invoking lifecycle hooks\n  pushTarget();\n  var handlers = vm.$options[hook];\n  var info = hook + \" hook\";\n  if (handlers) {\n    for (var i = 0, j = handlers.length; i < j; i++) {\n      invokeWithErrorHandling(handlers[i], vm, null, vm, info);\n    }\n  }\n  if (vm._hasHookEvent) {\n    vm.$emit('hook:' + hook);\n  }\n  popTarget();\n}\n\n/*  */\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n  index = queue.length = activatedChildren.length = 0;\n  has = {};\n  if (process.env.NODE_ENV !== 'production') {\n    circular = {};\n  }\n  waiting = flushing = false;\n}\n\n// Async edge case #6566 requires saving the timestamp when event listeners are\n// attached. However, calling performance.now() has a perf overhead especially\n// if the page has thousands of event listeners. Instead, we take a timestamp\n// every time the scheduler flushes and use that for all event listeners\n// attached during that flush.\nvar currentFlushTimestamp = 0;\n\n// Async edge case fix requires storing an event listener's attach timestamp.\nvar getNow = Date.now;\n\n// Determine what event timestamp the browser is using. Annoyingly, the\n// timestamp can either be hi-res (relative to page load) or low-res\n// (relative to UNIX epoch), so in order to compare time we have to use the\n// same timestamp type when saving the flush timestamp.\n// All IE versions use low-res event timestamps, and have problematic clock\n// implementations (#9632)\nif (inBrowser && !isIE) {\n  var performance = window.performance;\n  if (\n    performance &&\n    typeof performance.now === 'function' &&\n    getNow() > document.createEvent('Event').timeStamp\n  ) {\n    // if the event timestamp, although evaluated AFTER the Date.now(), is\n    // smaller than it, it means the event is using a hi-res timestamp,\n    // and we need to use the hi-res version for event listener timestamps as\n    // well.\n    getNow = function () { return performance.now(); };\n  }\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n  currentFlushTimestamp = getNow();\n  flushing = true;\n  var watcher, id;\n\n  // Sort queue before flush.\n  // This ensures that:\n  // 1. Components are updated from parent to child. (because parent is always\n  //    created before the child)\n  // 2. A component's user watchers are run before its render watcher (because\n  //    user watchers are created before the render watcher)\n  // 3. If a component is destroyed during a parent component's watcher run,\n  //    its watchers can be skipped.\n  queue.sort(function (a, b) { return a.id - b.id; });\n\n  // do not cache length because more watchers might be pushed\n  // as we run existing watchers\n  for (index = 0; index < queue.length; index++) {\n    watcher = queue[index];\n    if (watcher.before) {\n      watcher.before();\n    }\n    id = watcher.id;\n    has[id] = null;\n    watcher.run();\n    // in dev build, check and stop circular updates.\n    if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n      circular[id] = (circular[id] || 0) + 1;\n      if (circular[id] > MAX_UPDATE_COUNT) {\n        warn(\n          'You may have an infinite update loop ' + (\n            watcher.user\n              ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n              : \"in a component render function.\"\n          ),\n          watcher.vm\n        );\n        break\n      }\n    }\n  }\n\n  // keep copies of post queues before resetting state\n  var activatedQueue = activatedChildren.slice();\n  var updatedQueue = queue.slice();\n\n  resetSchedulerState();\n\n  // call component updated and activated hooks\n  callActivatedHooks(activatedQueue);\n  callUpdatedHooks(updatedQueue);\n\n  // devtool hook\n  /* istanbul ignore if */\n  if (devtools && config.devtools) {\n    devtools.emit('flush');\n  }\n}\n\nfunction callUpdatedHooks (queue) {\n  var i = queue.length;\n  while (i--) {\n    var watcher = queue[i];\n    var vm = watcher.vm;\n    if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n      callHook(vm, 'updated');\n    }\n  }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n  // setting _inactive to false here so that a render function can\n  // rely on checking whether it's in an inactive tree (e.g. router-view)\n  vm._inactive = false;\n  activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n  for (var i = 0; i < queue.length; i++) {\n    queue[i]._inactive = true;\n    activateChildComponent(queue[i], true /* true */);\n  }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n  var id = watcher.id;\n  if (has[id] == null) {\n    has[id] = true;\n    if (!flushing) {\n      queue.push(watcher);\n    } else {\n      // if already flushing, splice the watcher based on its id\n      // if already past its id, it will be run next immediately.\n      var i = queue.length - 1;\n      while (i > index && queue[i].id > watcher.id) {\n        i--;\n      }\n      queue.splice(i + 1, 0, watcher);\n    }\n    // queue the flush\n    if (!waiting) {\n      waiting = true;\n\n      if (process.env.NODE_ENV !== 'production' && !config.async) {\n        flushSchedulerQueue();\n        return\n      }\n      nextTick(flushSchedulerQueue);\n    }\n  }\n}\n\n/*  */\n\n\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n  vm,\n  expOrFn,\n  cb,\n  options,\n  isRenderWatcher\n) {\n  this.vm = vm;\n  if (isRenderWatcher) {\n    vm._watcher = this;\n  }\n  vm._watchers.push(this);\n  // options\n  if (options) {\n    this.deep = !!options.deep;\n    this.user = !!options.user;\n    this.lazy = !!options.lazy;\n    this.sync = !!options.sync;\n    this.before = options.before;\n  } else {\n    this.deep = this.user = this.lazy = this.sync = false;\n  }\n  this.cb = cb;\n  this.id = ++uid$2; // uid for batching\n  this.active = true;\n  this.dirty = this.lazy; // for lazy watchers\n  this.deps = [];\n  this.newDeps = [];\n  this.depIds = new _Set();\n  this.newDepIds = new _Set();\n  this.expression = process.env.NODE_ENV !== 'production'\n    ? expOrFn.toString()\n    : '';\n  // parse expression for getter\n  if (typeof expOrFn === 'function') {\n    this.getter = expOrFn;\n  } else {\n    this.getter = parsePath(expOrFn);\n    if (!this.getter) {\n      this.getter = noop;\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n        'Watcher only accepts simple dot-delimited paths. ' +\n        'For full control, use a function instead.',\n        vm\n      );\n    }\n  }\n  this.value = this.lazy\n    ? undefined\n    : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n  pushTarget(this);\n  var value;\n  var vm = this.vm;\n  try {\n    value = this.getter.call(vm, vm);\n  } catch (e) {\n    if (this.user) {\n      handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n    } else {\n      throw e\n    }\n  } finally {\n    // \"touch\" every property so they are all tracked as\n    // dependencies for deep watching\n    if (this.deep) {\n      traverse(value);\n    }\n    popTarget();\n    this.cleanupDeps();\n  }\n  return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n  var id = dep.id;\n  if (!this.newDepIds.has(id)) {\n    this.newDepIds.add(id);\n    this.newDeps.push(dep);\n    if (!this.depIds.has(id)) {\n      dep.addSub(this);\n    }\n  }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n  var i = this.deps.length;\n  while (i--) {\n    var dep = this.deps[i];\n    if (!this.newDepIds.has(dep.id)) {\n      dep.removeSub(this);\n    }\n  }\n  var tmp = this.depIds;\n  this.depIds = this.newDepIds;\n  this.newDepIds = tmp;\n  this.newDepIds.clear();\n  tmp = this.deps;\n  this.deps = this.newDeps;\n  this.newDeps = tmp;\n  this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n  /* istanbul ignore else */\n  if (this.lazy) {\n    this.dirty = true;\n  } else if (this.sync) {\n    this.run();\n  } else {\n    queueWatcher(this);\n  }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n  if (this.active) {\n    var value = this.get();\n    if (\n      value !== this.value ||\n      // Deep watchers and watchers on Object/Arrays should fire even\n      // when the value is the same, because the value may\n      // have mutated.\n      isObject(value) ||\n      this.deep\n    ) {\n      // set new value\n      var oldValue = this.value;\n      this.value = value;\n      if (this.user) {\n        try {\n          this.cb.call(this.vm, value, oldValue);\n        } catch (e) {\n          handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n        }\n      } else {\n        this.cb.call(this.vm, value, oldValue);\n      }\n    }\n  }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n  this.value = this.get();\n  this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n  var i = this.deps.length;\n  while (i--) {\n    this.deps[i].depend();\n  }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n  if (this.active) {\n    // remove self from vm's watcher list\n    // this is a somewhat expensive operation so we skip it\n    // if the vm is being destroyed.\n    if (!this.vm._isBeingDestroyed) {\n      remove(this.vm._watchers, this);\n    }\n    var i = this.deps.length;\n    while (i--) {\n      this.deps[i].removeSub(this);\n    }\n    this.active = false;\n  }\n};\n\n/*  */\n\nvar sharedPropertyDefinition = {\n  enumerable: true,\n  configurable: true,\n  get: noop,\n  set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n  sharedPropertyDefinition.get = function proxyGetter () {\n    return this[sourceKey][key]\n  };\n  sharedPropertyDefinition.set = function proxySetter (val) {\n    this[sourceKey][key] = val;\n  };\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n  vm._watchers = [];\n  var opts = vm.$options;\n  if (opts.props) { initProps(vm, opts.props); }\n  if (opts.methods) { initMethods(vm, opts.methods); }\n  if (opts.data) {\n    initData(vm);\n  } else {\n    observe(vm._data = {}, true /* asRootData */);\n  }\n  if (opts.computed) { initComputed(vm, opts.computed); }\n  if (opts.watch && opts.watch !== nativeWatch) {\n    initWatch(vm, opts.watch);\n  }\n}\n\nfunction initProps (vm, propsOptions) {\n  var propsData = vm.$options.propsData || {};\n  var props = vm._props = {};\n  // cache prop keys so that future props updates can iterate using Array\n  // instead of dynamic object key enumeration.\n  var keys = vm.$options._propKeys = [];\n  var isRoot = !vm.$parent;\n  // root instance props should be converted\n  if (!isRoot) {\n    toggleObserving(false);\n  }\n  var loop = function ( key ) {\n    keys.push(key);\n    var value = validateProp(key, propsOptions, propsData, vm);\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== 'production') {\n      var hyphenatedKey = hyphenate(key);\n      if (isReservedAttribute(hyphenatedKey) ||\n          config.isReservedAttr(hyphenatedKey)) {\n        warn(\n          (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n          vm\n        );\n      }\n      defineReactive$$1(props, key, value, function () {\n        if (!isRoot && !isUpdatingChildComponent) {\n          warn(\n            \"Avoid mutating a prop directly since the value will be \" +\n            \"overwritten whenever the parent component re-renders. \" +\n            \"Instead, use a data or computed property based on the prop's \" +\n            \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n            vm\n          );\n        }\n      });\n    } else {\n      defineReactive$$1(props, key, value);\n    }\n    // static props are already proxied on the component's prototype\n    // during Vue.extend(). We only need to proxy props defined at\n    // instantiation here.\n    if (!(key in vm)) {\n      proxy(vm, \"_props\", key);\n    }\n  };\n\n  for (var key in propsOptions) loop( key );\n  toggleObserving(true);\n}\n\nfunction initData (vm) {\n  var data = vm.$options.data;\n  data = vm._data = typeof data === 'function'\n    ? getData(data, vm)\n    : data || {};\n  if (!isPlainObject(data)) {\n    data = {};\n    process.env.NODE_ENV !== 'production' && warn(\n      'data functions should return an object:\\n' +\n      'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n      vm\n    );\n  }\n  // proxy data on instance\n  var keys = Object.keys(data);\n  var props = vm.$options.props;\n  var methods = vm.$options.methods;\n  var i = keys.length;\n  while (i--) {\n    var key = keys[i];\n    if (process.env.NODE_ENV !== 'production') {\n      if (methods && hasOwn(methods, key)) {\n        warn(\n          (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n          vm\n        );\n      }\n    }\n    if (props && hasOwn(props, key)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n        \"Use prop default value instead.\",\n        vm\n      );\n    } else if (!isReserved(key)) {\n      proxy(vm, \"_data\", key);\n    }\n  }\n  // observe data\n  observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n  // #7573 disable dep collection when invoking data getters\n  pushTarget();\n  try {\n    return data.call(vm, vm)\n  } catch (e) {\n    handleError(e, vm, \"data()\");\n    return {}\n  } finally {\n    popTarget();\n  }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n  // $flow-disable-line\n  var watchers = vm._computedWatchers = Object.create(null);\n  // computed properties are just getters during SSR\n  var isSSR = isServerRendering();\n\n  for (var key in computed) {\n    var userDef = computed[key];\n    var getter = typeof userDef === 'function' ? userDef : userDef.get;\n    if (process.env.NODE_ENV !== 'production' && getter == null) {\n      warn(\n        (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n        vm\n      );\n    }\n\n    if (!isSSR) {\n      // create internal watcher for the computed property.\n      watchers[key] = new Watcher(\n        vm,\n        getter || noop,\n        noop,\n        computedWatcherOptions\n      );\n    }\n\n    // component-defined computed properties are already defined on the\n    // component prototype. We only need to define computed properties defined\n    // at instantiation here.\n    if (!(key in vm)) {\n      defineComputed(vm, key, userDef);\n    } else if (process.env.NODE_ENV !== 'production') {\n      if (key in vm.$data) {\n        warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n      } else if (vm.$options.props && key in vm.$options.props) {\n        warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n      }\n    }\n  }\n}\n\nfunction defineComputed (\n  target,\n  key,\n  userDef\n) {\n  var shouldCache = !isServerRendering();\n  if (typeof userDef === 'function') {\n    sharedPropertyDefinition.get = shouldCache\n      ? createComputedGetter(key)\n      : createGetterInvoker(userDef);\n    sharedPropertyDefinition.set = noop;\n  } else {\n    sharedPropertyDefinition.get = userDef.get\n      ? shouldCache && userDef.cache !== false\n        ? createComputedGetter(key)\n        : createGetterInvoker(userDef.get)\n      : noop;\n    sharedPropertyDefinition.set = userDef.set || noop;\n  }\n  if (process.env.NODE_ENV !== 'production' &&\n      sharedPropertyDefinition.set === noop) {\n    sharedPropertyDefinition.set = function () {\n      warn(\n        (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n        this\n      );\n    };\n  }\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n  return function computedGetter () {\n    var watcher = this._computedWatchers && this._computedWatchers[key];\n    if (watcher) {\n      if (watcher.dirty) {\n        watcher.evaluate();\n      }\n      if (Dep.target) {\n        watcher.depend();\n      }\n      return watcher.value\n    }\n  }\n}\n\nfunction createGetterInvoker(fn) {\n  return function computedGetter () {\n    return fn.call(this, this)\n  }\n}\n\nfunction initMethods (vm, methods) {\n  var props = vm.$options.props;\n  for (var key in methods) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof methods[key] !== 'function') {\n        warn(\n          \"Method \\\"\" + key + \"\\\" has type \\\"\" + (typeof methods[key]) + \"\\\" in the component definition. \" +\n          \"Did you reference the function correctly?\",\n          vm\n        );\n      }\n      if (props && hasOwn(props, key)) {\n        warn(\n          (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n          vm\n        );\n      }\n      if ((key in vm) && isReserved(key)) {\n        warn(\n          \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n          \"Avoid defining component methods that start with _ or $.\"\n        );\n      }\n    }\n    vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\n  }\n}\n\nfunction initWatch (vm, watch) {\n  for (var key in watch) {\n    var handler = watch[key];\n    if (Array.isArray(handler)) {\n      for (var i = 0; i < handler.length; i++) {\n        createWatcher(vm, key, handler[i]);\n      }\n    } else {\n      createWatcher(vm, key, handler);\n    }\n  }\n}\n\nfunction createWatcher (\n  vm,\n  expOrFn,\n  handler,\n  options\n) {\n  if (isPlainObject(handler)) {\n    options = handler;\n    handler = handler.handler;\n  }\n  if (typeof handler === 'string') {\n    handler = vm[handler];\n  }\n  return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n  // flow somehow has problems with directly declared definition object\n  // when using Object.defineProperty, so we have to procedurally build up\n  // the object here.\n  var dataDef = {};\n  dataDef.get = function () { return this._data };\n  var propsDef = {};\n  propsDef.get = function () { return this._props };\n  if (process.env.NODE_ENV !== 'production') {\n    dataDef.set = function () {\n      warn(\n        'Avoid replacing instance root $data. ' +\n        'Use nested data properties instead.',\n        this\n      );\n    };\n    propsDef.set = function () {\n      warn(\"$props is readonly.\", this);\n    };\n  }\n  Object.defineProperty(Vue.prototype, '$data', dataDef);\n  Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n  Vue.prototype.$set = set;\n  Vue.prototype.$delete = del;\n\n  Vue.prototype.$watch = function (\n    expOrFn,\n    cb,\n    options\n  ) {\n    var vm = this;\n    if (isPlainObject(cb)) {\n      return createWatcher(vm, expOrFn, cb, options)\n    }\n    options = options || {};\n    options.user = true;\n    var watcher = new Watcher(vm, expOrFn, cb, options);\n    if (options.immediate) {\n      try {\n        cb.call(vm, watcher.value);\n      } catch (error) {\n        handleError(error, vm, (\"callback for immediate watcher \\\"\" + (watcher.expression) + \"\\\"\"));\n      }\n    }\n    return function unwatchFn () {\n      watcher.teardown();\n    }\n  };\n}\n\n/*  */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n  Vue.prototype._init = function (options) {\n    var vm = this;\n    // a uid\n    vm._uid = uid$3++;\n\n    var startTag, endTag;\n    /* istanbul ignore if */\n    if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n      startTag = \"vue-perf-start:\" + (vm._uid);\n      endTag = \"vue-perf-end:\" + (vm._uid);\n      mark(startTag);\n    }\n\n    // a flag to avoid this being observed\n    vm._isVue = true;\n    // merge options\n    if (options && options._isComponent) {\n      // optimize internal component instantiation\n      // since dynamic options merging is pretty slow, and none of the\n      // internal component options needs special treatment.\n      initInternalComponent(vm, options);\n    } else {\n      vm.$options = mergeOptions(\n        resolveConstructorOptions(vm.constructor),\n        options || {},\n        vm\n      );\n    }\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== 'production') {\n      initProxy(vm);\n    } else {\n      vm._renderProxy = vm;\n    }\n    // expose real self\n    vm._self = vm;\n    initLifecycle(vm);\n    initEvents(vm);\n    initRender(vm);\n    callHook(vm, 'beforeCreate');\n    initInjections(vm); // resolve injections before data/props\n    initState(vm);\n    initProvide(vm); // resolve provide after data/props\n    callHook(vm, 'created');\n\n    /* istanbul ignore if */\n    if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n      vm._name = formatComponentName(vm, false);\n      mark(endTag);\n      measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n    }\n\n    if (vm.$options.el) {\n      vm.$mount(vm.$options.el);\n    }\n  };\n}\n\nfunction initInternalComponent (vm, options) {\n  var opts = vm.$options = Object.create(vm.constructor.options);\n  // doing this because it's faster than dynamic enumeration.\n  var parentVnode = options._parentVnode;\n  opts.parent = options.parent;\n  opts._parentVnode = parentVnode;\n\n  var vnodeComponentOptions = parentVnode.componentOptions;\n  opts.propsData = vnodeComponentOptions.propsData;\n  opts._parentListeners = vnodeComponentOptions.listeners;\n  opts._renderChildren = vnodeComponentOptions.children;\n  opts._componentTag = vnodeComponentOptions.tag;\n\n  if (options.render) {\n    opts.render = options.render;\n    opts.staticRenderFns = options.staticRenderFns;\n  }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n  var options = Ctor.options;\n  if (Ctor.super) {\n    var superOptions = resolveConstructorOptions(Ctor.super);\n    var cachedSuperOptions = Ctor.superOptions;\n    if (superOptions !== cachedSuperOptions) {\n      // super option changed,\n      // need to resolve new options.\n      Ctor.superOptions = superOptions;\n      // check if there are any late-modified/attached options (#4976)\n      var modifiedOptions = resolveModifiedOptions(Ctor);\n      // update base extend options\n      if (modifiedOptions) {\n        extend(Ctor.extendOptions, modifiedOptions);\n      }\n      options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n      if (options.name) {\n        options.components[options.name] = Ctor;\n      }\n    }\n  }\n  return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n  var modified;\n  var latest = Ctor.options;\n  var sealed = Ctor.sealedOptions;\n  for (var key in latest) {\n    if (latest[key] !== sealed[key]) {\n      if (!modified) { modified = {}; }\n      modified[key] = latest[key];\n    }\n  }\n  return modified\n}\n\nfunction Vue (options) {\n  if (process.env.NODE_ENV !== 'production' &&\n    !(this instanceof Vue)\n  ) {\n    warn('Vue is a constructor and should be called with the `new` keyword');\n  }\n  this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/*  */\n\nfunction initUse (Vue) {\n  Vue.use = function (plugin) {\n    var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n    if (installedPlugins.indexOf(plugin) > -1) {\n      return this\n    }\n\n    // additional parameters\n    var args = toArray(arguments, 1);\n    args.unshift(this);\n    if (typeof plugin.install === 'function') {\n      plugin.install.apply(plugin, args);\n    } else if (typeof plugin === 'function') {\n      plugin.apply(null, args);\n    }\n    installedPlugins.push(plugin);\n    return this\n  };\n}\n\n/*  */\n\nfunction initMixin$1 (Vue) {\n  Vue.mixin = function (mixin) {\n    this.options = mergeOptions(this.options, mixin);\n    return this\n  };\n}\n\n/*  */\n\nfunction initExtend (Vue) {\n  /**\n   * Each instance constructor, including Vue, has a unique\n   * cid. This enables us to create wrapped \"child\n   * constructors\" for prototypal inheritance and cache them.\n   */\n  Vue.cid = 0;\n  var cid = 1;\n\n  /**\n   * Class inheritance\n   */\n  Vue.extend = function (extendOptions) {\n    extendOptions = extendOptions || {};\n    var Super = this;\n    var SuperId = Super.cid;\n    var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n    if (cachedCtors[SuperId]) {\n      return cachedCtors[SuperId]\n    }\n\n    var name = extendOptions.name || Super.options.name;\n    if (process.env.NODE_ENV !== 'production' && name) {\n      validateComponentName(name);\n    }\n\n    var Sub = function VueComponent (options) {\n      this._init(options);\n    };\n    Sub.prototype = Object.create(Super.prototype);\n    Sub.prototype.constructor = Sub;\n    Sub.cid = cid++;\n    Sub.options = mergeOptions(\n      Super.options,\n      extendOptions\n    );\n    Sub['super'] = Super;\n\n    // For props and computed properties, we define the proxy getters on\n    // the Vue instances at extension time, on the extended prototype. This\n    // avoids Object.defineProperty calls for each instance created.\n    if (Sub.options.props) {\n      initProps$1(Sub);\n    }\n    if (Sub.options.computed) {\n      initComputed$1(Sub);\n    }\n\n    // allow further extension/mixin/plugin usage\n    Sub.extend = Super.extend;\n    Sub.mixin = Super.mixin;\n    Sub.use = Super.use;\n\n    // create asset registers, so extended classes\n    // can have their private assets too.\n    ASSET_TYPES.forEach(function (type) {\n      Sub[type] = Super[type];\n    });\n    // enable recursive self-lookup\n    if (name) {\n      Sub.options.components[name] = Sub;\n    }\n\n    // keep a reference to the super options at extension time.\n    // later at instantiation we can check if Super's options have\n    // been updated.\n    Sub.superOptions = Super.options;\n    Sub.extendOptions = extendOptions;\n    Sub.sealedOptions = extend({}, Sub.options);\n\n    // cache constructor\n    cachedCtors[SuperId] = Sub;\n    return Sub\n  };\n}\n\nfunction initProps$1 (Comp) {\n  var props = Comp.options.props;\n  for (var key in props) {\n    proxy(Comp.prototype, \"_props\", key);\n  }\n}\n\nfunction initComputed$1 (Comp) {\n  var computed = Comp.options.computed;\n  for (var key in computed) {\n    defineComputed(Comp.prototype, key, computed[key]);\n  }\n}\n\n/*  */\n\nfunction initAssetRegisters (Vue) {\n  /**\n   * Create asset registration methods.\n   */\n  ASSET_TYPES.forEach(function (type) {\n    Vue[type] = function (\n      id,\n      definition\n    ) {\n      if (!definition) {\n        return this.options[type + 's'][id]\n      } else {\n        /* istanbul ignore if */\n        if (process.env.NODE_ENV !== 'production' && type === 'component') {\n          validateComponentName(id);\n        }\n        if (type === 'component' && isPlainObject(definition)) {\n          definition.name = definition.name || id;\n          definition = this.options._base.extend(definition);\n        }\n        if (type === 'directive' && typeof definition === 'function') {\n          definition = { bind: definition, update: definition };\n        }\n        this.options[type + 's'][id] = definition;\n        return definition\n      }\n    };\n  });\n}\n\n/*  */\n\n\n\nfunction getComponentName (opts) {\n  return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n  if (Array.isArray(pattern)) {\n    return pattern.indexOf(name) > -1\n  } else if (typeof pattern === 'string') {\n    return pattern.split(',').indexOf(name) > -1\n  } else if (isRegExp(pattern)) {\n    return pattern.test(name)\n  }\n  /* istanbul ignore next */\n  return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n  var cache = keepAliveInstance.cache;\n  var keys = keepAliveInstance.keys;\n  var _vnode = keepAliveInstance._vnode;\n  for (var key in cache) {\n    var cachedNode = cache[key];\n    if (cachedNode) {\n      var name = getComponentName(cachedNode.componentOptions);\n      if (name && !filter(name)) {\n        pruneCacheEntry(cache, key, keys, _vnode);\n      }\n    }\n  }\n}\n\nfunction pruneCacheEntry (\n  cache,\n  key,\n  keys,\n  current\n) {\n  var cached$$1 = cache[key];\n  if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n    cached$$1.componentInstance.$destroy();\n  }\n  cache[key] = null;\n  remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n  name: 'keep-alive',\n  abstract: true,\n\n  props: {\n    include: patternTypes,\n    exclude: patternTypes,\n    max: [String, Number]\n  },\n\n  created: function created () {\n    this.cache = Object.create(null);\n    this.keys = [];\n  },\n\n  destroyed: function destroyed () {\n    for (var key in this.cache) {\n      pruneCacheEntry(this.cache, key, this.keys);\n    }\n  },\n\n  mounted: function mounted () {\n    var this$1 = this;\n\n    this.$watch('include', function (val) {\n      pruneCache(this$1, function (name) { return matches(val, name); });\n    });\n    this.$watch('exclude', function (val) {\n      pruneCache(this$1, function (name) { return !matches(val, name); });\n    });\n  },\n\n  render: function render () {\n    var slot = this.$slots.default;\n    var vnode = getFirstComponentChild(slot);\n    var componentOptions = vnode && vnode.componentOptions;\n    if (componentOptions) {\n      // check pattern\n      var name = getComponentName(componentOptions);\n      var ref = this;\n      var include = ref.include;\n      var exclude = ref.exclude;\n      if (\n        // not included\n        (include && (!name || !matches(include, name))) ||\n        // excluded\n        (exclude && name && matches(exclude, name))\n      ) {\n        return vnode\n      }\n\n      var ref$1 = this;\n      var cache = ref$1.cache;\n      var keys = ref$1.keys;\n      var key = vnode.key == null\n        // same constructor may get registered as different local components\n        // so cid alone is not enough (#3269)\n        ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n        : vnode.key;\n      if (cache[key]) {\n        vnode.componentInstance = cache[key].componentInstance;\n        // make current key freshest\n        remove(keys, key);\n        keys.push(key);\n      } else {\n        cache[key] = vnode;\n        keys.push(key);\n        // prune oldest entry\n        if (this.max && keys.length > parseInt(this.max)) {\n          pruneCacheEntry(cache, keys[0], keys, this._vnode);\n        }\n      }\n\n      vnode.data.keepAlive = true;\n    }\n    return vnode || (slot && slot[0])\n  }\n};\n\nvar builtInComponents = {\n  KeepAlive: KeepAlive\n};\n\n/*  */\n\nfunction initGlobalAPI (Vue) {\n  // config\n  var configDef = {};\n  configDef.get = function () { return config; };\n  if (process.env.NODE_ENV !== 'production') {\n    configDef.set = function () {\n      warn(\n        'Do not replace the Vue.config object, set individual fields instead.'\n      );\n    };\n  }\n  Object.defineProperty(Vue, 'config', configDef);\n\n  // exposed util methods.\n  // NOTE: these are not considered part of the public API - avoid relying on\n  // them unless you are aware of the risk.\n  Vue.util = {\n    warn: warn,\n    extend: extend,\n    mergeOptions: mergeOptions,\n    defineReactive: defineReactive$$1\n  };\n\n  Vue.set = set;\n  Vue.delete = del;\n  Vue.nextTick = nextTick;\n\n  // 2.6 explicit observable API\n  Vue.observable = function (obj) {\n    observe(obj);\n    return obj\n  };\n\n  Vue.options = Object.create(null);\n  ASSET_TYPES.forEach(function (type) {\n    Vue.options[type + 's'] = Object.create(null);\n  });\n\n  // this is used to identify the \"base\" constructor to extend all plain-object\n  // components with in Weex's multi-instance scenarios.\n  Vue.options._base = Vue;\n\n  extend(Vue.options.components, builtInComponents);\n\n  initUse(Vue);\n  initMixin$1(Vue);\n  initExtend(Vue);\n  initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n  get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n  get: function get () {\n    /* istanbul ignore next */\n    return this.$vnode && this.$vnode.ssrContext\n  }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n  value: FunctionalRenderContext\n});\n\nVue.version = '2.6.11';\n\n/*  */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n  return (\n    (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n    (attr === 'selected' && tag === 'option') ||\n    (attr === 'checked' && tag === 'input') ||\n    (attr === 'muted' && tag === 'video')\n  )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n\nvar convertEnumeratedValue = function (key, value) {\n  return isFalsyAttrValue(value) || value === 'false'\n    ? 'false'\n    // allow arbitrary string value for contenteditable\n    : key === 'contenteditable' && isValidContentEditableValue(value)\n      ? value\n      : 'true'\n};\n\nvar isBooleanAttr = makeMap(\n  'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n  'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n  'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n  'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n  'required,reversed,scoped,seamless,selected,sortable,translate,' +\n  'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n  return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n  return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n  return val == null || val === false\n};\n\n/*  */\n\nfunction genClassForVnode (vnode) {\n  var data = vnode.data;\n  var parentNode = vnode;\n  var childNode = vnode;\n  while (isDef(childNode.componentInstance)) {\n    childNode = childNode.componentInstance._vnode;\n    if (childNode && childNode.data) {\n      data = mergeClassData(childNode.data, data);\n    }\n  }\n  while (isDef(parentNode = parentNode.parent)) {\n    if (parentNode && parentNode.data) {\n      data = mergeClassData(data, parentNode.data);\n    }\n  }\n  return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n  return {\n    staticClass: concat(child.staticClass, parent.staticClass),\n    class: isDef(child.class)\n      ? [child.class, parent.class]\n      : parent.class\n  }\n}\n\nfunction renderClass (\n  staticClass,\n  dynamicClass\n) {\n  if (isDef(staticClass) || isDef(dynamicClass)) {\n    return concat(staticClass, stringifyClass(dynamicClass))\n  }\n  /* istanbul ignore next */\n  return ''\n}\n\nfunction concat (a, b) {\n  return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n  if (Array.isArray(value)) {\n    return stringifyArray(value)\n  }\n  if (isObject(value)) {\n    return stringifyObject(value)\n  }\n  if (typeof value === 'string') {\n    return value\n  }\n  /* istanbul ignore next */\n  return ''\n}\n\nfunction stringifyArray (value) {\n  var res = '';\n  var stringified;\n  for (var i = 0, l = value.length; i < l; i++) {\n    if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n      if (res) { res += ' '; }\n      res += stringified;\n    }\n  }\n  return res\n}\n\nfunction stringifyObject (value) {\n  var res = '';\n  for (var key in value) {\n    if (value[key]) {\n      if (res) { res += ' '; }\n      res += key;\n    }\n  }\n  return res\n}\n\n/*  */\n\nvar namespaceMap = {\n  svg: 'http://www.w3.org/2000/svg',\n  math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n  'html,body,base,head,link,meta,style,title,' +\n  'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n  'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n  'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n  's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n  'embed,object,param,source,canvas,script,noscript,del,ins,' +\n  'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n  'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n  'output,progress,select,textarea,' +\n  'details,dialog,menu,menuitem,summary,' +\n  'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n  'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n  'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n  'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n  true\n);\n\nvar isReservedTag = function (tag) {\n  return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n  if (isSVG(tag)) {\n    return 'svg'\n  }\n  // basic support for MathML\n  // note it doesn't support other MathML elements being component roots\n  if (tag === 'math') {\n    return 'math'\n  }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n  /* istanbul ignore if */\n  if (!inBrowser) {\n    return true\n  }\n  if (isReservedTag(tag)) {\n    return false\n  }\n  tag = tag.toLowerCase();\n  /* istanbul ignore if */\n  if (unknownElementCache[tag] != null) {\n    return unknownElementCache[tag]\n  }\n  var el = document.createElement(tag);\n  if (tag.indexOf('-') > -1) {\n    // http://stackoverflow.com/a/28210364/1070244\n    return (unknownElementCache[tag] = (\n      el.constructor === window.HTMLUnknownElement ||\n      el.constructor === window.HTMLElement\n    ))\n  } else {\n    return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n  }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/*  */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n  if (typeof el === 'string') {\n    var selected = document.querySelector(el);\n    if (!selected) {\n      process.env.NODE_ENV !== 'production' && warn(\n        'Cannot find element: ' + el\n      );\n      return document.createElement('div')\n    }\n    return selected\n  } else {\n    return el\n  }\n}\n\n/*  */\n\nfunction createElement$1 (tagName, vnode) {\n  var elm = document.createElement(tagName);\n  if (tagName !== 'select') {\n    return elm\n  }\n  // false or null will remove the attribute but undefined will not\n  if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n    elm.setAttribute('multiple', 'multiple');\n  }\n  return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n  return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n  return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n  return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n  parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n  node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n  node.appendChild(child);\n}\n\nfunction parentNode (node) {\n  return node.parentNode\n}\n\nfunction nextSibling (node) {\n  return node.nextSibling\n}\n\nfunction tagName (node) {\n  return node.tagName\n}\n\nfunction setTextContent (node, text) {\n  node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n  node.setAttribute(scopeId, '');\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n  createElement: createElement$1,\n  createElementNS: createElementNS,\n  createTextNode: createTextNode,\n  createComment: createComment,\n  insertBefore: insertBefore,\n  removeChild: removeChild,\n  appendChild: appendChild,\n  parentNode: parentNode,\n  nextSibling: nextSibling,\n  tagName: tagName,\n  setTextContent: setTextContent,\n  setStyleScope: setStyleScope\n});\n\n/*  */\n\nvar ref = {\n  create: function create (_, vnode) {\n    registerRef(vnode);\n  },\n  update: function update (oldVnode, vnode) {\n    if (oldVnode.data.ref !== vnode.data.ref) {\n      registerRef(oldVnode, true);\n      registerRef(vnode);\n    }\n  },\n  destroy: function destroy (vnode) {\n    registerRef(vnode, true);\n  }\n};\n\nfunction registerRef (vnode, isRemoval) {\n  var key = vnode.data.ref;\n  if (!isDef(key)) { return }\n\n  var vm = vnode.context;\n  var ref = vnode.componentInstance || vnode.elm;\n  var refs = vm.$refs;\n  if (isRemoval) {\n    if (Array.isArray(refs[key])) {\n      remove(refs[key], ref);\n    } else if (refs[key] === ref) {\n      refs[key] = undefined;\n    }\n  } else {\n    if (vnode.data.refInFor) {\n      if (!Array.isArray(refs[key])) {\n        refs[key] = [ref];\n      } else if (refs[key].indexOf(ref) < 0) {\n        // $flow-disable-line\n        refs[key].push(ref);\n      }\n    } else {\n      refs[key] = ref;\n    }\n  }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n  return (\n    a.key === b.key && (\n      (\n        a.tag === b.tag &&\n        a.isComment === b.isComment &&\n        isDef(a.data) === isDef(b.data) &&\n        sameInputType(a, b)\n      ) || (\n        isTrue(a.isAsyncPlaceholder) &&\n        a.asyncFactory === b.asyncFactory &&\n        isUndef(b.asyncFactory.error)\n      )\n    )\n  )\n}\n\nfunction sameInputType (a, b) {\n  if (a.tag !== 'input') { return true }\n  var i;\n  var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n  var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n  return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n  var i, key;\n  var map = {};\n  for (i = beginIdx; i <= endIdx; ++i) {\n    key = children[i].key;\n    if (isDef(key)) { map[key] = i; }\n  }\n  return map\n}\n\nfunction createPatchFunction (backend) {\n  var i, j;\n  var cbs = {};\n\n  var modules = backend.modules;\n  var nodeOps = backend.nodeOps;\n\n  for (i = 0; i < hooks.length; ++i) {\n    cbs[hooks[i]] = [];\n    for (j = 0; j < modules.length; ++j) {\n      if (isDef(modules[j][hooks[i]])) {\n        cbs[hooks[i]].push(modules[j][hooks[i]]);\n      }\n    }\n  }\n\n  function emptyNodeAt (elm) {\n    return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n  }\n\n  function createRmCb (childElm, listeners) {\n    function remove$$1 () {\n      if (--remove$$1.listeners === 0) {\n        removeNode(childElm);\n      }\n    }\n    remove$$1.listeners = listeners;\n    return remove$$1\n  }\n\n  function removeNode (el) {\n    var parent = nodeOps.parentNode(el);\n    // element may have already been removed due to v-html / v-text\n    if (isDef(parent)) {\n      nodeOps.removeChild(parent, el);\n    }\n  }\n\n  function isUnknownElement$$1 (vnode, inVPre) {\n    return (\n      !inVPre &&\n      !vnode.ns &&\n      !(\n        config.ignoredElements.length &&\n        config.ignoredElements.some(function (ignore) {\n          return isRegExp(ignore)\n            ? ignore.test(vnode.tag)\n            : ignore === vnode.tag\n        })\n      ) &&\n      config.isUnknownElement(vnode.tag)\n    )\n  }\n\n  var creatingElmInVPre = 0;\n\n  function createElm (\n    vnode,\n    insertedVnodeQueue,\n    parentElm,\n    refElm,\n    nested,\n    ownerArray,\n    index\n  ) {\n    if (isDef(vnode.elm) && isDef(ownerArray)) {\n      // This vnode was used in a previous render!\n      // now it's used as a new node, overwriting its elm would cause\n      // potential patch errors down the road when it's used as an insertion\n      // reference node. Instead, we clone the node on-demand before creating\n      // associated DOM element for it.\n      vnode = ownerArray[index] = cloneVNode(vnode);\n    }\n\n    vnode.isRootInsert = !nested; // for transition enter check\n    if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n      return\n    }\n\n    var data = vnode.data;\n    var children = vnode.children;\n    var tag = vnode.tag;\n    if (isDef(tag)) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (data && data.pre) {\n          creatingElmInVPre++;\n        }\n        if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n          warn(\n            'Unknown custom element: <' + tag + '> - did you ' +\n            'register the component correctly? For recursive components, ' +\n            'make sure to provide the \"name\" option.',\n            vnode.context\n          );\n        }\n      }\n\n      vnode.elm = vnode.ns\n        ? nodeOps.createElementNS(vnode.ns, tag)\n        : nodeOps.createElement(tag, vnode);\n      setScope(vnode);\n\n      /* istanbul ignore if */\n      {\n        createChildren(vnode, children, insertedVnodeQueue);\n        if (isDef(data)) {\n          invokeCreateHooks(vnode, insertedVnodeQueue);\n        }\n        insert(parentElm, vnode.elm, refElm);\n      }\n\n      if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n        creatingElmInVPre--;\n      }\n    } else if (isTrue(vnode.isComment)) {\n      vnode.elm = nodeOps.createComment(vnode.text);\n      insert(parentElm, vnode.elm, refElm);\n    } else {\n      vnode.elm = nodeOps.createTextNode(vnode.text);\n      insert(parentElm, vnode.elm, refElm);\n    }\n  }\n\n  function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n    var i = vnode.data;\n    if (isDef(i)) {\n      var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n      if (isDef(i = i.hook) && isDef(i = i.init)) {\n        i(vnode, false /* hydrating */);\n      }\n      // after calling the init hook, if the vnode is a child component\n      // it should've created a child instance and mounted it. the child\n      // component also has set the placeholder vnode's elm.\n      // in that case we can just return the element and be done.\n      if (isDef(vnode.componentInstance)) {\n        initComponent(vnode, insertedVnodeQueue);\n        insert(parentElm, vnode.elm, refElm);\n        if (isTrue(isReactivated)) {\n          reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n        }\n        return true\n      }\n    }\n  }\n\n  function initComponent (vnode, insertedVnodeQueue) {\n    if (isDef(vnode.data.pendingInsert)) {\n      insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n      vnode.data.pendingInsert = null;\n    }\n    vnode.elm = vnode.componentInstance.$el;\n    if (isPatchable(vnode)) {\n      invokeCreateHooks(vnode, insertedVnodeQueue);\n      setScope(vnode);\n    } else {\n      // empty component root.\n      // skip all element-related modules except for ref (#3455)\n      registerRef(vnode);\n      // make sure to invoke the insert hook\n      insertedVnodeQueue.push(vnode);\n    }\n  }\n\n  function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n    var i;\n    // hack for #4339: a reactivated component with inner transition\n    // does not trigger because the inner node's created hooks are not called\n    // again. It's not ideal to involve module-specific logic in here but\n    // there doesn't seem to be a better way to do it.\n    var innerNode = vnode;\n    while (innerNode.componentInstance) {\n      innerNode = innerNode.componentInstance._vnode;\n      if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n        for (i = 0; i < cbs.activate.length; ++i) {\n          cbs.activate[i](emptyNode, innerNode);\n        }\n        insertedVnodeQueue.push(innerNode);\n        break\n      }\n    }\n    // unlike a newly created component,\n    // a reactivated keep-alive component doesn't insert itself\n    insert(parentElm, vnode.elm, refElm);\n  }\n\n  function insert (parent, elm, ref$$1) {\n    if (isDef(parent)) {\n      if (isDef(ref$$1)) {\n        if (nodeOps.parentNode(ref$$1) === parent) {\n          nodeOps.insertBefore(parent, elm, ref$$1);\n        }\n      } else {\n        nodeOps.appendChild(parent, elm);\n      }\n    }\n  }\n\n  function createChildren (vnode, children, insertedVnodeQueue) {\n    if (Array.isArray(children)) {\n      if (process.env.NODE_ENV !== 'production') {\n        checkDuplicateKeys(children);\n      }\n      for (var i = 0; i < children.length; ++i) {\n        createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n      }\n    } else if (isPrimitive(vnode.text)) {\n      nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n    }\n  }\n\n  function isPatchable (vnode) {\n    while (vnode.componentInstance) {\n      vnode = vnode.componentInstance._vnode;\n    }\n    return isDef(vnode.tag)\n  }\n\n  function invokeCreateHooks (vnode, insertedVnodeQueue) {\n    for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n      cbs.create[i$1](emptyNode, vnode);\n    }\n    i = vnode.data.hook; // Reuse variable\n    if (isDef(i)) {\n      if (isDef(i.create)) { i.create(emptyNode, vnode); }\n      if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n    }\n  }\n\n  // set scope id attribute for scoped CSS.\n  // this is implemented as a special case to avoid the overhead\n  // of going through the normal attribute patching process.\n  function setScope (vnode) {\n    var i;\n    if (isDef(i = vnode.fnScopeId)) {\n      nodeOps.setStyleScope(vnode.elm, i);\n    } else {\n      var ancestor = vnode;\n      while (ancestor) {\n        if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n          nodeOps.setStyleScope(vnode.elm, i);\n        }\n        ancestor = ancestor.parent;\n      }\n    }\n    // for slot content they should also get the scopeId from the host instance.\n    if (isDef(i = activeInstance) &&\n      i !== vnode.context &&\n      i !== vnode.fnContext &&\n      isDef(i = i.$options._scopeId)\n    ) {\n      nodeOps.setStyleScope(vnode.elm, i);\n    }\n  }\n\n  function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n    for (; startIdx <= endIdx; ++startIdx) {\n      createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n    }\n  }\n\n  function invokeDestroyHook (vnode) {\n    var i, j;\n    var data = vnode.data;\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n      for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n    }\n    if (isDef(i = vnode.children)) {\n      for (j = 0; j < vnode.children.length; ++j) {\n        invokeDestroyHook(vnode.children[j]);\n      }\n    }\n  }\n\n  function removeVnodes (vnodes, startIdx, endIdx) {\n    for (; startIdx <= endIdx; ++startIdx) {\n      var ch = vnodes[startIdx];\n      if (isDef(ch)) {\n        if (isDef(ch.tag)) {\n          removeAndInvokeRemoveHook(ch);\n          invokeDestroyHook(ch);\n        } else { // Text node\n          removeNode(ch.elm);\n        }\n      }\n    }\n  }\n\n  function removeAndInvokeRemoveHook (vnode, rm) {\n    if (isDef(rm) || isDef(vnode.data)) {\n      var i;\n      var listeners = cbs.remove.length + 1;\n      if (isDef(rm)) {\n        // we have a recursively passed down rm callback\n        // increase the listeners count\n        rm.listeners += listeners;\n      } else {\n        // directly removing\n        rm = createRmCb(vnode.elm, listeners);\n      }\n      // recursively invoke hooks on child component root node\n      if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n        removeAndInvokeRemoveHook(i, rm);\n      }\n      for (i = 0; i < cbs.remove.length; ++i) {\n        cbs.remove[i](vnode, rm);\n      }\n      if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n        i(vnode, rm);\n      } else {\n        rm();\n      }\n    } else {\n      removeNode(vnode.elm);\n    }\n  }\n\n  function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n    var oldStartIdx = 0;\n    var newStartIdx = 0;\n    var oldEndIdx = oldCh.length - 1;\n    var oldStartVnode = oldCh[0];\n    var oldEndVnode = oldCh[oldEndIdx];\n    var newEndIdx = newCh.length - 1;\n    var newStartVnode = newCh[0];\n    var newEndVnode = newCh[newEndIdx];\n    var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n    // removeOnly is a special flag used only by <transition-group>\n    // to ensure removed elements stay in correct relative positions\n    // during leaving transitions\n    var canMove = !removeOnly;\n\n    if (process.env.NODE_ENV !== 'production') {\n      checkDuplicateKeys(newCh);\n    }\n\n    while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n      if (isUndef(oldStartVnode)) {\n        oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n      } else if (isUndef(oldEndVnode)) {\n        oldEndVnode = oldCh[--oldEndIdx];\n      } else if (sameVnode(oldStartVnode, newStartVnode)) {\n        patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n        oldStartVnode = oldCh[++oldStartIdx];\n        newStartVnode = newCh[++newStartIdx];\n      } else if (sameVnode(oldEndVnode, newEndVnode)) {\n        patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n        oldEndVnode = oldCh[--oldEndIdx];\n        newEndVnode = newCh[--newEndIdx];\n      } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n        patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n        canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n        oldStartVnode = oldCh[++oldStartIdx];\n        newEndVnode = newCh[--newEndIdx];\n      } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n        patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n        canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n        oldEndVnode = oldCh[--oldEndIdx];\n        newStartVnode = newCh[++newStartIdx];\n      } else {\n        if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n        idxInOld = isDef(newStartVnode.key)\n          ? oldKeyToIdx[newStartVnode.key]\n          : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n        if (isUndef(idxInOld)) { // New element\n          createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n        } else {\n          vnodeToMove = oldCh[idxInOld];\n          if (sameVnode(vnodeToMove, newStartVnode)) {\n            patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n            oldCh[idxInOld] = undefined;\n            canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n          } else {\n            // same key but different element. treat as new element\n            createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n          }\n        }\n        newStartVnode = newCh[++newStartIdx];\n      }\n    }\n    if (oldStartIdx > oldEndIdx) {\n      refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n      addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n    } else if (newStartIdx > newEndIdx) {\n      removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n    }\n  }\n\n  function checkDuplicateKeys (children) {\n    var seenKeys = {};\n    for (var i = 0; i < children.length; i++) {\n      var vnode = children[i];\n      var key = vnode.key;\n      if (isDef(key)) {\n        if (seenKeys[key]) {\n          warn(\n            (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n            vnode.context\n          );\n        } else {\n          seenKeys[key] = true;\n        }\n      }\n    }\n  }\n\n  function findIdxInOld (node, oldCh, start, end) {\n    for (var i = start; i < end; i++) {\n      var c = oldCh[i];\n      if (isDef(c) && sameVnode(node, c)) { return i }\n    }\n  }\n\n  function patchVnode (\n    oldVnode,\n    vnode,\n    insertedVnodeQueue,\n    ownerArray,\n    index,\n    removeOnly\n  ) {\n    if (oldVnode === vnode) {\n      return\n    }\n\n    if (isDef(vnode.elm) && isDef(ownerArray)) {\n      // clone reused vnode\n      vnode = ownerArray[index] = cloneVNode(vnode);\n    }\n\n    var elm = vnode.elm = oldVnode.elm;\n\n    if (isTrue(oldVnode.isAsyncPlaceholder)) {\n      if (isDef(vnode.asyncFactory.resolved)) {\n        hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n      } else {\n        vnode.isAsyncPlaceholder = true;\n      }\n      return\n    }\n\n    // reuse element for static trees.\n    // note we only do this if the vnode is cloned -\n    // if the new node is not cloned it means the render functions have been\n    // reset by the hot-reload-api and we need to do a proper re-render.\n    if (isTrue(vnode.isStatic) &&\n      isTrue(oldVnode.isStatic) &&\n      vnode.key === oldVnode.key &&\n      (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n    ) {\n      vnode.componentInstance = oldVnode.componentInstance;\n      return\n    }\n\n    var i;\n    var data = vnode.data;\n    if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n      i(oldVnode, vnode);\n    }\n\n    var oldCh = oldVnode.children;\n    var ch = vnode.children;\n    if (isDef(data) && isPatchable(vnode)) {\n      for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n      if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n    }\n    if (isUndef(vnode.text)) {\n      if (isDef(oldCh) && isDef(ch)) {\n        if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n      } else if (isDef(ch)) {\n        if (process.env.NODE_ENV !== 'production') {\n          checkDuplicateKeys(ch);\n        }\n        if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n        addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n      } else if (isDef(oldCh)) {\n        removeVnodes(oldCh, 0, oldCh.length - 1);\n      } else if (isDef(oldVnode.text)) {\n        nodeOps.setTextContent(elm, '');\n      }\n    } else if (oldVnode.text !== vnode.text) {\n      nodeOps.setTextContent(elm, vnode.text);\n    }\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n    }\n  }\n\n  function invokeInsertHook (vnode, queue, initial) {\n    // delay insert hooks for component root nodes, invoke them after the\n    // element is really inserted\n    if (isTrue(initial) && isDef(vnode.parent)) {\n      vnode.parent.data.pendingInsert = queue;\n    } else {\n      for (var i = 0; i < queue.length; ++i) {\n        queue[i].data.hook.insert(queue[i]);\n      }\n    }\n  }\n\n  var hydrationBailed = false;\n  // list of modules that can skip create hook during hydration because they\n  // are already rendered on the client or has no need for initialization\n  // Note: style is excluded because it relies on initial clone for future\n  // deep updates (#7063).\n  var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n  // Note: this is a browser-only function so we can assume elms are DOM nodes.\n  function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n    var i;\n    var tag = vnode.tag;\n    var data = vnode.data;\n    var children = vnode.children;\n    inVPre = inVPre || (data && data.pre);\n    vnode.elm = elm;\n\n    if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n      vnode.isAsyncPlaceholder = true;\n      return true\n    }\n    // assert node match\n    if (process.env.NODE_ENV !== 'production') {\n      if (!assertNodeMatch(elm, vnode, inVPre)) {\n        return false\n      }\n    }\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n      if (isDef(i = vnode.componentInstance)) {\n        // child component. it should have hydrated its own tree.\n        initComponent(vnode, insertedVnodeQueue);\n        return true\n      }\n    }\n    if (isDef(tag)) {\n      if (isDef(children)) {\n        // empty element, allow client to pick up and populate children\n        if (!elm.hasChildNodes()) {\n          createChildren(vnode, children, insertedVnodeQueue);\n        } else {\n          // v-html and domProps: innerHTML\n          if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n            if (i !== elm.innerHTML) {\n              /* istanbul ignore if */\n              if (process.env.NODE_ENV !== 'production' &&\n                typeof console !== 'undefined' &&\n                !hydrationBailed\n              ) {\n                hydrationBailed = true;\n                console.warn('Parent: ', elm);\n                console.warn('server innerHTML: ', i);\n                console.warn('client innerHTML: ', elm.innerHTML);\n              }\n              return false\n            }\n          } else {\n            // iterate and compare children lists\n            var childrenMatch = true;\n            var childNode = elm.firstChild;\n            for (var i$1 = 0; i$1 < children.length; i$1++) {\n              if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n                childrenMatch = false;\n                break\n              }\n              childNode = childNode.nextSibling;\n            }\n            // if childNode is not null, it means the actual childNodes list is\n            // longer than the virtual children list.\n            if (!childrenMatch || childNode) {\n              /* istanbul ignore if */\n              if (process.env.NODE_ENV !== 'production' &&\n                typeof console !== 'undefined' &&\n                !hydrationBailed\n              ) {\n                hydrationBailed = true;\n                console.warn('Parent: ', elm);\n                console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n              }\n              return false\n            }\n          }\n        }\n      }\n      if (isDef(data)) {\n        var fullInvoke = false;\n        for (var key in data) {\n          if (!isRenderedModule(key)) {\n            fullInvoke = true;\n            invokeCreateHooks(vnode, insertedVnodeQueue);\n            break\n          }\n        }\n        if (!fullInvoke && data['class']) {\n          // ensure collecting deps for deep class bindings for future updates\n          traverse(data['class']);\n        }\n      }\n    } else if (elm.data !== vnode.text) {\n      elm.data = vnode.text;\n    }\n    return true\n  }\n\n  function assertNodeMatch (node, vnode, inVPre) {\n    if (isDef(vnode.tag)) {\n      return vnode.tag.indexOf('vue-component') === 0 || (\n        !isUnknownElement$$1(vnode, inVPre) &&\n        vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n      )\n    } else {\n      return node.nodeType === (vnode.isComment ? 8 : 3)\n    }\n  }\n\n  return function patch (oldVnode, vnode, hydrating, removeOnly) {\n    if (isUndef(vnode)) {\n      if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n      return\n    }\n\n    var isInitialPatch = false;\n    var insertedVnodeQueue = [];\n\n    if (isUndef(oldVnode)) {\n      // empty mount (likely as component), create new root element\n      isInitialPatch = true;\n      createElm(vnode, insertedVnodeQueue);\n    } else {\n      var isRealElement = isDef(oldVnode.nodeType);\n      if (!isRealElement && sameVnode(oldVnode, vnode)) {\n        // patch existing root node\n        patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n      } else {\n        if (isRealElement) {\n          // mounting to a real element\n          // check if this is server-rendered content and if we can perform\n          // a successful hydration.\n          if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n            oldVnode.removeAttribute(SSR_ATTR);\n            hydrating = true;\n          }\n          if (isTrue(hydrating)) {\n            if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n              invokeInsertHook(vnode, insertedVnodeQueue, true);\n              return oldVnode\n            } else if (process.env.NODE_ENV !== 'production') {\n              warn(\n                'The client-side rendered virtual DOM tree is not matching ' +\n                'server-rendered content. This is likely caused by incorrect ' +\n                'HTML markup, for example nesting block-level elements inside ' +\n                '<p>, or missing <tbody>. Bailing hydration and performing ' +\n                'full client-side render.'\n              );\n            }\n          }\n          // either not server-rendered, or hydration failed.\n          // create an empty node and replace it\n          oldVnode = emptyNodeAt(oldVnode);\n        }\n\n        // replacing existing element\n        var oldElm = oldVnode.elm;\n        var parentElm = nodeOps.parentNode(oldElm);\n\n        // create new node\n        createElm(\n          vnode,\n          insertedVnodeQueue,\n          // extremely rare edge case: do not insert if old element is in a\n          // leaving transition. Only happens when combining transition +\n          // keep-alive + HOCs. (#4590)\n          oldElm._leaveCb ? null : parentElm,\n          nodeOps.nextSibling(oldElm)\n        );\n\n        // update parent placeholder node element, recursively\n        if (isDef(vnode.parent)) {\n          var ancestor = vnode.parent;\n          var patchable = isPatchable(vnode);\n          while (ancestor) {\n            for (var i = 0; i < cbs.destroy.length; ++i) {\n              cbs.destroy[i](ancestor);\n            }\n            ancestor.elm = vnode.elm;\n            if (patchable) {\n              for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n                cbs.create[i$1](emptyNode, ancestor);\n              }\n              // #6513\n              // invoke insert hooks that may have been merged by create hooks.\n              // e.g. for directives that uses the \"inserted\" hook.\n              var insert = ancestor.data.hook.insert;\n              if (insert.merged) {\n                // start at index 1 to avoid re-invoking component mounted hook\n                for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n                  insert.fns[i$2]();\n                }\n              }\n            } else {\n              registerRef(ancestor);\n            }\n            ancestor = ancestor.parent;\n          }\n        }\n\n        // destroy old node\n        if (isDef(parentElm)) {\n          removeVnodes([oldVnode], 0, 0);\n        } else if (isDef(oldVnode.tag)) {\n          invokeDestroyHook(oldVnode);\n        }\n      }\n    }\n\n    invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n    return vnode.elm\n  }\n}\n\n/*  */\n\nvar directives = {\n  create: updateDirectives,\n  update: updateDirectives,\n  destroy: function unbindDirectives (vnode) {\n    updateDirectives(vnode, emptyNode);\n  }\n};\n\nfunction updateDirectives (oldVnode, vnode) {\n  if (oldVnode.data.directives || vnode.data.directives) {\n    _update(oldVnode, vnode);\n  }\n}\n\nfunction _update (oldVnode, vnode) {\n  var isCreate = oldVnode === emptyNode;\n  var isDestroy = vnode === emptyNode;\n  var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n  var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n  var dirsWithInsert = [];\n  var dirsWithPostpatch = [];\n\n  var key, oldDir, dir;\n  for (key in newDirs) {\n    oldDir = oldDirs[key];\n    dir = newDirs[key];\n    if (!oldDir) {\n      // new directive, bind\n      callHook$1(dir, 'bind', vnode, oldVnode);\n      if (dir.def && dir.def.inserted) {\n        dirsWithInsert.push(dir);\n      }\n    } else {\n      // existing directive, update\n      dir.oldValue = oldDir.value;\n      dir.oldArg = oldDir.arg;\n      callHook$1(dir, 'update', vnode, oldVnode);\n      if (dir.def && dir.def.componentUpdated) {\n        dirsWithPostpatch.push(dir);\n      }\n    }\n  }\n\n  if (dirsWithInsert.length) {\n    var callInsert = function () {\n      for (var i = 0; i < dirsWithInsert.length; i++) {\n        callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n      }\n    };\n    if (isCreate) {\n      mergeVNodeHook(vnode, 'insert', callInsert);\n    } else {\n      callInsert();\n    }\n  }\n\n  if (dirsWithPostpatch.length) {\n    mergeVNodeHook(vnode, 'postpatch', function () {\n      for (var i = 0; i < dirsWithPostpatch.length; i++) {\n        callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n      }\n    });\n  }\n\n  if (!isCreate) {\n    for (key in oldDirs) {\n      if (!newDirs[key]) {\n        // no longer present, unbind\n        callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n      }\n    }\n  }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n  dirs,\n  vm\n) {\n  var res = Object.create(null);\n  if (!dirs) {\n    // $flow-disable-line\n    return res\n  }\n  var i, dir;\n  for (i = 0; i < dirs.length; i++) {\n    dir = dirs[i];\n    if (!dir.modifiers) {\n      // $flow-disable-line\n      dir.modifiers = emptyModifiers;\n    }\n    res[getRawDirName(dir)] = dir;\n    dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n  }\n  // $flow-disable-line\n  return res\n}\n\nfunction getRawDirName (dir) {\n  return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n  var fn = dir.def && dir.def[hook];\n  if (fn) {\n    try {\n      fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n    } catch (e) {\n      handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n    }\n  }\n}\n\nvar baseModules = [\n  ref,\n  directives\n];\n\n/*  */\n\nfunction updateAttrs (oldVnode, vnode) {\n  var opts = vnode.componentOptions;\n  if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n    return\n  }\n  if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n    return\n  }\n  var key, cur, old;\n  var elm = vnode.elm;\n  var oldAttrs = oldVnode.data.attrs || {};\n  var attrs = vnode.data.attrs || {};\n  // clone observed objects, as the user probably wants to mutate it\n  if (isDef(attrs.__ob__)) {\n    attrs = vnode.data.attrs = extend({}, attrs);\n  }\n\n  for (key in attrs) {\n    cur = attrs[key];\n    old = oldAttrs[key];\n    if (old !== cur) {\n      setAttr(elm, key, cur);\n    }\n  }\n  // #4391: in IE9, setting type can reset value for input[type=radio]\n  // #6666: IE/Edge forces progress value down to 1 before setting a max\n  /* istanbul ignore if */\n  if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n    setAttr(elm, 'value', attrs.value);\n  }\n  for (key in oldAttrs) {\n    if (isUndef(attrs[key])) {\n      if (isXlink(key)) {\n        elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n      } else if (!isEnumeratedAttr(key)) {\n        elm.removeAttribute(key);\n      }\n    }\n  }\n}\n\nfunction setAttr (el, key, value) {\n  if (el.tagName.indexOf('-') > -1) {\n    baseSetAttr(el, key, value);\n  } else if (isBooleanAttr(key)) {\n    // set attribute for blank value\n    // e.g. <option disabled>Select one</option>\n    if (isFalsyAttrValue(value)) {\n      el.removeAttribute(key);\n    } else {\n      // technically allowfullscreen is a boolean attribute for <iframe>,\n      // but Flash expects a value of \"true\" when used on <embed> tag\n      value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n        ? 'true'\n        : key;\n      el.setAttribute(key, value);\n    }\n  } else if (isEnumeratedAttr(key)) {\n    el.setAttribute(key, convertEnumeratedValue(key, value));\n  } else if (isXlink(key)) {\n    if (isFalsyAttrValue(value)) {\n      el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n    } else {\n      el.setAttributeNS(xlinkNS, key, value);\n    }\n  } else {\n    baseSetAttr(el, key, value);\n  }\n}\n\nfunction baseSetAttr (el, key, value) {\n  if (isFalsyAttrValue(value)) {\n    el.removeAttribute(key);\n  } else {\n    // #7138: IE10 & 11 fires input event when setting placeholder on\n    // <textarea>... block the first input event and remove the blocker\n    // immediately.\n    /* istanbul ignore if */\n    if (\n      isIE && !isIE9 &&\n      el.tagName === 'TEXTAREA' &&\n      key === 'placeholder' && value !== '' && !el.__ieph\n    ) {\n      var blocker = function (e) {\n        e.stopImmediatePropagation();\n        el.removeEventListener('input', blocker);\n      };\n      el.addEventListener('input', blocker);\n      // $flow-disable-line\n      el.__ieph = true; /* IE placeholder patched */\n    }\n    el.setAttribute(key, value);\n  }\n}\n\nvar attrs = {\n  create: updateAttrs,\n  update: updateAttrs\n};\n\n/*  */\n\nfunction updateClass (oldVnode, vnode) {\n  var el = vnode.elm;\n  var data = vnode.data;\n  var oldData = oldVnode.data;\n  if (\n    isUndef(data.staticClass) &&\n    isUndef(data.class) && (\n      isUndef(oldData) || (\n        isUndef(oldData.staticClass) &&\n        isUndef(oldData.class)\n      )\n    )\n  ) {\n    return\n  }\n\n  var cls = genClassForVnode(vnode);\n\n  // handle transition classes\n  var transitionClass = el._transitionClasses;\n  if (isDef(transitionClass)) {\n    cls = concat(cls, stringifyClass(transitionClass));\n  }\n\n  // set the class\n  if (cls !== el._prevClass) {\n    el.setAttribute('class', cls);\n    el._prevClass = cls;\n  }\n}\n\nvar klass = {\n  create: updateClass,\n  update: updateClass\n};\n\n/*  */\n\n/*  */\n\n/*  */\n\n/*  */\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n/*  */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n  /* istanbul ignore if */\n  if (isDef(on[RANGE_TOKEN])) {\n    // IE input[type=range] only supports `change` event\n    var event = isIE ? 'change' : 'input';\n    on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n    delete on[RANGE_TOKEN];\n  }\n  // This was originally intended to fix #4521 but no longer necessary\n  // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n  /* istanbul ignore if */\n  if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n    on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n    delete on[CHECKBOX_RADIO_TOKEN];\n  }\n}\n\nvar target$1;\n\nfunction createOnceHandler$1 (event, handler, capture) {\n  var _target = target$1; // save current target element in closure\n  return function onceHandler () {\n    var res = handler.apply(null, arguments);\n    if (res !== null) {\n      remove$2(event, onceHandler, capture, _target);\n    }\n  }\n}\n\n// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n// implementation and does not fire microtasks in between event propagation, so\n// safe to exclude.\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n\nfunction add$1 (\n  name,\n  handler,\n  capture,\n  passive\n) {\n  // async edge case #6566: inner click event triggers patch, event handler\n  // attached to outer element during patch, and triggered again. This\n  // happens because browsers fire microtask ticks between event propagation.\n  // the solution is simple: we save the timestamp when a handler is attached,\n  // and the handler would only fire if the event passed to it was fired\n  // AFTER it was attached.\n  if (useMicrotaskFix) {\n    var attachedTimestamp = currentFlushTimestamp;\n    var original = handler;\n    handler = original._wrapper = function (e) {\n      if (\n        // no bubbling, should always fire.\n        // this is just a safety net in case event.timeStamp is unreliable in\n        // certain weird environments...\n        e.target === e.currentTarget ||\n        // event is fired after handler attachment\n        e.timeStamp >= attachedTimestamp ||\n        // bail for environments that have buggy event.timeStamp implementations\n        // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n        // #9681 QtWebEngine event.timeStamp is negative value\n        e.timeStamp <= 0 ||\n        // #9448 bail if event is fired in another document in a multi-page\n        // electron/nw.js app, since event.timeStamp will be using a different\n        // starting reference\n        e.target.ownerDocument !== document\n      ) {\n        return original.apply(this, arguments)\n      }\n    };\n  }\n  target$1.addEventListener(\n    name,\n    handler,\n    supportsPassive\n      ? { capture: capture, passive: passive }\n      : capture\n  );\n}\n\nfunction remove$2 (\n  name,\n  handler,\n  capture,\n  _target\n) {\n  (_target || target$1).removeEventListener(\n    name,\n    handler._wrapper || handler,\n    capture\n  );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n  if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n    return\n  }\n  var on = vnode.data.on || {};\n  var oldOn = oldVnode.data.on || {};\n  target$1 = vnode.elm;\n  normalizeEvents(on);\n  updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);\n  target$1 = undefined;\n}\n\nvar events = {\n  create: updateDOMListeners,\n  update: updateDOMListeners\n};\n\n/*  */\n\nvar svgContainer;\n\nfunction updateDOMProps (oldVnode, vnode) {\n  if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n    return\n  }\n  var key, cur;\n  var elm = vnode.elm;\n  var oldProps = oldVnode.data.domProps || {};\n  var props = vnode.data.domProps || {};\n  // clone observed objects, as the user probably wants to mutate it\n  if (isDef(props.__ob__)) {\n    props = vnode.data.domProps = extend({}, props);\n  }\n\n  for (key in oldProps) {\n    if (!(key in props)) {\n      elm[key] = '';\n    }\n  }\n\n  for (key in props) {\n    cur = props[key];\n    // ignore children if the node has textContent or innerHTML,\n    // as these will throw away existing DOM nodes and cause removal errors\n    // on subsequent patches (#3360)\n    if (key === 'textContent' || key === 'innerHTML') {\n      if (vnode.children) { vnode.children.length = 0; }\n      if (cur === oldProps[key]) { continue }\n      // #6601 work around Chrome version <= 55 bug where single textNode\n      // replaced by innerHTML/textContent retains its parentNode property\n      if (elm.childNodes.length === 1) {\n        elm.removeChild(elm.childNodes[0]);\n      }\n    }\n\n    if (key === 'value' && elm.tagName !== 'PROGRESS') {\n      // store value as _value as well since\n      // non-string values will be stringified\n      elm._value = cur;\n      // avoid resetting cursor position when value is the same\n      var strCur = isUndef(cur) ? '' : String(cur);\n      if (shouldUpdateValue(elm, strCur)) {\n        elm.value = strCur;\n      }\n    } else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {\n      // IE doesn't support innerHTML for SVG elements\n      svgContainer = svgContainer || document.createElement('div');\n      svgContainer.innerHTML = \"<svg>\" + cur + \"</svg>\";\n      var svg = svgContainer.firstChild;\n      while (elm.firstChild) {\n        elm.removeChild(elm.firstChild);\n      }\n      while (svg.firstChild) {\n        elm.appendChild(svg.firstChild);\n      }\n    } else if (\n      // skip the update if old and new VDOM state is the same.\n      // `value` is handled separately because the DOM value may be temporarily\n      // out of sync with VDOM state due to focus, composition and modifiers.\n      // This  #4521 by skipping the unnecesarry `checked` update.\n      cur !== oldProps[key]\n    ) {\n      // some property updates can throw\n      // e.g. `value` on <progress> w/ non-finite value\n      try {\n        elm[key] = cur;\n      } catch (e) {}\n    }\n  }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n  return (!elm.composing && (\n    elm.tagName === 'OPTION' ||\n    isNotInFocusAndDirty(elm, checkVal) ||\n    isDirtyWithModifiers(elm, checkVal)\n  ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n  // return true when textbox (.number and .trim) loses focus and its value is\n  // not equal to the updated value\n  var notInFocus = true;\n  // #6157\n  // work around IE bug when accessing document.activeElement in an iframe\n  try { notInFocus = document.activeElement !== elm; } catch (e) {}\n  return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n  var value = elm.value;\n  var modifiers = elm._vModifiers; // injected by v-model runtime\n  if (isDef(modifiers)) {\n    if (modifiers.number) {\n      return toNumber(value) !== toNumber(newVal)\n    }\n    if (modifiers.trim) {\n      return value.trim() !== newVal.trim()\n    }\n  }\n  return value !== newVal\n}\n\nvar domProps = {\n  create: updateDOMProps,\n  update: updateDOMProps\n};\n\n/*  */\n\nvar parseStyleText = cached(function (cssText) {\n  var res = {};\n  var listDelimiter = /;(?![^(]*\\))/g;\n  var propertyDelimiter = /:(.+)/;\n  cssText.split(listDelimiter).forEach(function (item) {\n    if (item) {\n      var tmp = item.split(propertyDelimiter);\n      tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n    }\n  });\n  return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n  var style = normalizeStyleBinding(data.style);\n  // static style is pre-processed into an object during compilation\n  // and is always a fresh object, so it's safe to merge into it\n  return data.staticStyle\n    ? extend(data.staticStyle, style)\n    : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n  if (Array.isArray(bindingStyle)) {\n    return toObject(bindingStyle)\n  }\n  if (typeof bindingStyle === 'string') {\n    return parseStyleText(bindingStyle)\n  }\n  return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n  var res = {};\n  var styleData;\n\n  if (checkChild) {\n    var childNode = vnode;\n    while (childNode.componentInstance) {\n      childNode = childNode.componentInstance._vnode;\n      if (\n        childNode && childNode.data &&\n        (styleData = normalizeStyleData(childNode.data))\n      ) {\n        extend(res, styleData);\n      }\n    }\n  }\n\n  if ((styleData = normalizeStyleData(vnode.data))) {\n    extend(res, styleData);\n  }\n\n  var parentNode = vnode;\n  while ((parentNode = parentNode.parent)) {\n    if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n      extend(res, styleData);\n    }\n  }\n  return res\n}\n\n/*  */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n  /* istanbul ignore if */\n  if (cssVarRE.test(name)) {\n    el.style.setProperty(name, val);\n  } else if (importantRE.test(val)) {\n    el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n  } else {\n    var normalizedName = normalize(name);\n    if (Array.isArray(val)) {\n      // Support values array created by autoprefixer, e.g.\n      // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n      // Set them one by one, and the browser will only set those it can recognize\n      for (var i = 0, len = val.length; i < len; i++) {\n        el.style[normalizedName] = val[i];\n      }\n    } else {\n      el.style[normalizedName] = val;\n    }\n  }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n  emptyStyle = emptyStyle || document.createElement('div').style;\n  prop = camelize(prop);\n  if (prop !== 'filter' && (prop in emptyStyle)) {\n    return prop\n  }\n  var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n  for (var i = 0; i < vendorNames.length; i++) {\n    var name = vendorNames[i] + capName;\n    if (name in emptyStyle) {\n      return name\n    }\n  }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n  var data = vnode.data;\n  var oldData = oldVnode.data;\n\n  if (isUndef(data.staticStyle) && isUndef(data.style) &&\n    isUndef(oldData.staticStyle) && isUndef(oldData.style)\n  ) {\n    return\n  }\n\n  var cur, name;\n  var el = vnode.elm;\n  var oldStaticStyle = oldData.staticStyle;\n  var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n  // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n  var oldStyle = oldStaticStyle || oldStyleBinding;\n\n  var style = normalizeStyleBinding(vnode.data.style) || {};\n\n  // store normalized style under a different key for next diff\n  // make sure to clone it if it's reactive, since the user likely wants\n  // to mutate it.\n  vnode.data.normalizedStyle = isDef(style.__ob__)\n    ? extend({}, style)\n    : style;\n\n  var newStyle = getStyle(vnode, true);\n\n  for (name in oldStyle) {\n    if (isUndef(newStyle[name])) {\n      setProp(el, name, '');\n    }\n  }\n  for (name in newStyle) {\n    cur = newStyle[name];\n    if (cur !== oldStyle[name]) {\n      // ie9 setting to null has no effect, must use empty string\n      setProp(el, name, cur == null ? '' : cur);\n    }\n  }\n}\n\nvar style = {\n  create: updateStyle,\n  update: updateStyle\n};\n\n/*  */\n\nvar whitespaceRE = /\\s+/;\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n  /* istanbul ignore if */\n  if (!cls || !(cls = cls.trim())) {\n    return\n  }\n\n  /* istanbul ignore else */\n  if (el.classList) {\n    if (cls.indexOf(' ') > -1) {\n      cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\n    } else {\n      el.classList.add(cls);\n    }\n  } else {\n    var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n    if (cur.indexOf(' ' + cls + ' ') < 0) {\n      el.setAttribute('class', (cur + cls).trim());\n    }\n  }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n  /* istanbul ignore if */\n  if (!cls || !(cls = cls.trim())) {\n    return\n  }\n\n  /* istanbul ignore else */\n  if (el.classList) {\n    if (cls.indexOf(' ') > -1) {\n      cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\n    } else {\n      el.classList.remove(cls);\n    }\n    if (!el.classList.length) {\n      el.removeAttribute('class');\n    }\n  } else {\n    var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n    var tar = ' ' + cls + ' ';\n    while (cur.indexOf(tar) >= 0) {\n      cur = cur.replace(tar, ' ');\n    }\n    cur = cur.trim();\n    if (cur) {\n      el.setAttribute('class', cur);\n    } else {\n      el.removeAttribute('class');\n    }\n  }\n}\n\n/*  */\n\nfunction resolveTransition (def$$1) {\n  if (!def$$1) {\n    return\n  }\n  /* istanbul ignore else */\n  if (typeof def$$1 === 'object') {\n    var res = {};\n    if (def$$1.css !== false) {\n      extend(res, autoCssTransition(def$$1.name || 'v'));\n    }\n    extend(res, def$$1);\n    return res\n  } else if (typeof def$$1 === 'string') {\n    return autoCssTransition(def$$1)\n  }\n}\n\nvar autoCssTransition = cached(function (name) {\n  return {\n    enterClass: (name + \"-enter\"),\n    enterToClass: (name + \"-enter-to\"),\n    enterActiveClass: (name + \"-enter-active\"),\n    leaveClass: (name + \"-leave\"),\n    leaveToClass: (name + \"-leave-to\"),\n    leaveActiveClass: (name + \"-leave-active\")\n  }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n  /* istanbul ignore if */\n  if (window.ontransitionend === undefined &&\n    window.onwebkittransitionend !== undefined\n  ) {\n    transitionProp = 'WebkitTransition';\n    transitionEndEvent = 'webkitTransitionEnd';\n  }\n  if (window.onanimationend === undefined &&\n    window.onwebkitanimationend !== undefined\n  ) {\n    animationProp = 'WebkitAnimation';\n    animationEndEvent = 'webkitAnimationEnd';\n  }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n  ? window.requestAnimationFrame\n    ? window.requestAnimationFrame.bind(window)\n    : setTimeout\n  : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n  raf(function () {\n    raf(fn);\n  });\n}\n\nfunction addTransitionClass (el, cls) {\n  var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n  if (transitionClasses.indexOf(cls) < 0) {\n    transitionClasses.push(cls);\n    addClass(el, cls);\n  }\n}\n\nfunction removeTransitionClass (el, cls) {\n  if (el._transitionClasses) {\n    remove(el._transitionClasses, cls);\n  }\n  removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n  el,\n  expectedType,\n  cb\n) {\n  var ref = getTransitionInfo(el, expectedType);\n  var type = ref.type;\n  var timeout = ref.timeout;\n  var propCount = ref.propCount;\n  if (!type) { return cb() }\n  var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n  var ended = 0;\n  var end = function () {\n    el.removeEventListener(event, onEnd);\n    cb();\n  };\n  var onEnd = function (e) {\n    if (e.target === el) {\n      if (++ended >= propCount) {\n        end();\n      }\n    }\n  };\n  setTimeout(function () {\n    if (ended < propCount) {\n      end();\n    }\n  }, timeout + 1);\n  el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n  var styles = window.getComputedStyle(el);\n  // JSDOM may return undefined for transition properties\n  var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n  var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n  var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n  var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n  var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n  var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n  var type;\n  var timeout = 0;\n  var propCount = 0;\n  /* istanbul ignore if */\n  if (expectedType === TRANSITION) {\n    if (transitionTimeout > 0) {\n      type = TRANSITION;\n      timeout = transitionTimeout;\n      propCount = transitionDurations.length;\n    }\n  } else if (expectedType === ANIMATION) {\n    if (animationTimeout > 0) {\n      type = ANIMATION;\n      timeout = animationTimeout;\n      propCount = animationDurations.length;\n    }\n  } else {\n    timeout = Math.max(transitionTimeout, animationTimeout);\n    type = timeout > 0\n      ? transitionTimeout > animationTimeout\n        ? TRANSITION\n        : ANIMATION\n      : null;\n    propCount = type\n      ? type === TRANSITION\n        ? transitionDurations.length\n        : animationDurations.length\n      : 0;\n  }\n  var hasTransform =\n    type === TRANSITION &&\n    transformRE.test(styles[transitionProp + 'Property']);\n  return {\n    type: type,\n    timeout: timeout,\n    propCount: propCount,\n    hasTransform: hasTransform\n  }\n}\n\nfunction getTimeout (delays, durations) {\n  /* istanbul ignore next */\n  while (delays.length < durations.length) {\n    delays = delays.concat(delays);\n  }\n\n  return Math.max.apply(null, durations.map(function (d, i) {\n    return toMs(d) + toMs(delays[i])\n  }))\n}\n\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n// in a locale-dependent way, using a comma instead of a dot.\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n// as a floor function) causing unexpected behaviors\nfunction toMs (s) {\n  return Number(s.slice(0, -1).replace(',', '.')) * 1000\n}\n\n/*  */\n\nfunction enter (vnode, toggleDisplay) {\n  var el = vnode.elm;\n\n  // call leave callback now\n  if (isDef(el._leaveCb)) {\n    el._leaveCb.cancelled = true;\n    el._leaveCb();\n  }\n\n  var data = resolveTransition(vnode.data.transition);\n  if (isUndef(data)) {\n    return\n  }\n\n  /* istanbul ignore if */\n  if (isDef(el._enterCb) || el.nodeType !== 1) {\n    return\n  }\n\n  var css = data.css;\n  var type = data.type;\n  var enterClass = data.enterClass;\n  var enterToClass = data.enterToClass;\n  var enterActiveClass = data.enterActiveClass;\n  var appearClass = data.appearClass;\n  var appearToClass = data.appearToClass;\n  var appearActiveClass = data.appearActiveClass;\n  var beforeEnter = data.beforeEnter;\n  var enter = data.enter;\n  var afterEnter = data.afterEnter;\n  var enterCancelled = data.enterCancelled;\n  var beforeAppear = data.beforeAppear;\n  var appear = data.appear;\n  var afterAppear = data.afterAppear;\n  var appearCancelled = data.appearCancelled;\n  var duration = data.duration;\n\n  // activeInstance will always be the <transition> component managing this\n  // transition. One edge case to check is when the <transition> is placed\n  // as the root node of a child component. In that case we need to check\n  // <transition>'s parent for appear check.\n  var context = activeInstance;\n  var transitionNode = activeInstance.$vnode;\n  while (transitionNode && transitionNode.parent) {\n    context = transitionNode.context;\n    transitionNode = transitionNode.parent;\n  }\n\n  var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n  if (isAppear && !appear && appear !== '') {\n    return\n  }\n\n  var startClass = isAppear && appearClass\n    ? appearClass\n    : enterClass;\n  var activeClass = isAppear && appearActiveClass\n    ? appearActiveClass\n    : enterActiveClass;\n  var toClass = isAppear && appearToClass\n    ? appearToClass\n    : enterToClass;\n\n  var beforeEnterHook = isAppear\n    ? (beforeAppear || beforeEnter)\n    : beforeEnter;\n  var enterHook = isAppear\n    ? (typeof appear === 'function' ? appear : enter)\n    : enter;\n  var afterEnterHook = isAppear\n    ? (afterAppear || afterEnter)\n    : afterEnter;\n  var enterCancelledHook = isAppear\n    ? (appearCancelled || enterCancelled)\n    : enterCancelled;\n\n  var explicitEnterDuration = toNumber(\n    isObject(duration)\n      ? duration.enter\n      : duration\n  );\n\n  if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n    checkDuration(explicitEnterDuration, 'enter', vnode);\n  }\n\n  var expectsCSS = css !== false && !isIE9;\n  var userWantsControl = getHookArgumentsLength(enterHook);\n\n  var cb = el._enterCb = once(function () {\n    if (expectsCSS) {\n      removeTransitionClass(el, toClass);\n      removeTransitionClass(el, activeClass);\n    }\n    if (cb.cancelled) {\n      if (expectsCSS) {\n        removeTransitionClass(el, startClass);\n      }\n      enterCancelledHook && enterCancelledHook(el);\n    } else {\n      afterEnterHook && afterEnterHook(el);\n    }\n    el._enterCb = null;\n  });\n\n  if (!vnode.data.show) {\n    // remove pending leave element on enter by injecting an insert hook\n    mergeVNodeHook(vnode, 'insert', function () {\n      var parent = el.parentNode;\n      var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n      if (pendingNode &&\n        pendingNode.tag === vnode.tag &&\n        pendingNode.elm._leaveCb\n      ) {\n        pendingNode.elm._leaveCb();\n      }\n      enterHook && enterHook(el, cb);\n    });\n  }\n\n  // start enter transition\n  beforeEnterHook && beforeEnterHook(el);\n  if (expectsCSS) {\n    addTransitionClass(el, startClass);\n    addTransitionClass(el, activeClass);\n    nextFrame(function () {\n      removeTransitionClass(el, startClass);\n      if (!cb.cancelled) {\n        addTransitionClass(el, toClass);\n        if (!userWantsControl) {\n          if (isValidDuration(explicitEnterDuration)) {\n            setTimeout(cb, explicitEnterDuration);\n          } else {\n            whenTransitionEnds(el, type, cb);\n          }\n        }\n      }\n    });\n  }\n\n  if (vnode.data.show) {\n    toggleDisplay && toggleDisplay();\n    enterHook && enterHook(el, cb);\n  }\n\n  if (!expectsCSS && !userWantsControl) {\n    cb();\n  }\n}\n\nfunction leave (vnode, rm) {\n  var el = vnode.elm;\n\n  // call enter callback now\n  if (isDef(el._enterCb)) {\n    el._enterCb.cancelled = true;\n    el._enterCb();\n  }\n\n  var data = resolveTransition(vnode.data.transition);\n  if (isUndef(data) || el.nodeType !== 1) {\n    return rm()\n  }\n\n  /* istanbul ignore if */\n  if (isDef(el._leaveCb)) {\n    return\n  }\n\n  var css = data.css;\n  var type = data.type;\n  var leaveClass = data.leaveClass;\n  var leaveToClass = data.leaveToClass;\n  var leaveActiveClass = data.leaveActiveClass;\n  var beforeLeave = data.beforeLeave;\n  var leave = data.leave;\n  var afterLeave = data.afterLeave;\n  var leaveCancelled = data.leaveCancelled;\n  var delayLeave = data.delayLeave;\n  var duration = data.duration;\n\n  var expectsCSS = css !== false && !isIE9;\n  var userWantsControl = getHookArgumentsLength(leave);\n\n  var explicitLeaveDuration = toNumber(\n    isObject(duration)\n      ? duration.leave\n      : duration\n  );\n\n  if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n    checkDuration(explicitLeaveDuration, 'leave', vnode);\n  }\n\n  var cb = el._leaveCb = once(function () {\n    if (el.parentNode && el.parentNode._pending) {\n      el.parentNode._pending[vnode.key] = null;\n    }\n    if (expectsCSS) {\n      removeTransitionClass(el, leaveToClass);\n      removeTransitionClass(el, leaveActiveClass);\n    }\n    if (cb.cancelled) {\n      if (expectsCSS) {\n        removeTransitionClass(el, leaveClass);\n      }\n      leaveCancelled && leaveCancelled(el);\n    } else {\n      rm();\n      afterLeave && afterLeave(el);\n    }\n    el._leaveCb = null;\n  });\n\n  if (delayLeave) {\n    delayLeave(performLeave);\n  } else {\n    performLeave();\n  }\n\n  function performLeave () {\n    // the delayed leave may have already been cancelled\n    if (cb.cancelled) {\n      return\n    }\n    // record leaving element\n    if (!vnode.data.show && el.parentNode) {\n      (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n    }\n    beforeLeave && beforeLeave(el);\n    if (expectsCSS) {\n      addTransitionClass(el, leaveClass);\n      addTransitionClass(el, leaveActiveClass);\n      nextFrame(function () {\n        removeTransitionClass(el, leaveClass);\n        if (!cb.cancelled) {\n          addTransitionClass(el, leaveToClass);\n          if (!userWantsControl) {\n            if (isValidDuration(explicitLeaveDuration)) {\n              setTimeout(cb, explicitLeaveDuration);\n            } else {\n              whenTransitionEnds(el, type, cb);\n            }\n          }\n        }\n      });\n    }\n    leave && leave(el, cb);\n    if (!expectsCSS && !userWantsControl) {\n      cb();\n    }\n  }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n  if (typeof val !== 'number') {\n    warn(\n      \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n      \"got \" + (JSON.stringify(val)) + \".\",\n      vnode.context\n    );\n  } else if (isNaN(val)) {\n    warn(\n      \"<transition> explicit \" + name + \" duration is NaN - \" +\n      'the duration expression might be incorrect.',\n      vnode.context\n    );\n  }\n}\n\nfunction isValidDuration (val) {\n  return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n  if (isUndef(fn)) {\n    return false\n  }\n  var invokerFns = fn.fns;\n  if (isDef(invokerFns)) {\n    // invoker\n    return getHookArgumentsLength(\n      Array.isArray(invokerFns)\n        ? invokerFns[0]\n        : invokerFns\n    )\n  } else {\n    return (fn._length || fn.length) > 1\n  }\n}\n\nfunction _enter (_, vnode) {\n  if (vnode.data.show !== true) {\n    enter(vnode);\n  }\n}\n\nvar transition = inBrowser ? {\n  create: _enter,\n  activate: _enter,\n  remove: function remove$$1 (vnode, rm) {\n    /* istanbul ignore else */\n    if (vnode.data.show !== true) {\n      leave(vnode, rm);\n    } else {\n      rm();\n    }\n  }\n} : {};\n\nvar platformModules = [\n  attrs,\n  klass,\n  events,\n  domProps,\n  style,\n  transition\n];\n\n/*  */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n  // http://www.matts411.com/post/internet-explorer-9-oninput/\n  document.addEventListener('selectionchange', function () {\n    var el = document.activeElement;\n    if (el && el.vmodel) {\n      trigger(el, 'input');\n    }\n  });\n}\n\nvar directive = {\n  inserted: function inserted (el, binding, vnode, oldVnode) {\n    if (vnode.tag === 'select') {\n      // #6903\n      if (oldVnode.elm && !oldVnode.elm._vOptions) {\n        mergeVNodeHook(vnode, 'postpatch', function () {\n          directive.componentUpdated(el, binding, vnode);\n        });\n      } else {\n        setSelected(el, binding, vnode.context);\n      }\n      el._vOptions = [].map.call(el.options, getValue);\n    } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n      el._vModifiers = binding.modifiers;\n      if (!binding.modifiers.lazy) {\n        el.addEventListener('compositionstart', onCompositionStart);\n        el.addEventListener('compositionend', onCompositionEnd);\n        // Safari < 10.2 & UIWebView doesn't fire compositionend when\n        // switching focus before confirming composition choice\n        // this also fixes the issue where some browsers e.g. iOS Chrome\n        // fires \"change\" instead of \"input\" on autocomplete.\n        el.addEventListener('change', onCompositionEnd);\n        /* istanbul ignore if */\n        if (isIE9) {\n          el.vmodel = true;\n        }\n      }\n    }\n  },\n\n  componentUpdated: function componentUpdated (el, binding, vnode) {\n    if (vnode.tag === 'select') {\n      setSelected(el, binding, vnode.context);\n      // in case the options rendered by v-for have changed,\n      // it's possible that the value is out-of-sync with the rendered options.\n      // detect such cases and filter out values that no longer has a matching\n      // option in the DOM.\n      var prevOptions = el._vOptions;\n      var curOptions = el._vOptions = [].map.call(el.options, getValue);\n      if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n        // trigger change event if\n        // no matching option found for at least one value\n        var needReset = el.multiple\n          ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n          : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n        if (needReset) {\n          trigger(el, 'change');\n        }\n      }\n    }\n  }\n};\n\nfunction setSelected (el, binding, vm) {\n  actuallySetSelected(el, binding, vm);\n  /* istanbul ignore if */\n  if (isIE || isEdge) {\n    setTimeout(function () {\n      actuallySetSelected(el, binding, vm);\n    }, 0);\n  }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n  var value = binding.value;\n  var isMultiple = el.multiple;\n  if (isMultiple && !Array.isArray(value)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n      \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n      vm\n    );\n    return\n  }\n  var selected, option;\n  for (var i = 0, l = el.options.length; i < l; i++) {\n    option = el.options[i];\n    if (isMultiple) {\n      selected = looseIndexOf(value, getValue(option)) > -1;\n      if (option.selected !== selected) {\n        option.selected = selected;\n      }\n    } else {\n      if (looseEqual(getValue(option), value)) {\n        if (el.selectedIndex !== i) {\n          el.selectedIndex = i;\n        }\n        return\n      }\n    }\n  }\n  if (!isMultiple) {\n    el.selectedIndex = -1;\n  }\n}\n\nfunction hasNoMatchingOption (value, options) {\n  return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n  return '_value' in option\n    ? option._value\n    : option.value\n}\n\nfunction onCompositionStart (e) {\n  e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n  // prevent triggering an input event for no reason\n  if (!e.target.composing) { return }\n  e.target.composing = false;\n  trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n  var e = document.createEvent('HTMLEvents');\n  e.initEvent(type, true, true);\n  el.dispatchEvent(e);\n}\n\n/*  */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n  return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n    ? locateNode(vnode.componentInstance._vnode)\n    : vnode\n}\n\nvar show = {\n  bind: function bind (el, ref, vnode) {\n    var value = ref.value;\n\n    vnode = locateNode(vnode);\n    var transition$$1 = vnode.data && vnode.data.transition;\n    var originalDisplay = el.__vOriginalDisplay =\n      el.style.display === 'none' ? '' : el.style.display;\n    if (value && transition$$1) {\n      vnode.data.show = true;\n      enter(vnode, function () {\n        el.style.display = originalDisplay;\n      });\n    } else {\n      el.style.display = value ? originalDisplay : 'none';\n    }\n  },\n\n  update: function update (el, ref, vnode) {\n    var value = ref.value;\n    var oldValue = ref.oldValue;\n\n    /* istanbul ignore if */\n    if (!value === !oldValue) { return }\n    vnode = locateNode(vnode);\n    var transition$$1 = vnode.data && vnode.data.transition;\n    if (transition$$1) {\n      vnode.data.show = true;\n      if (value) {\n        enter(vnode, function () {\n          el.style.display = el.__vOriginalDisplay;\n        });\n      } else {\n        leave(vnode, function () {\n          el.style.display = 'none';\n        });\n      }\n    } else {\n      el.style.display = value ? el.__vOriginalDisplay : 'none';\n    }\n  },\n\n  unbind: function unbind (\n    el,\n    binding,\n    vnode,\n    oldVnode,\n    isDestroy\n  ) {\n    if (!isDestroy) {\n      el.style.display = el.__vOriginalDisplay;\n    }\n  }\n};\n\nvar platformDirectives = {\n  model: directive,\n  show: show\n};\n\n/*  */\n\nvar transitionProps = {\n  name: String,\n  appear: Boolean,\n  css: Boolean,\n  mode: String,\n  type: String,\n  enterClass: String,\n  leaveClass: String,\n  enterToClass: String,\n  leaveToClass: String,\n  enterActiveClass: String,\n  leaveActiveClass: String,\n  appearClass: String,\n  appearActiveClass: String,\n  appearToClass: String,\n  duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n  var compOptions = vnode && vnode.componentOptions;\n  if (compOptions && compOptions.Ctor.options.abstract) {\n    return getRealChild(getFirstComponentChild(compOptions.children))\n  } else {\n    return vnode\n  }\n}\n\nfunction extractTransitionData (comp) {\n  var data = {};\n  var options = comp.$options;\n  // props\n  for (var key in options.propsData) {\n    data[key] = comp[key];\n  }\n  // events.\n  // extract listeners and pass them directly to the transition methods\n  var listeners = options._parentListeners;\n  for (var key$1 in listeners) {\n    data[camelize(key$1)] = listeners[key$1];\n  }\n  return data\n}\n\nfunction placeholder (h, rawChild) {\n  if (/\\d-keep-alive$/.test(rawChild.tag)) {\n    return h('keep-alive', {\n      props: rawChild.componentOptions.propsData\n    })\n  }\n}\n\nfunction hasParentTransition (vnode) {\n  while ((vnode = vnode.parent)) {\n    if (vnode.data.transition) {\n      return true\n    }\n  }\n}\n\nfunction isSameChild (child, oldChild) {\n  return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\n\nvar isVShowDirective = function (d) { return d.name === 'show'; };\n\nvar Transition = {\n  name: 'transition',\n  props: transitionProps,\n  abstract: true,\n\n  render: function render (h) {\n    var this$1 = this;\n\n    var children = this.$slots.default;\n    if (!children) {\n      return\n    }\n\n    // filter out text nodes (possible whitespaces)\n    children = children.filter(isNotTextNode);\n    /* istanbul ignore if */\n    if (!children.length) {\n      return\n    }\n\n    // warn multiple elements\n    if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n      warn(\n        '<transition> can only be used on a single element. Use ' +\n        '<transition-group> for lists.',\n        this.$parent\n      );\n    }\n\n    var mode = this.mode;\n\n    // warn invalid mode\n    if (process.env.NODE_ENV !== 'production' &&\n      mode && mode !== 'in-out' && mode !== 'out-in'\n    ) {\n      warn(\n        'invalid <transition> mode: ' + mode,\n        this.$parent\n      );\n    }\n\n    var rawChild = children[0];\n\n    // if this is a component root node and the component's\n    // parent container node also has transition, skip.\n    if (hasParentTransition(this.$vnode)) {\n      return rawChild\n    }\n\n    // apply transition data to child\n    // use getRealChild() to ignore abstract components e.g. keep-alive\n    var child = getRealChild(rawChild);\n    /* istanbul ignore if */\n    if (!child) {\n      return rawChild\n    }\n\n    if (this._leaving) {\n      return placeholder(h, rawChild)\n    }\n\n    // ensure a key that is unique to the vnode type and to this transition\n    // component instance. This key will be used to remove pending leaving nodes\n    // during entering.\n    var id = \"__transition-\" + (this._uid) + \"-\";\n    child.key = child.key == null\n      ? child.isComment\n        ? id + 'comment'\n        : id + child.tag\n      : isPrimitive(child.key)\n        ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n        : child.key;\n\n    var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n    var oldRawChild = this._vnode;\n    var oldChild = getRealChild(oldRawChild);\n\n    // mark v-show\n    // so that the transition module can hand over the control to the directive\n    if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n      child.data.show = true;\n    }\n\n    if (\n      oldChild &&\n      oldChild.data &&\n      !isSameChild(child, oldChild) &&\n      !isAsyncPlaceholder(oldChild) &&\n      // #6687 component root is a comment node\n      !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n    ) {\n      // replace old child transition data with fresh one\n      // important for dynamic transitions!\n      var oldData = oldChild.data.transition = extend({}, data);\n      // handle transition mode\n      if (mode === 'out-in') {\n        // return placeholder node and queue update when leave finishes\n        this._leaving = true;\n        mergeVNodeHook(oldData, 'afterLeave', function () {\n          this$1._leaving = false;\n          this$1.$forceUpdate();\n        });\n        return placeholder(h, rawChild)\n      } else if (mode === 'in-out') {\n        if (isAsyncPlaceholder(child)) {\n          return oldRawChild\n        }\n        var delayedLeave;\n        var performLeave = function () { delayedLeave(); };\n        mergeVNodeHook(data, 'afterEnter', performLeave);\n        mergeVNodeHook(data, 'enterCancelled', performLeave);\n        mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n      }\n    }\n\n    return rawChild\n  }\n};\n\n/*  */\n\nvar props = extend({\n  tag: String,\n  moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n  props: props,\n\n  beforeMount: function beforeMount () {\n    var this$1 = this;\n\n    var update = this._update;\n    this._update = function (vnode, hydrating) {\n      var restoreActiveInstance = setActiveInstance(this$1);\n      // force removing pass\n      this$1.__patch__(\n        this$1._vnode,\n        this$1.kept,\n        false, // hydrating\n        true // removeOnly (!important, avoids unnecessary moves)\n      );\n      this$1._vnode = this$1.kept;\n      restoreActiveInstance();\n      update.call(this$1, vnode, hydrating);\n    };\n  },\n\n  render: function render (h) {\n    var tag = this.tag || this.$vnode.data.tag || 'span';\n    var map = Object.create(null);\n    var prevChildren = this.prevChildren = this.children;\n    var rawChildren = this.$slots.default || [];\n    var children = this.children = [];\n    var transitionData = extractTransitionData(this);\n\n    for (var i = 0; i < rawChildren.length; i++) {\n      var c = rawChildren[i];\n      if (c.tag) {\n        if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n          children.push(c);\n          map[c.key] = c\n          ;(c.data || (c.data = {})).transition = transitionData;\n        } else if (process.env.NODE_ENV !== 'production') {\n          var opts = c.componentOptions;\n          var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n          warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n        }\n      }\n    }\n\n    if (prevChildren) {\n      var kept = [];\n      var removed = [];\n      for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n        var c$1 = prevChildren[i$1];\n        c$1.data.transition = transitionData;\n        c$1.data.pos = c$1.elm.getBoundingClientRect();\n        if (map[c$1.key]) {\n          kept.push(c$1);\n        } else {\n          removed.push(c$1);\n        }\n      }\n      this.kept = h(tag, null, kept);\n      this.removed = removed;\n    }\n\n    return h(tag, null, children)\n  },\n\n  updated: function updated () {\n    var children = this.prevChildren;\n    var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n    if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n      return\n    }\n\n    // we divide the work into three loops to avoid mixing DOM reads and writes\n    // in each iteration - which helps prevent layout thrashing.\n    children.forEach(callPendingCbs);\n    children.forEach(recordPosition);\n    children.forEach(applyTranslation);\n\n    // force reflow to put everything in position\n    // assign to this to avoid being removed in tree-shaking\n    // $flow-disable-line\n    this._reflow = document.body.offsetHeight;\n\n    children.forEach(function (c) {\n      if (c.data.moved) {\n        var el = c.elm;\n        var s = el.style;\n        addTransitionClass(el, moveClass);\n        s.transform = s.WebkitTransform = s.transitionDuration = '';\n        el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n          if (e && e.target !== el) {\n            return\n          }\n          if (!e || /transform$/.test(e.propertyName)) {\n            el.removeEventListener(transitionEndEvent, cb);\n            el._moveCb = null;\n            removeTransitionClass(el, moveClass);\n          }\n        });\n      }\n    });\n  },\n\n  methods: {\n    hasMove: function hasMove (el, moveClass) {\n      /* istanbul ignore if */\n      if (!hasTransition) {\n        return false\n      }\n      /* istanbul ignore if */\n      if (this._hasMove) {\n        return this._hasMove\n      }\n      // Detect whether an element with the move class applied has\n      // CSS transitions. Since the element may be inside an entering\n      // transition at this very moment, we make a clone of it and remove\n      // all other transition classes applied to ensure only the move class\n      // is applied.\n      var clone = el.cloneNode();\n      if (el._transitionClasses) {\n        el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n      }\n      addClass(clone, moveClass);\n      clone.style.display = 'none';\n      this.$el.appendChild(clone);\n      var info = getTransitionInfo(clone);\n      this.$el.removeChild(clone);\n      return (this._hasMove = info.hasTransform)\n    }\n  }\n};\n\nfunction callPendingCbs (c) {\n  /* istanbul ignore if */\n  if (c.elm._moveCb) {\n    c.elm._moveCb();\n  }\n  /* istanbul ignore if */\n  if (c.elm._enterCb) {\n    c.elm._enterCb();\n  }\n}\n\nfunction recordPosition (c) {\n  c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n  var oldPos = c.data.pos;\n  var newPos = c.data.newPos;\n  var dx = oldPos.left - newPos.left;\n  var dy = oldPos.top - newPos.top;\n  if (dx || dy) {\n    c.data.moved = true;\n    var s = c.elm.style;\n    s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n    s.transitionDuration = '0s';\n  }\n}\n\nvar platformComponents = {\n  Transition: Transition,\n  TransitionGroup: TransitionGroup\n};\n\n/*  */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n  el,\n  hydrating\n) {\n  el = el && inBrowser ? query(el) : undefined;\n  return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n  setTimeout(function () {\n    if (config.devtools) {\n      if (devtools) {\n        devtools.emit('init', Vue);\n      } else if (\n        process.env.NODE_ENV !== 'production' &&\n        process.env.NODE_ENV !== 'test'\n      ) {\n        console[console.info ? 'info' : 'log'](\n          'Download the Vue Devtools extension for a better development experience:\\n' +\n          'https://github.com/vuejs/vue-devtools'\n        );\n      }\n    }\n    if (process.env.NODE_ENV !== 'production' &&\n      process.env.NODE_ENV !== 'test' &&\n      config.productionTip !== false &&\n      typeof console !== 'undefined'\n    ) {\n      console[console.info ? 'info' : 'log'](\n        \"You are running Vue in development mode.\\n\" +\n        \"Make sure to turn on production mode when deploying for production.\\n\" +\n        \"See more tips at https://vuejs.org/guide/deployment.html\"\n      );\n    }\n  }, 0);\n}\n\n/*  */\n\nexport default Vue;\n","var $ = require('../internals/export');\nvar is = require('../internals/same-value');\n\n// `Object.is` method\n// https://tc39.github.io/ecma262/#sec-object.is\n$({ target: 'Object', stat: true }, {\n  is: is\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n  var result, codePoints, index;\n  if (input.charAt(0) == '[') {\n    if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n    result = parseIPv6(input.slice(1, -1));\n    if (!result) return INVALID_HOST;\n    url.host = result;\n  // opaque host\n  } else if (!isSpecial(url)) {\n    if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n    result = '';\n    codePoints = arrayFrom(input);\n    for (index = 0; index < codePoints.length; index++) {\n      result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n    }\n    url.host = result;\n  } else {\n    input = toASCII(input);\n    if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n    result = parseIPv4(input);\n    if (result === null) return INVALID_HOST;\n    url.host = result;\n  }\n};\n\nvar parseIPv4 = function (input) {\n  var parts = input.split('.');\n  var partsLength, numbers, index, part, radix, number, ipv4;\n  if (parts.length && parts[parts.length - 1] == '') {\n    parts.pop();\n  }\n  partsLength = parts.length;\n  if (partsLength > 4) return input;\n  numbers = [];\n  for (index = 0; index < partsLength; index++) {\n    part = parts[index];\n    if (part == '') return input;\n    radix = 10;\n    if (part.length > 1 && part.charAt(0) == '0') {\n      radix = HEX_START.test(part) ? 16 : 8;\n      part = part.slice(radix == 8 ? 1 : 2);\n    }\n    if (part === '') {\n      number = 0;\n    } else {\n      if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n      number = parseInt(part, radix);\n    }\n    numbers.push(number);\n  }\n  for (index = 0; index < partsLength; index++) {\n    number = numbers[index];\n    if (index == partsLength - 1) {\n      if (number >= pow(256, 5 - partsLength)) return null;\n    } else if (number > 255) return null;\n  }\n  ipv4 = numbers.pop();\n  for (index = 0; index < numbers.length; index++) {\n    ipv4 += numbers[index] * pow(256, 3 - index);\n  }\n  return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n  var address = [0, 0, 0, 0, 0, 0, 0, 0];\n  var pieceIndex = 0;\n  var compress = null;\n  var pointer = 0;\n  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n  var char = function () {\n    return input.charAt(pointer);\n  };\n\n  if (char() == ':') {\n    if (input.charAt(1) != ':') return;\n    pointer += 2;\n    pieceIndex++;\n    compress = pieceIndex;\n  }\n  while (char()) {\n    if (pieceIndex == 8) return;\n    if (char() == ':') {\n      if (compress !== null) return;\n      pointer++;\n      pieceIndex++;\n      compress = pieceIndex;\n      continue;\n    }\n    value = length = 0;\n    while (length < 4 && HEX.test(char())) {\n      value = value * 16 + parseInt(char(), 16);\n      pointer++;\n      length++;\n    }\n    if (char() == '.') {\n      if (length == 0) return;\n      pointer -= length;\n      if (pieceIndex > 6) return;\n      numbersSeen = 0;\n      while (char()) {\n        ipv4Piece = null;\n        if (numbersSeen > 0) {\n          if (char() == '.' && numbersSeen < 4) pointer++;\n          else return;\n        }\n        if (!DIGIT.test(char())) return;\n        while (DIGIT.test(char())) {\n          number = parseInt(char(), 10);\n          if (ipv4Piece === null) ipv4Piece = number;\n          else if (ipv4Piece == 0) return;\n          else ipv4Piece = ipv4Piece * 10 + number;\n          if (ipv4Piece > 255) return;\n          pointer++;\n        }\n        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n        numbersSeen++;\n        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n      }\n      if (numbersSeen != 4) return;\n      break;\n    } else if (char() == ':') {\n      pointer++;\n      if (!char()) return;\n    } else if (char()) return;\n    address[pieceIndex++] = value;\n  }\n  if (compress !== null) {\n    swaps = pieceIndex - compress;\n    pieceIndex = 7;\n    while (pieceIndex != 0 && swaps > 0) {\n      swap = address[pieceIndex];\n      address[pieceIndex--] = address[compress + swaps - 1];\n      address[compress + --swaps] = swap;\n    }\n  } else if (pieceIndex != 8) return;\n  return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n  var maxIndex = null;\n  var maxLength = 1;\n  var currStart = null;\n  var currLength = 0;\n  var index = 0;\n  for (; index < 8; index++) {\n    if (ipv6[index] !== 0) {\n      if (currLength > maxLength) {\n        maxIndex = currStart;\n        maxLength = currLength;\n      }\n      currStart = null;\n      currLength = 0;\n    } else {\n      if (currStart === null) currStart = index;\n      ++currLength;\n    }\n  }\n  if (currLength > maxLength) {\n    maxIndex = currStart;\n    maxLength = currLength;\n  }\n  return maxIndex;\n};\n\nvar serializeHost = function (host) {\n  var result, index, compress, ignore0;\n  // ipv4\n  if (typeof host == 'number') {\n    result = [];\n    for (index = 0; index < 4; index++) {\n      result.unshift(host % 256);\n      host = floor(host / 256);\n    } return result.join('.');\n  // ipv6\n  } else if (typeof host == 'object') {\n    result = '';\n    compress = findLongestZeroSequence(host);\n    for (index = 0; index < 8; index++) {\n      if (ignore0 && host[index] === 0) continue;\n      if (ignore0) ignore0 = false;\n      if (compress === index) {\n        result += index ? ':' : '::';\n        ignore0 = true;\n      } else {\n        result += host[index].toString(16);\n        if (index < 7) result += ':';\n      }\n    }\n    return '[' + result + ']';\n  } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n  ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n  '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n  var code = codeAt(char, 0);\n  return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n  ftp: 21,\n  file: null,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443\n};\n\nvar isSpecial = function (url) {\n  return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n  return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n  return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n  var second;\n  return string.length == 2 && ALPHA.test(string.charAt(0))\n    && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n  var third;\n  return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n    string.length == 2 ||\n    ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n  );\n};\n\nvar shortenURLsPath = function (url) {\n  var path = url.path;\n  var pathSize = path.length;\n  if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n    path.pop();\n  }\n};\n\nvar isSingleDot = function (segment) {\n  return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n  segment = segment.toLowerCase();\n  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n  var state = stateOverride || SCHEME_START;\n  var pointer = 0;\n  var buffer = '';\n  var seenAt = false;\n  var seenBracket = false;\n  var seenPasswordToken = false;\n  var codePoints, char, bufferCodePoints, failure;\n\n  if (!stateOverride) {\n    url.scheme = '';\n    url.username = '';\n    url.password = '';\n    url.host = null;\n    url.port = null;\n    url.path = [];\n    url.query = null;\n    url.fragment = null;\n    url.cannotBeABaseURL = false;\n    input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n  }\n\n  input = input.replace(TAB_AND_NEW_LINE, '');\n\n  codePoints = arrayFrom(input);\n\n  while (pointer <= codePoints.length) {\n    char = codePoints[pointer];\n    switch (state) {\n      case SCHEME_START:\n        if (char && ALPHA.test(char)) {\n          buffer += char.toLowerCase();\n          state = SCHEME;\n        } else if (!stateOverride) {\n          state = NO_SCHEME;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case SCHEME:\n        if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n          buffer += char.toLowerCase();\n        } else if (char == ':') {\n          if (stateOverride && (\n            (isSpecial(url) != has(specialSchemes, buffer)) ||\n            (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n            (url.scheme == 'file' && !url.host)\n          )) return;\n          url.scheme = buffer;\n          if (stateOverride) {\n            if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n            return;\n          }\n          buffer = '';\n          if (url.scheme == 'file') {\n            state = FILE;\n          } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n            state = SPECIAL_RELATIVE_OR_AUTHORITY;\n          } else if (isSpecial(url)) {\n            state = SPECIAL_AUTHORITY_SLASHES;\n          } else if (codePoints[pointer + 1] == '/') {\n            state = PATH_OR_AUTHORITY;\n            pointer++;\n          } else {\n            url.cannotBeABaseURL = true;\n            url.path.push('');\n            state = CANNOT_BE_A_BASE_URL_PATH;\n          }\n        } else if (!stateOverride) {\n          buffer = '';\n          state = NO_SCHEME;\n          pointer = 0;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case NO_SCHEME:\n        if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n        if (base.cannotBeABaseURL && char == '#') {\n          url.scheme = base.scheme;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          url.cannotBeABaseURL = true;\n          state = FRAGMENT;\n          break;\n        }\n        state = base.scheme == 'file' ? FILE : RELATIVE;\n        continue;\n\n      case SPECIAL_RELATIVE_OR_AUTHORITY:\n        if (char == '/' && codePoints[pointer + 1] == '/') {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          pointer++;\n        } else {\n          state = RELATIVE;\n          continue;\n        } break;\n\n      case PATH_OR_AUTHORITY:\n        if (char == '/') {\n          state = AUTHORITY;\n          break;\n        } else {\n          state = PATH;\n          continue;\n        }\n\n      case RELATIVE:\n        url.scheme = base.scheme;\n        if (char == EOF) {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n        } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n          state = RELATIVE_SLASH;\n        } else if (char == '?') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          state = FRAGMENT;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.path.pop();\n          state = PATH;\n          continue;\n        } break;\n\n      case RELATIVE_SLASH:\n        if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        } else if (char == '/') {\n          state = AUTHORITY;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          state = PATH;\n          continue;\n        } break;\n\n      case SPECIAL_AUTHORITY_SLASHES:\n        state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n        pointer++;\n        break;\n\n      case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n        if (char != '/' && char != '\\\\') {\n          state = AUTHORITY;\n          continue;\n        } break;\n\n      case AUTHORITY:\n        if (char == '@') {\n          if (seenAt) buffer = '%40' + buffer;\n          seenAt = true;\n          bufferCodePoints = arrayFrom(buffer);\n          for (var i = 0; i < bufferCodePoints.length; i++) {\n            var codePoint = bufferCodePoints[i];\n            if (codePoint == ':' && !seenPasswordToken) {\n              seenPasswordToken = true;\n              continue;\n            }\n            var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n            if (seenPasswordToken) url.password += encodedCodePoints;\n            else url.username += encodedCodePoints;\n          }\n          buffer = '';\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (seenAt && buffer == '') return INVALID_AUTHORITY;\n          pointer -= arrayFrom(buffer).length + 1;\n          buffer = '';\n          state = HOST;\n        } else buffer += char;\n        break;\n\n      case HOST:\n      case HOSTNAME:\n        if (stateOverride && url.scheme == 'file') {\n          state = FILE_HOST;\n          continue;\n        } else if (char == ':' && !seenBracket) {\n          if (buffer == '') return INVALID_HOST;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PORT;\n          if (stateOverride == HOSTNAME) return;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (isSpecial(url) && buffer == '') return INVALID_HOST;\n          if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PATH_START;\n          if (stateOverride) return;\n          continue;\n        } else {\n          if (char == '[') seenBracket = true;\n          else if (char == ']') seenBracket = false;\n          buffer += char;\n        } break;\n\n      case PORT:\n        if (DIGIT.test(char)) {\n          buffer += char;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          stateOverride\n        ) {\n          if (buffer != '') {\n            var port = parseInt(buffer, 10);\n            if (port > 0xFFFF) return INVALID_PORT;\n            url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n            buffer = '';\n          }\n          if (stateOverride) return;\n          state = PATH_START;\n          continue;\n        } else return INVALID_PORT;\n        break;\n\n      case FILE:\n        url.scheme = 'file';\n        if (char == '/' || char == '\\\\') state = FILE_SLASH;\n        else if (base && base.scheme == 'file') {\n          if (char == EOF) {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n          } else if (char == '?') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n            url.fragment = '';\n            state = FRAGMENT;\n          } else {\n            if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n              url.host = base.host;\n              url.path = base.path.slice();\n              shortenURLsPath(url);\n            }\n            state = PATH;\n            continue;\n          }\n        } else {\n          state = PATH;\n          continue;\n        } break;\n\n      case FILE_SLASH:\n        if (char == '/' || char == '\\\\') {\n          state = FILE_HOST;\n          break;\n        }\n        if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n          if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n          else url.host = base.host;\n        }\n        state = PATH;\n        continue;\n\n      case FILE_HOST:\n        if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n          if (!stateOverride && isWindowsDriveLetter(buffer)) {\n            state = PATH;\n          } else if (buffer == '') {\n            url.host = '';\n            if (stateOverride) return;\n            state = PATH_START;\n          } else {\n            failure = parseHost(url, buffer);\n            if (failure) return failure;\n            if (url.host == 'localhost') url.host = '';\n            if (stateOverride) return;\n            buffer = '';\n            state = PATH_START;\n          } continue;\n        } else buffer += char;\n        break;\n\n      case PATH_START:\n        if (isSpecial(url)) {\n          state = PATH;\n          if (char != '/' && char != '\\\\') continue;\n        } else if (!stateOverride && char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          state = PATH;\n          if (char != '/') continue;\n        } break;\n\n      case PATH:\n        if (\n          char == EOF || char == '/' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          (!stateOverride && (char == '?' || char == '#'))\n        ) {\n          if (isDoubleDot(buffer)) {\n            shortenURLsPath(url);\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else if (isSingleDot(buffer)) {\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else {\n            if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n              if (url.host) url.host = '';\n              buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n            }\n            url.path.push(buffer);\n          }\n          buffer = '';\n          if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n            while (url.path.length > 1 && url.path[0] === '') {\n              url.path.shift();\n            }\n          }\n          if (char == '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          }\n        } else {\n          buffer += percentEncode(char, pathPercentEncodeSet);\n        } break;\n\n      case CANNOT_BE_A_BASE_URL_PATH:\n        if (char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case QUERY:\n        if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          if (char == \"'\" && isSpecial(url)) url.query += '%27';\n          else if (char == '#') url.query += '%23';\n          else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case FRAGMENT:\n        if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n        break;\n    }\n\n    pointer++;\n  }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n  var that = anInstance(this, URLConstructor, 'URL');\n  var base = arguments.length > 1 ? arguments[1] : undefined;\n  var urlString = String(url);\n  var state = setInternalState(that, { type: 'URL' });\n  var baseState, failure;\n  if (base !== undefined) {\n    if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n    else {\n      failure = parseURL(baseState = {}, String(base));\n      if (failure) throw TypeError(failure);\n    }\n  }\n  failure = parseURL(state, urlString, null, baseState);\n  if (failure) throw TypeError(failure);\n  var searchParams = state.searchParams = new URLSearchParams();\n  var searchParamsState = getInternalSearchParamsState(searchParams);\n  searchParamsState.updateSearchParams(state.query);\n  searchParamsState.updateURL = function () {\n    state.query = String(searchParams) || null;\n  };\n  if (!DESCRIPTORS) {\n    that.href = serializeURL.call(that);\n    that.origin = getOrigin.call(that);\n    that.protocol = getProtocol.call(that);\n    that.username = getUsername.call(that);\n    that.password = getPassword.call(that);\n    that.host = getHost.call(that);\n    that.hostname = getHostname.call(that);\n    that.port = getPort.call(that);\n    that.pathname = getPathname.call(that);\n    that.search = getSearch.call(that);\n    that.searchParams = getSearchParams.call(that);\n    that.hash = getHash.call(that);\n  }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var username = url.username;\n  var password = url.password;\n  var host = url.host;\n  var port = url.port;\n  var path = url.path;\n  var query = url.query;\n  var fragment = url.fragment;\n  var output = scheme + ':';\n  if (host !== null) {\n    output += '//';\n    if (includesCredentials(url)) {\n      output += username + (password ? ':' + password : '') + '@';\n    }\n    output += serializeHost(host);\n    if (port !== null) output += ':' + port;\n  } else if (scheme == 'file') output += '//';\n  output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n  if (query !== null) output += '?' + query;\n  if (fragment !== null) output += '#' + fragment;\n  return output;\n};\n\nvar getOrigin = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var port = url.port;\n  if (scheme == 'blob') try {\n    return new URL(scheme.path[0]).origin;\n  } catch (error) {\n    return 'null';\n  }\n  if (scheme == 'file' || !isSpecial(url)) return 'null';\n  return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n  return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n  return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n  return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n  var url = getInternalURLState(this);\n  var host = url.host;\n  var port = url.port;\n  return host === null ? ''\n    : port === null ? serializeHost(host)\n    : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n  var host = getInternalURLState(this).host;\n  return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n  var port = getInternalURLState(this).port;\n  return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n  var url = getInternalURLState(this);\n  var path = url.path;\n  return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n  var query = getInternalURLState(this).query;\n  return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n  return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n  var fragment = getInternalURLState(this).fragment;\n  return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n  return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n  defineProperties(URLPrototype, {\n    // `URL.prototype.href` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-href\n    href: accessorDescriptor(serializeURL, function (href) {\n      var url = getInternalURLState(this);\n      var urlString = String(href);\n      var failure = parseURL(url, urlString);\n      if (failure) throw TypeError(failure);\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.origin` getter\n    // https://url.spec.whatwg.org/#dom-url-origin\n    origin: accessorDescriptor(getOrigin),\n    // `URL.prototype.protocol` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-protocol\n    protocol: accessorDescriptor(getProtocol, function (protocol) {\n      var url = getInternalURLState(this);\n      parseURL(url, String(protocol) + ':', SCHEME_START);\n    }),\n    // `URL.prototype.username` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-username\n    username: accessorDescriptor(getUsername, function (username) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(username));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.username = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.password` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-password\n    password: accessorDescriptor(getPassword, function (password) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(password));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.password = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.host` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-host\n    host: accessorDescriptor(getHost, function (host) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(host), HOST);\n    }),\n    // `URL.prototype.hostname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hostname\n    hostname: accessorDescriptor(getHostname, function (hostname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(hostname), HOSTNAME);\n    }),\n    // `URL.prototype.port` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-port\n    port: accessorDescriptor(getPort, function (port) {\n      var url = getInternalURLState(this);\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      port = String(port);\n      if (port == '') url.port = null;\n      else parseURL(url, port, PORT);\n    }),\n    // `URL.prototype.pathname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-pathname\n    pathname: accessorDescriptor(getPathname, function (pathname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      url.path = [];\n      parseURL(url, pathname + '', PATH_START);\n    }),\n    // `URL.prototype.search` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-search\n    search: accessorDescriptor(getSearch, function (search) {\n      var url = getInternalURLState(this);\n      search = String(search);\n      if (search == '') {\n        url.query = null;\n      } else {\n        if ('?' == search.charAt(0)) search = search.slice(1);\n        url.query = '';\n        parseURL(url, search, QUERY);\n      }\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.searchParams` getter\n    // https://url.spec.whatwg.org/#dom-url-searchparams\n    searchParams: accessorDescriptor(getSearchParams),\n    // `URL.prototype.hash` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hash\n    hash: accessorDescriptor(getHash, function (hash) {\n      var url = getInternalURLState(this);\n      hash = String(hash);\n      if (hash == '') {\n        url.fragment = null;\n        return;\n      }\n      if ('#' == hash.charAt(0)) hash = hash.slice(1);\n      url.fragment = '';\n      parseURL(url, hash, FRAGMENT);\n    })\n  });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n  var nativeCreateObjectURL = NativeURL.createObjectURL;\n  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n  // `URL.createObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n  // eslint-disable-next-line no-unused-vars\n  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n    return nativeCreateObjectURL.apply(NativeURL, arguments);\n  });\n  // `URL.revokeObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n  // eslint-disable-next-line no-unused-vars\n  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n    return nativeRevokeObjectURL.apply(NativeURL, arguments);\n  });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n  URL: URLConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n  var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n  return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = String(requireObjectCoercible(this));\n    notARegExp(searchString);\n    var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = String(searchString);\n    return nativeStartsWith\n      ? nativeStartsWith.call(that, search, index)\n      : that.slice(index, index + search.length) === search;\n  }\n});\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n  // eslint-disable-next-line no-prototype-builtins\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar runner = function (id) {\n  return function () {\n    run(id);\n  };\n};\n\nvar listener = function (event) {\n  run(event.data);\n};\n\nvar post = function (id) {\n  // old engines have not location.origin\n  global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n  set = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n    while (arguments.length > i) args.push(arguments[i++]);\n    queue[++counter] = function () {\n      // eslint-disable-next-line no-new-func\n      (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clear = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (classof(process) == 'process') {\n    defer = function (id) {\n      process.nextTick(runner(id));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(runner(id));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  // except iOS - https://github.com/zloirock/core-js/issues/624\n  } else if (MessageChannel && !IS_IOS) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = bind(port.postMessage, port, 1);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (\n    global.addEventListener &&\n    typeof postMessage == 'function' &&\n    !global.importScripts &&\n    !fails(post) &&\n    location.protocol !== 'file:'\n  ) {\n    defer = post;\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in createElement('script')) {\n    defer = function (id) {\n      html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(runner(id), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: set,\n  clear: clear\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n  match = v8.split('.');\n  version = match[0] + match[1];\n} else if (userAgent) {\n  match = userAgent.match(/Edge\\/(\\d+)/);\n  if (!match || match[1] >= 74) {\n    match = userAgent.match(/Chrome\\/(\\d+)/);\n    if (match) version = match[1];\n  }\n}\n\nmodule.exports = version && +version;\n","/*!\n * vuex v3.5.1\n * (c) 2020 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n  var version = Number(Vue.version.split('.')[0]);\n\n  if (version >= 2) {\n    Vue.mixin({ beforeCreate: vuexInit });\n  } else {\n    // override init and inject vuex init procedure\n    // for 1.x backwards compatibility.\n    var _init = Vue.prototype._init;\n    Vue.prototype._init = function (options) {\n      if ( options === void 0 ) options = {};\n\n      options.init = options.init\n        ? [vuexInit].concat(options.init)\n        : vuexInit;\n      _init.call(this, options);\n    };\n  }\n\n  /**\n   * Vuex init hook, injected into each instances init hooks list.\n   */\n\n  function vuexInit () {\n    var options = this.$options;\n    // store injection\n    if (options.store) {\n      this.$store = typeof options.store === 'function'\n        ? options.store()\n        : options.store;\n    } else if (options.parent && options.parent.$store) {\n      this.$store = options.parent.$store;\n    }\n  }\n}\n\nvar target = typeof window !== 'undefined'\n  ? window\n  : typeof global !== 'undefined'\n    ? global\n    : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n  if (!devtoolHook) { return }\n\n  store._devtoolHook = devtoolHook;\n\n  devtoolHook.emit('vuex:init', store);\n\n  devtoolHook.on('vuex:travel-to-state', function (targetState) {\n    store.replaceState(targetState);\n  });\n\n  store.subscribe(function (mutation, state) {\n    devtoolHook.emit('vuex:mutation', mutation, state);\n  }, { prepend: true });\n\n  store.subscribeAction(function (action, state) {\n    devtoolHook.emit('vuex:action', action, state);\n  }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n  return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n  if ( cache === void 0 ) cache = [];\n\n  // just return if obj is immutable value\n  if (obj === null || typeof obj !== 'object') {\n    return obj\n  }\n\n  // if obj is hit, it is in circular structure\n  var hit = find(cache, function (c) { return c.original === obj; });\n  if (hit) {\n    return hit.copy\n  }\n\n  var copy = Array.isArray(obj) ? [] : {};\n  // put the copy into cache at first\n  // because we want to refer it in recursive deepCopy\n  cache.push({\n    original: obj,\n    copy: copy\n  });\n\n  Object.keys(obj).forEach(function (key) {\n    copy[key] = deepCopy(obj[key], cache);\n  });\n\n  return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n  Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n  return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n  return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n  if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n  return function () {\n    return fn(arg)\n  }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n  this.runtime = runtime;\n  // Store some children item\n  this._children = Object.create(null);\n  // Store the origin module object which passed by programmer\n  this._rawModule = rawModule;\n  var rawState = rawModule.state;\n\n  // Store the origin module's state\n  this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n  return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n  this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n  delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n  return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n  return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n  this._rawModule.namespaced = rawModule.namespaced;\n  if (rawModule.actions) {\n    this._rawModule.actions = rawModule.actions;\n  }\n  if (rawModule.mutations) {\n    this._rawModule.mutations = rawModule.mutations;\n  }\n  if (rawModule.getters) {\n    this._rawModule.getters = rawModule.getters;\n  }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n  forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n  if (this._rawModule.getters) {\n    forEachValue(this._rawModule.getters, fn);\n  }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n  if (this._rawModule.actions) {\n    forEachValue(this._rawModule.actions, fn);\n  }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n  if (this._rawModule.mutations) {\n    forEachValue(this._rawModule.mutations, fn);\n  }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n  // register root module (Vuex.Store options)\n  this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n  return path.reduce(function (module, key) {\n    return module.getChild(key)\n  }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n  var module = this.root;\n  return path.reduce(function (namespace, key) {\n    module = module.getChild(key);\n    return namespace + (module.namespaced ? key + '/' : '')\n  }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n  update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n    var this$1 = this;\n    if ( runtime === void 0 ) runtime = true;\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assertRawModule(path, rawModule);\n  }\n\n  var newModule = new Module(rawModule, runtime);\n  if (path.length === 0) {\n    this.root = newModule;\n  } else {\n    var parent = this.get(path.slice(0, -1));\n    parent.addChild(path[path.length - 1], newModule);\n  }\n\n  // register nested modules\n  if (rawModule.modules) {\n    forEachValue(rawModule.modules, function (rawChildModule, key) {\n      this$1.register(path.concat(key), rawChildModule, runtime);\n    });\n  }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n  var parent = this.get(path.slice(0, -1));\n  var key = path[path.length - 1];\n  var child = parent.getChild(key);\n\n  if (!child) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.warn(\n        \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n        \"not registered\"\n      );\n    }\n    return\n  }\n\n  if (!child.runtime) {\n    return\n  }\n\n  parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n  var parent = this.get(path.slice(0, -1));\n  var key = path[path.length - 1];\n\n  return parent.hasChild(key)\n};\n\nfunction update (path, targetModule, newModule) {\n  if ((process.env.NODE_ENV !== 'production')) {\n    assertRawModule(path, newModule);\n  }\n\n  // update target module\n  targetModule.update(newModule);\n\n  // update nested modules\n  if (newModule.modules) {\n    for (var key in newModule.modules) {\n      if (!targetModule.getChild(key)) {\n        if ((process.env.NODE_ENV !== 'production')) {\n          console.warn(\n            \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n            'manual reload is needed'\n          );\n        }\n        return\n      }\n      update(\n        path.concat(key),\n        targetModule.getChild(key),\n        newModule.modules[key]\n      );\n    }\n  }\n}\n\nvar functionAssert = {\n  assert: function (value) { return typeof value === 'function'; },\n  expected: 'function'\n};\n\nvar objectAssert = {\n  assert: function (value) { return typeof value === 'function' ||\n    (typeof value === 'object' && typeof value.handler === 'function'); },\n  expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n  getters: functionAssert,\n  mutations: functionAssert,\n  actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n  Object.keys(assertTypes).forEach(function (key) {\n    if (!rawModule[key]) { return }\n\n    var assertOptions = assertTypes[key];\n\n    forEachValue(rawModule[key], function (value, type) {\n      assert(\n        assertOptions.assert(value),\n        makeAssertionMessage(path, key, type, value, assertOptions.expected)\n      );\n    });\n  });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n  var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n  if (path.length > 0) {\n    buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n  }\n  buf += \" is \" + (JSON.stringify(value)) + \".\";\n  return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n  var this$1 = this;\n  if ( options === void 0 ) options = {};\n\n  // Auto install if it is not done yet and `window` has `Vue`.\n  // To allow users to avoid auto-installation in some cases,\n  // this code should be placed here. See #731\n  if (!Vue && typeof window !== 'undefined' && window.Vue) {\n    install(window.Vue);\n  }\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n    assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n    assert(this instanceof Store, \"store must be called with the new operator.\");\n  }\n\n  var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n  var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n  // store internal state\n  this._committing = false;\n  this._actions = Object.create(null);\n  this._actionSubscribers = [];\n  this._mutations = Object.create(null);\n  this._wrappedGetters = Object.create(null);\n  this._modules = new ModuleCollection(options);\n  this._modulesNamespaceMap = Object.create(null);\n  this._subscribers = [];\n  this._watcherVM = new Vue();\n  this._makeLocalGettersCache = Object.create(null);\n\n  // bind commit and dispatch to self\n  var store = this;\n  var ref = this;\n  var dispatch = ref.dispatch;\n  var commit = ref.commit;\n  this.dispatch = function boundDispatch (type, payload) {\n    return dispatch.call(store, type, payload)\n  };\n  this.commit = function boundCommit (type, payload, options) {\n    return commit.call(store, type, payload, options)\n  };\n\n  // strict mode\n  this.strict = strict;\n\n  var state = this._modules.root.state;\n\n  // init root module.\n  // this also recursively registers all sub-modules\n  // and collects all module getters inside this._wrappedGetters\n  installModule(this, state, [], this._modules.root);\n\n  // initialize the store vm, which is responsible for the reactivity\n  // (also registers _wrappedGetters as computed properties)\n  resetStoreVM(this, state);\n\n  // apply plugins\n  plugins.forEach(function (plugin) { return plugin(this$1); });\n\n  var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n  if (useDevtools) {\n    devtoolPlugin(this);\n  }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n  return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(false, \"use store.replaceState() to explicit replace store state.\");\n  }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n    var this$1 = this;\n\n  // check object-style commit\n  var ref = unifyObjectStyle(_type, _payload, _options);\n    var type = ref.type;\n    var payload = ref.payload;\n    var options = ref.options;\n\n  var mutation = { type: type, payload: payload };\n  var entry = this._mutations[type];\n  if (!entry) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.error((\"[vuex] unknown mutation type: \" + type));\n    }\n    return\n  }\n  this._withCommit(function () {\n    entry.forEach(function commitIterator (handler) {\n      handler(payload);\n    });\n  });\n\n  this._subscribers\n    .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n    .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n  if (\n    (process.env.NODE_ENV !== 'production') &&\n    options && options.silent\n  ) {\n    console.warn(\n      \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n      'Use the filter functionality in the vue-devtools'\n    );\n  }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n    var this$1 = this;\n\n  // check object-style dispatch\n  var ref = unifyObjectStyle(_type, _payload);\n    var type = ref.type;\n    var payload = ref.payload;\n\n  var action = { type: type, payload: payload };\n  var entry = this._actions[type];\n  if (!entry) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.error((\"[vuex] unknown action type: \" + type));\n    }\n    return\n  }\n\n  try {\n    this._actionSubscribers\n      .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n      .filter(function (sub) { return sub.before; })\n      .forEach(function (sub) { return sub.before(action, this$1.state); });\n  } catch (e) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.warn(\"[vuex] error in before action subscribers: \");\n      console.error(e);\n    }\n  }\n\n  var result = entry.length > 1\n    ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n    : entry[0](payload);\n\n  return new Promise(function (resolve, reject) {\n    result.then(function (res) {\n      try {\n        this$1._actionSubscribers\n          .filter(function (sub) { return sub.after; })\n          .forEach(function (sub) { return sub.after(action, this$1.state); });\n      } catch (e) {\n        if ((process.env.NODE_ENV !== 'production')) {\n          console.warn(\"[vuex] error in after action subscribers: \");\n          console.error(e);\n        }\n      }\n      resolve(res);\n    }, function (error) {\n      try {\n        this$1._actionSubscribers\n          .filter(function (sub) { return sub.error; })\n          .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n      } catch (e) {\n        if ((process.env.NODE_ENV !== 'production')) {\n          console.warn(\"[vuex] error in error action subscribers: \");\n          console.error(e);\n        }\n      }\n      reject(error);\n    });\n  })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n  return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n  var subs = typeof fn === 'function' ? { before: fn } : fn;\n  return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n    var this$1 = this;\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n  }\n  return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n    var this$1 = this;\n\n  this._withCommit(function () {\n    this$1._vm._data.$$state = state;\n  });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n    if ( options === void 0 ) options = {};\n\n  if (typeof path === 'string') { path = [path]; }\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(Array.isArray(path), \"module path must be a string or an Array.\");\n    assert(path.length > 0, 'cannot register the root module by using registerModule.');\n  }\n\n  this._modules.register(path, rawModule);\n  installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n  // reset store to update getters...\n  resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n    var this$1 = this;\n\n  if (typeof path === 'string') { path = [path]; }\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(Array.isArray(path), \"module path must be a string or an Array.\");\n  }\n\n  this._modules.unregister(path);\n  this._withCommit(function () {\n    var parentState = getNestedState(this$1.state, path.slice(0, -1));\n    Vue.delete(parentState, path[path.length - 1]);\n  });\n  resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n  if (typeof path === 'string') { path = [path]; }\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(Array.isArray(path), \"module path must be a string or an Array.\");\n  }\n\n  return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n  this._modules.update(newOptions);\n  resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n  var committing = this._committing;\n  this._committing = true;\n  fn();\n  this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n  if (subs.indexOf(fn) < 0) {\n    options && options.prepend\n      ? subs.unshift(fn)\n      : subs.push(fn);\n  }\n  return function () {\n    var i = subs.indexOf(fn);\n    if (i > -1) {\n      subs.splice(i, 1);\n    }\n  }\n}\n\nfunction resetStore (store, hot) {\n  store._actions = Object.create(null);\n  store._mutations = Object.create(null);\n  store._wrappedGetters = Object.create(null);\n  store._modulesNamespaceMap = Object.create(null);\n  var state = store.state;\n  // init all modules\n  installModule(store, state, [], store._modules.root, true);\n  // reset vm\n  resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n  var oldVm = store._vm;\n\n  // bind store public getters\n  store.getters = {};\n  // reset local getters cache\n  store._makeLocalGettersCache = Object.create(null);\n  var wrappedGetters = store._wrappedGetters;\n  var computed = {};\n  forEachValue(wrappedGetters, function (fn, key) {\n    // use computed to leverage its lazy-caching mechanism\n    // direct inline function use will lead to closure preserving oldVm.\n    // using partial to return function with only arguments preserved in closure environment.\n    computed[key] = partial(fn, store);\n    Object.defineProperty(store.getters, key, {\n      get: function () { return store._vm[key]; },\n      enumerable: true // for local getters\n    });\n  });\n\n  // use a Vue instance to store the state tree\n  // suppress warnings just in case the user has added\n  // some funky global mixins\n  var silent = Vue.config.silent;\n  Vue.config.silent = true;\n  store._vm = new Vue({\n    data: {\n      $$state: state\n    },\n    computed: computed\n  });\n  Vue.config.silent = silent;\n\n  // enable strict mode for new vm\n  if (store.strict) {\n    enableStrictMode(store);\n  }\n\n  if (oldVm) {\n    if (hot) {\n      // dispatch changes in all subscribed watchers\n      // to force getter re-evaluation for hot reloading.\n      store._withCommit(function () {\n        oldVm._data.$$state = null;\n      });\n    }\n    Vue.nextTick(function () { return oldVm.$destroy(); });\n  }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n  var isRoot = !path.length;\n  var namespace = store._modules.getNamespace(path);\n\n  // register in namespace map\n  if (module.namespaced) {\n    if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n      console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n    }\n    store._modulesNamespaceMap[namespace] = module;\n  }\n\n  // set state\n  if (!isRoot && !hot) {\n    var parentState = getNestedState(rootState, path.slice(0, -1));\n    var moduleName = path[path.length - 1];\n    store._withCommit(function () {\n      if ((process.env.NODE_ENV !== 'production')) {\n        if (moduleName in parentState) {\n          console.warn(\n            (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n          );\n        }\n      }\n      Vue.set(parentState, moduleName, module.state);\n    });\n  }\n\n  var local = module.context = makeLocalContext(store, namespace, path);\n\n  module.forEachMutation(function (mutation, key) {\n    var namespacedType = namespace + key;\n    registerMutation(store, namespacedType, mutation, local);\n  });\n\n  module.forEachAction(function (action, key) {\n    var type = action.root ? key : namespace + key;\n    var handler = action.handler || action;\n    registerAction(store, type, handler, local);\n  });\n\n  module.forEachGetter(function (getter, key) {\n    var namespacedType = namespace + key;\n    registerGetter(store, namespacedType, getter, local);\n  });\n\n  module.forEachChild(function (child, key) {\n    installModule(store, rootState, path.concat(key), child, hot);\n  });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n  var noNamespace = namespace === '';\n\n  var local = {\n    dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n      var args = unifyObjectStyle(_type, _payload, _options);\n      var payload = args.payload;\n      var options = args.options;\n      var type = args.type;\n\n      if (!options || !options.root) {\n        type = namespace + type;\n        if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n          console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n          return\n        }\n      }\n\n      return store.dispatch(type, payload)\n    },\n\n    commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n      var args = unifyObjectStyle(_type, _payload, _options);\n      var payload = args.payload;\n      var options = args.options;\n      var type = args.type;\n\n      if (!options || !options.root) {\n        type = namespace + type;\n        if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n          console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n          return\n        }\n      }\n\n      store.commit(type, payload, options);\n    }\n  };\n\n  // getters and state object must be gotten lazily\n  // because they will be changed by vm update\n  Object.defineProperties(local, {\n    getters: {\n      get: noNamespace\n        ? function () { return store.getters; }\n        : function () { return makeLocalGetters(store, namespace); }\n    },\n    state: {\n      get: function () { return getNestedState(store.state, path); }\n    }\n  });\n\n  return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n  if (!store._makeLocalGettersCache[namespace]) {\n    var gettersProxy = {};\n    var splitPos = namespace.length;\n    Object.keys(store.getters).forEach(function (type) {\n      // skip if the target getter is not match this namespace\n      if (type.slice(0, splitPos) !== namespace) { return }\n\n      // extract local getter type\n      var localType = type.slice(splitPos);\n\n      // Add a port to the getters proxy.\n      // Define as getter property because\n      // we do not want to evaluate the getters in this time.\n      Object.defineProperty(gettersProxy, localType, {\n        get: function () { return store.getters[type]; },\n        enumerable: true\n      });\n    });\n    store._makeLocalGettersCache[namespace] = gettersProxy;\n  }\n\n  return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n  var entry = store._mutations[type] || (store._mutations[type] = []);\n  entry.push(function wrappedMutationHandler (payload) {\n    handler.call(store, local.state, payload);\n  });\n}\n\nfunction registerAction (store, type, handler, local) {\n  var entry = store._actions[type] || (store._actions[type] = []);\n  entry.push(function wrappedActionHandler (payload) {\n    var res = handler.call(store, {\n      dispatch: local.dispatch,\n      commit: local.commit,\n      getters: local.getters,\n      state: local.state,\n      rootGetters: store.getters,\n      rootState: store.state\n    }, payload);\n    if (!isPromise(res)) {\n      res = Promise.resolve(res);\n    }\n    if (store._devtoolHook) {\n      return res.catch(function (err) {\n        store._devtoolHook.emit('vuex:error', err);\n        throw err\n      })\n    } else {\n      return res\n    }\n  });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n  if (store._wrappedGetters[type]) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.error((\"[vuex] duplicate getter key: \" + type));\n    }\n    return\n  }\n  store._wrappedGetters[type] = function wrappedGetter (store) {\n    return rawGetter(\n      local.state, // local state\n      local.getters, // local getters\n      store.state, // root state\n      store.getters // root getters\n    )\n  };\n}\n\nfunction enableStrictMode (store) {\n  store._vm.$watch(function () { return this._data.$$state }, function () {\n    if ((process.env.NODE_ENV !== 'production')) {\n      assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n    }\n  }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n  return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n  if (isObject(type) && type.type) {\n    options = payload;\n    payload = type;\n    type = type.type;\n  }\n\n  if ((process.env.NODE_ENV !== 'production')) {\n    assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n  }\n\n  return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n  if (Vue && _Vue === Vue) {\n    if ((process.env.NODE_ENV !== 'production')) {\n      console.error(\n        '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n      );\n    }\n    return\n  }\n  Vue = _Vue;\n  applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n  var res = {};\n  if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n    console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n  }\n  normalizeMap(states).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    res[key] = function mappedState () {\n      var state = this.$store.state;\n      var getters = this.$store.getters;\n      if (namespace) {\n        var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n        if (!module) {\n          return\n        }\n        state = module.context.state;\n        getters = module.context.getters;\n      }\n      return typeof val === 'function'\n        ? val.call(this, state, getters)\n        : state[val]\n    };\n    // mark vuex getter for devtools\n    res[key].vuex = true;\n  });\n  return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n  var res = {};\n  if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n    console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n  }\n  normalizeMap(mutations).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    res[key] = function mappedMutation () {\n      var args = [], len = arguments.length;\n      while ( len-- ) args[ len ] = arguments[ len ];\n\n      // Get the commit method from store\n      var commit = this.$store.commit;\n      if (namespace) {\n        var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n        if (!module) {\n          return\n        }\n        commit = module.context.commit;\n      }\n      return typeof val === 'function'\n        ? val.apply(this, [commit].concat(args))\n        : commit.apply(this.$store, [val].concat(args))\n    };\n  });\n  return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n  var res = {};\n  if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n    console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n  }\n  normalizeMap(getters).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    // The namespace has been mutated by normalizeNamespace\n    val = namespace + val;\n    res[key] = function mappedGetter () {\n      if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n        return\n      }\n      if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n        console.error((\"[vuex] unknown getter: \" + val));\n        return\n      }\n      return this.$store.getters[val]\n    };\n    // mark vuex getter for devtools\n    res[key].vuex = true;\n  });\n  return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n  var res = {};\n  if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n    console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n  }\n  normalizeMap(actions).forEach(function (ref) {\n    var key = ref.key;\n    var val = ref.val;\n\n    res[key] = function mappedAction () {\n      var args = [], len = arguments.length;\n      while ( len-- ) args[ len ] = arguments[ len ];\n\n      // get dispatch function from store\n      var dispatch = this.$store.dispatch;\n      if (namespace) {\n        var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n        if (!module) {\n          return\n        }\n        dispatch = module.context.dispatch;\n      }\n      return typeof val === 'function'\n        ? val.apply(this, [dispatch].concat(args))\n        : dispatch.apply(this.$store, [val].concat(args))\n    };\n  });\n  return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n  mapState: mapState.bind(null, namespace),\n  mapGetters: mapGetters.bind(null, namespace),\n  mapMutations: mapMutations.bind(null, namespace),\n  mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n  if (!isValidMap(map)) {\n    return []\n  }\n  return Array.isArray(map)\n    ? map.map(function (key) { return ({ key: key, val: key }); })\n    : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n  return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n  return function (namespace, map) {\n    if (typeof namespace !== 'string') {\n      map = namespace;\n      namespace = '';\n    } else if (namespace.charAt(namespace.length - 1) !== '/') {\n      namespace += '/';\n    }\n    return fn(namespace, map)\n  }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n  var module = store._modulesNamespaceMap[namespace];\n  if ((process.env.NODE_ENV !== 'production') && !module) {\n    console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n  }\n  return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n  if ( ref === void 0 ) ref = {};\n  var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n  var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n  var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n  var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n  var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n  var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n  var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n  var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n  var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n  return function (store) {\n    var prevState = deepCopy(store.state);\n\n    if (typeof logger === 'undefined') {\n      return\n    }\n\n    if (logMutations) {\n      store.subscribe(function (mutation, state) {\n        var nextState = deepCopy(state);\n\n        if (filter(mutation, prevState, nextState)) {\n          var formattedTime = getFormattedTime();\n          var formattedMutation = mutationTransformer(mutation);\n          var message = \"mutation \" + (mutation.type) + formattedTime;\n\n          startMessage(logger, message, collapsed);\n          logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n          logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n          logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n          endMessage(logger);\n        }\n\n        prevState = nextState;\n      });\n    }\n\n    if (logActions) {\n      store.subscribeAction(function (action, state) {\n        if (actionFilter(action, state)) {\n          var formattedTime = getFormattedTime();\n          var formattedAction = actionTransformer(action);\n          var message = \"action \" + (action.type) + formattedTime;\n\n          startMessage(logger, message, collapsed);\n          logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n          endMessage(logger);\n        }\n      });\n    }\n  }\n}\n\nfunction startMessage (logger, message, collapsed) {\n  var startMessage = collapsed\n    ? logger.groupCollapsed\n    : logger.group;\n\n  // render\n  try {\n    startMessage.call(logger, message);\n  } catch (e) {\n    logger.log(message);\n  }\n}\n\nfunction endMessage (logger) {\n  try {\n    logger.groupEnd();\n  } catch (e) {\n    logger.log('—— log end ——');\n  }\n}\n\nfunction getFormattedTime () {\n  var time = new Date();\n  return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n  return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n  return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n  Store: Store,\n  install: install,\n  version: '3.5.1',\n  mapState: mapState,\n  mapMutations: mapMutations,\n  mapGetters: mapGetters,\n  mapActions: mapActions,\n  createNamespacedHelpers: createNamespacedHelpers,\n  createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\n","import './_grid.sass'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nexport default createSimpleFunctional('spacer', 'div', 'v-spacer')\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function (kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n    switch (kind) {\n      case KEYS: return function keys() { return new Constructor(this, kind); };\n      case VALUES: return function values() { return new Constructor(this, kind); };\n    } return function entries() { return new Constructor(this, kind); };\n  };\n  var TAG = NAME + ' Iterator';\n  var DEF_VALUES = DEFAULT == VALUES;\n  var VALUES_BUG = false;\n  var proto = Base.prototype;\n  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n  var $default = $native || getMethod(DEFAULT);\n  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n  var methods, key, IteratorPrototype;\n  // Fix native\n  if ($anyNative) {\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n    $default = function values() { return $native.call(this); };\n  }\n  // Define iterator\n  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG] = returnThis;\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(defined(that));\n    var i = toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n  return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = getKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n  while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  // #replace needs built-in support for named groups.\n  // #match works fine because it just return the exec results, even if it has\n  // a \"grops\" property.\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  return ''.replace(re, '$<a>') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n  // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n  var SYMBOL = wks(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegEp methods\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n    re.exec = function () { execCalled = true; return null; };\n    if (KEY === 'split') {\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      re.constructor = {};\n      re.constructor[SPECIES] = function () { return re; };\n    }\n    re[SYMBOL]('');\n    return !execCalled;\n  }) : undefined;\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n  ) {\n    var nativeRegExpMethod = /./[SYMBOL];\n    var fns = exec(\n      defined,\n      SYMBOL,\n      ''[KEY],\n      function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n        if (regexp.exec === regexpExec) {\n          if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n            // The native String method already delegates to @@method (this\n            // polyfilled function), leasing to infinite recursion.\n            // We avoid it by directly calling the native @@method method.\n            return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n          }\n          return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n        }\n        return { done: false };\n      }\n    );\n    var strfn = fns[0];\n    var rxfn = fns[1];\n\n    redefine(String.prototype, KEY, strfn);\n    hide(RegExp.prototype, SYMBOL, length == 2\n      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n      // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n      ? function (string, arg) { return rxfn.call(string, this, arg); }\n      // 21.2.5.6 RegExp.prototype[@@match](string)\n      // 21.2.5.9 RegExp.prototype[@@search](string)\n      : function (string) { return rxfn.call(string, this); }\n    );\n  }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n    // builtinTag case\n    : ARG ? cof(O)\n    // ES3 arguments fallback\n    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n  return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n  var isFunction = typeof val == 'function';\n  if (isFunction) has(val, 'name') || hide(val, 'name', key);\n  if (O[key] === val) return;\n  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n  if (O === global) {\n    O[key] = val;\n  } else if (!safe) {\n    delete O[key];\n    hide(O, key, val);\n  } else if (O[key]) {\n    O[key] = val;\n  } else {\n    hide(O, key, val);\n  }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n  return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = __webpack_require__(\"230e\")('iframe');\n  var i = enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  __webpack_require__(\"fab2\").appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~context(this, searchString, INCLUDES)\n      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n  return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n  return function keys(it) {\n    return $keys(toObject(it));\n  };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n  var re = /./;\n  try {\n    '/./'[KEY](re);\n  } catch (e) {\n    try {\n      re[MATCH] = false;\n      return !'/./'[KEY](re);\n    } catch (f) { /* empty */ }\n  } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/,\n      re2 = /b*/g;\n  nativeExec.call(re1, 'a');\n  nativeExec.call(re2, 'a');\n  return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n  patchedExec = function exec(str) {\n    var re = this;\n    var lastIndex, reCopy, match, i;\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n    match = nativeExec.call(re, str);\n\n    if (UPDATES_LAST_INDEX_WRONG && match) {\n      re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n      // eslint-disable-next-line no-loop-func\n      nativeReplace.call(match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: core.version,\n  mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n  var key, own, out, exp;\n  if (IS_GLOBAL) source = name;\n  for (key in source) {\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    // export native or passed\n    out = (own ? target : source)[key];\n    // bind timers to global for call from export context\n    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // extend global\n    if (target) redefine(target, key, out, type & $export.U);\n    // export\n    if (exports[key] != out) hide(exports, key, exp);\n    if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n  }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n  var fn = (core.Object || {})[KEY] || Object[KEY];\n  var exp = {};\n  exp[KEY] = exec(fn);\n  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (typeof exec === 'function') {\n    var result = exec.call(R, S);\n    if (typeof result !== 'object') {\n      throw new TypeError('RegExp exec method returned something other than an Object or null');\n    }\n    return result;\n  }\n  if (classof(R) !== 'RegExp') {\n    throw new TypeError('RegExp#exec called on incompatible receiver');\n  }\n  return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n  return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n  if (!isObject(it)) return it;\n  var fn, val;\n  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = __webpack_require__(\"9e1e\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var S = Symbol();\n  var K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function (k) { B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var aLen = arguments.length;\n  var index = 1;\n  var getSymbols = gOPS.f;\n  var isEnum = pIE.f;\n  while (aLen > index) {\n    var S = IObject(arguments[index++]);\n    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self\n  // eslint-disable-next-line no-new-func\n  : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (e) {\n    return true;\n  }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return dP(O, P, Attributes);\n  } catch (e) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n  ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"sortablejs\");\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = defined(this);\n      var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n      return fn !== undefined\n        ? fn.call(searchValue, O, replaceValue)\n        : $replace.call(String(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n    function (regexp, replaceValue) {\n      var res = maybeCallNative($replace, regexp, this, replaceValue);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n      var functionalReplace = typeof replaceValue === 'function';\n      if (!functionalReplace) replaceValue = String(replaceValue);\n      var global = rx.global;\n      if (global) {\n        var fullUnicode = rx.unicode;\n        rx.lastIndex = 0;\n      }\n      var results = [];\n      while (true) {\n        var result = regExpExec(rx, S);\n        if (result === null) break;\n        results.push(result);\n        if (!global) break;\n        var matchStr = String(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n        var matched = String(result[0]);\n        var position = max(min(toInteger(result.index), S.length), 0);\n        var captures = [];\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = [matched].concat(captures, position, S);\n          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n          var replacement = String(replaceValue.apply(undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n      return accumulatedResult + S.slice(nextSourcePosition);\n    }\n  ];\n\n    // https://tc39.github.io/ecma262/#sec-getsubstitution\n  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n    var tailPos = position + matched.length;\n    var m = captures.length;\n    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n    if (namedCaptures !== undefined) {\n      namedCaptures = toObject(namedCaptures);\n      symbols = SUBSTITUTION_SYMBOLS;\n    }\n    return $replace.call(replacement, symbols, function (match, ch) {\n      var capture;\n      switch (ch.charAt(0)) {\n        case '$': return '$';\n        case '&': return matched;\n        case '`': return str.slice(0, position);\n        case \"'\": return str.slice(tailPos);\n        case '<':\n          capture = namedCaptures[ch.slice(1, -1)];\n          break;\n        default: // \\d\\d?\n          var n = +ch;\n          if (n === 0) return match;\n          if (n > m) {\n            var f = floor(n / 10);\n            if (f === 0) return match;\n            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n            return match;\n          }\n          capture = captures[n - 1];\n      }\n      return capture === undefined ? '' : capture;\n    });\n  }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n  CSSRuleList: true, // TODO: Not spec compliant, should be false.\n  CSSStyleDeclaration: false,\n  CSSValueList: false,\n  ClientRectList: false,\n  DOMRectList: false,\n  DOMStringList: false,\n  DOMTokenList: true,\n  DataTransferItemList: false,\n  FileList: false,\n  HTMLAllCollection: false,\n  HTMLCollection: false,\n  HTMLFormElement: false,\n  HTMLSelectElement: false,\n  MediaList: true, // TODO: Not spec compliant, should be false.\n  MimeTypeArray: false,\n  NamedNodeMap: false,\n  NodeList: true,\n  PaintRequestList: false,\n  Plugin: false,\n  PluginArray: false,\n  SVGLengthList: false,\n  SVGNumberList: false,\n  SVGPathSegList: false,\n  SVGPointList: false,\n  SVGStringList: false,\n  SVGTransformList: false,\n  SourceBufferList: false,\n  StyleSheetList: true, // TODO: Not spec compliant, should be false.\n  TextTrackCueList: false,\n  TextTrackList: false,\n  TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n  var NAME = collections[i];\n  var explicit = DOMIterables[NAME];\n  var Collection = global[NAME];\n  var proto = Collection && Collection.prototype;\n  var key;\n  if (proto) {\n    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n    Iterators[NAME] = ArrayValues;\n    if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n  }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n  target: 'RegExp',\n  proto: true,\n  forced: regexpExec !== /./.exec\n}, {\n  exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n      if (O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n  if (typeof window !== \"undefined\") {\n    return window.console;\n  }\n\n  return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n  var cache = Object.create(null);\n  return function cachedFn(str) {\n    var hit = cache[str];\n    return hit || (cache[str] = fn(str));\n  };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n  return str.replace(regex, function (_, c) {\n    return c ? c.toUpperCase() : \"\";\n  });\n});\n\nfunction removeNode(node) {\n  if (node.parentElement !== null) {\n    node.parentElement.removeChild(node);\n  }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n  var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n  fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n  return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return step(1);\n  }\n  if (kind == 'keys') return step(0, index);\n  if (kind == 'values') return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n  var O = toIObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n  if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n  return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n  return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = context(this, searchString, STARTS_WITH);\n    var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = String(searchString);\n    return $startsWith\n      ? $startsWith.call(that, search, index)\n      : that.slice(index, index + search.length) === search;\n  }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n  var currentScript = \"currentScript\",\n      scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n  // If browser needs currentScript polyfill, add get currentScript() to the document object\n  if (!(currentScript in document)) {\n    Object.defineProperty(document, currentScript, {\n      get: function(){\n\n        // IE 6-10 supports script readyState\n        // IE 10+ support stack trace\n        try { throw new Error(); }\n        catch (err) {\n\n          // Find the second match for the \"at\" string to get file src url from stack.\n          // Specifically works with the format of stack traces in IE.\n          var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n          // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n          for(i in scripts){\n            if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n              return scripts[i];\n            }\n          }\n\n          // If no match, return null\n          return null;\n        }\n      }\n    });\n  }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n  if (true) {\n    __webpack_require__(\"f6fd\")\n  }\n\n  var setPublicPath_i\n  if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n    __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n  }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n  if (value === undefined) {\n    return object;\n  }\n\n  object = object || {};\n  object[propName] = value;\n  return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n  return vnodes.map(function (elt) {\n    return elt.elm;\n  }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n  if (!slots) {\n    return [];\n  }\n\n  var elmFromNodes = slots.map(function (elt) {\n    return elt.elm;\n  });\n  var footerIndex = children.length - footerOffset;\n\n  var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n    return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n  });\n\n  return isTransition ? rawIndexes.filter(function (ind) {\n    return ind !== -1;\n  }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n  var _this = this;\n\n  this.$nextTick(function () {\n    return _this.$emit(evtName.toLowerCase(), evtData);\n  });\n}\n\nfunction delegateAndEmit(evtName) {\n  var _this2 = this;\n\n  return function (evtData) {\n    if (_this2.realList !== null) {\n      _this2[\"onDrag\" + evtName](evtData);\n    }\n\n    emit.call(_this2, evtName, evtData);\n  };\n}\n\nfunction isTransitionName(name) {\n  return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n  if (!slots || slots.length !== 1) {\n    return false;\n  }\n\n  var _slots = _slicedToArray(slots, 1),\n      componentOptions = _slots[0].componentOptions;\n\n  if (!componentOptions) {\n    return false;\n  }\n\n  return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n  return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n  var headerOffset = 0;\n  var footerOffset = 0;\n  var header = getSlot(slot, scopedSlot, \"header\");\n\n  if (header) {\n    headerOffset = header.length;\n    children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n  }\n\n  var footer = getSlot(slot, scopedSlot, \"footer\");\n\n  if (footer) {\n    footerOffset = footer.length;\n    children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n  }\n\n  return {\n    children: children,\n    headerOffset: headerOffset,\n    footerOffset: footerOffset\n  };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n  var attributes = null;\n\n  var update = function update(name, value) {\n    attributes = buildAttribute(attributes, name, value);\n  };\n\n  var attrs = Object.keys($attrs).filter(function (key) {\n    return key === \"id\" || key.startsWith(\"data-\");\n  }).reduce(function (res, key) {\n    res[key] = $attrs[key];\n    return res;\n  }, {});\n  update(\"attrs\", attrs);\n\n  if (!componentData) {\n    return attributes;\n  }\n\n  var on = componentData.on,\n      props = componentData.props,\n      componentDataAttrs = componentData.attrs;\n  update(\"on\", on);\n  update(\"props\", props);\n  Object.assign(attributes.attrs, componentDataAttrs);\n  return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n  return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n  options: Object,\n  list: {\n    type: Array,\n    required: false,\n    default: null\n  },\n  value: {\n    type: Array,\n    required: false,\n    default: null\n  },\n  noTransitionOnDrag: {\n    type: Boolean,\n    default: false\n  },\n  clone: {\n    type: Function,\n    default: function _default(original) {\n      return original;\n    }\n  },\n  element: {\n    type: String,\n    default: \"div\"\n  },\n  tag: {\n    type: String,\n    default: null\n  },\n  move: {\n    type: Function,\n    default: null\n  },\n  componentData: {\n    type: Object,\n    required: false,\n    default: null\n  }\n};\nvar draggableComponent = {\n  name: \"draggable\",\n  inheritAttrs: false,\n  props: props,\n  data: function data() {\n    return {\n      transitionMode: false,\n      noneFunctionalComponentMode: false\n    };\n  },\n  render: function render(h) {\n    var slots = this.$slots.default;\n    this.transitionMode = vuedraggable_isTransition(slots);\n\n    var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n        children = _computeChildrenAndOf.children,\n        headerOffset = _computeChildrenAndOf.headerOffset,\n        footerOffset = _computeChildrenAndOf.footerOffset;\n\n    this.headerOffset = headerOffset;\n    this.footerOffset = footerOffset;\n    var attributes = getComponentAttributes(this.$attrs, this.componentData);\n    return h(this.getTag(), attributes, children);\n  },\n  created: function created() {\n    if (this.list !== null && this.value !== null) {\n      helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n    }\n\n    if (this.element !== \"div\") {\n      helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n    }\n\n    if (this.options !== undefined) {\n      helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n    }\n  },\n  mounted: function mounted() {\n    var _this3 = this;\n\n    this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n    if (this.noneFunctionalComponentMode && this.transitionMode) {\n      throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n    }\n\n    var optionsAdded = {};\n    eventsListened.forEach(function (elt) {\n      optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n    });\n    eventsToEmit.forEach(function (elt) {\n      optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n    });\n    var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n      res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n      return res;\n    }, {});\n    var options = Object.assign({}, this.options, attributes, optionsAdded, {\n      onMove: function onMove(evt, originalEvent) {\n        return _this3.onDragMove(evt, originalEvent);\n      }\n    });\n    !(\"draggable\" in options) && (options.draggable = \">*\");\n    this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n    this.computeIndexes();\n  },\n  beforeDestroy: function beforeDestroy() {\n    if (this._sortable !== undefined) this._sortable.destroy();\n  },\n  computed: {\n    rootContainer: function rootContainer() {\n      return this.transitionMode ? this.$el.children[0] : this.$el;\n    },\n    realList: function realList() {\n      return this.list ? this.list : this.value;\n    }\n  },\n  watch: {\n    options: {\n      handler: function handler(newOptionValue) {\n        this.updateOptions(newOptionValue);\n      },\n      deep: true\n    },\n    $attrs: {\n      handler: function handler(newOptionValue) {\n        this.updateOptions(newOptionValue);\n      },\n      deep: true\n    },\n    realList: function realList() {\n      this.computeIndexes();\n    }\n  },\n  methods: {\n    getIsFunctional: function getIsFunctional() {\n      var fnOptions = this._vnode.fnOptions;\n      return fnOptions && fnOptions.functional;\n    },\n    getTag: function getTag() {\n      return this.tag || this.element;\n    },\n    updateOptions: function updateOptions(newOptionValue) {\n      for (var property in newOptionValue) {\n        var value = Object(helper[\"a\" /* camelize */])(property);\n\n        if (readonlyProperties.indexOf(value) === -1) {\n          this._sortable.option(value, newOptionValue[property]);\n        }\n      }\n    },\n    getChildrenNodes: function getChildrenNodes() {\n      if (this.noneFunctionalComponentMode) {\n        return this.$children[0].$slots.default;\n      }\n\n      var rawNodes = this.$slots.default;\n      return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n    },\n    computeIndexes: function computeIndexes() {\n      var _this4 = this;\n\n      this.$nextTick(function () {\n        _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n      });\n    },\n    getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n      var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n      if (index === -1) {\n        //Edge case during move callback: related element might be\n        //an element different from collection\n        return null;\n      }\n\n      var element = this.realList[index];\n      return {\n        index: index,\n        element: element\n      };\n    },\n    getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n      var vue = _ref.__vue__;\n\n      if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n        if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n        return vue;\n      }\n\n      return vue.$parent;\n    },\n    emitChanges: function emitChanges(evt) {\n      var _this5 = this;\n\n      this.$nextTick(function () {\n        _this5.$emit(\"change\", evt);\n      });\n    },\n    alterList: function alterList(onList) {\n      if (this.list) {\n        onList(this.list);\n        return;\n      }\n\n      var newList = _toConsumableArray(this.value);\n\n      onList(newList);\n      this.$emit(\"input\", newList);\n    },\n    spliceList: function spliceList() {\n      var _arguments = arguments;\n\n      var spliceList = function spliceList(list) {\n        return list.splice.apply(list, _toConsumableArray(_arguments));\n      };\n\n      this.alterList(spliceList);\n    },\n    updatePosition: function updatePosition(oldIndex, newIndex) {\n      var updatePosition = function updatePosition(list) {\n        return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n      };\n\n      this.alterList(updatePosition);\n    },\n    getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n      var to = _ref2.to,\n          related = _ref2.related;\n      var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n      if (!component) {\n        return {\n          component: component\n        };\n      }\n\n      var list = component.realList;\n      var context = {\n        list: list,\n        component: component\n      };\n\n      if (to !== related && list && component.getUnderlyingVm) {\n        var destination = component.getUnderlyingVm(related);\n\n        if (destination) {\n          return Object.assign(destination, context);\n        }\n      }\n\n      return context;\n    },\n    getVmIndex: function getVmIndex(domIndex) {\n      var indexes = this.visibleIndexes;\n      var numberIndexes = indexes.length;\n      return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n    },\n    getComponent: function getComponent() {\n      return this.$slots.default[0].componentInstance;\n    },\n    resetTransitionData: function resetTransitionData(index) {\n      if (!this.noTransitionOnDrag || !this.transitionMode) {\n        return;\n      }\n\n      var nodes = this.getChildrenNodes();\n      nodes[index].data = null;\n      var transitionContainer = this.getComponent();\n      transitionContainer.children = [];\n      transitionContainer.kept = undefined;\n    },\n    onDragStart: function onDragStart(evt) {\n      this.context = this.getUnderlyingVm(evt.item);\n      evt.item._underlying_vm_ = this.clone(this.context.element);\n      draggingElement = evt.item;\n    },\n    onDragAdd: function onDragAdd(evt) {\n      var element = evt.item._underlying_vm_;\n\n      if (element === undefined) {\n        return;\n      }\n\n      Object(helper[\"d\" /* removeNode */])(evt.item);\n      var newIndex = this.getVmIndex(evt.newIndex);\n      this.spliceList(newIndex, 0, element);\n      this.computeIndexes();\n      var added = {\n        element: element,\n        newIndex: newIndex\n      };\n      this.emitChanges({\n        added: added\n      });\n    },\n    onDragRemove: function onDragRemove(evt) {\n      Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n      if (evt.pullMode === \"clone\") {\n        Object(helper[\"d\" /* removeNode */])(evt.clone);\n        return;\n      }\n\n      var oldIndex = this.context.index;\n      this.spliceList(oldIndex, 1);\n      var removed = {\n        element: this.context.element,\n        oldIndex: oldIndex\n      };\n      this.resetTransitionData(oldIndex);\n      this.emitChanges({\n        removed: removed\n      });\n    },\n    onDragUpdate: function onDragUpdate(evt) {\n      Object(helper[\"d\" /* removeNode */])(evt.item);\n      Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n      var oldIndex = this.context.index;\n      var newIndex = this.getVmIndex(evt.newIndex);\n      this.updatePosition(oldIndex, newIndex);\n      var moved = {\n        element: this.context.element,\n        oldIndex: oldIndex,\n        newIndex: newIndex\n      };\n      this.emitChanges({\n        moved: moved\n      });\n    },\n    updateProperty: function updateProperty(evt, propertyName) {\n      evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n    },\n    computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n      if (!relatedContext.element) {\n        return 0;\n      }\n\n      var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n        return el.style[\"display\"] !== \"none\";\n      });\n\n      var currentDOMIndex = domChildren.indexOf(evt.related);\n      var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n      var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n      return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n    },\n    onDragMove: function onDragMove(evt, originalEvent) {\n      var onMove = this.move;\n\n      if (!onMove || !this.realList) {\n        return true;\n      }\n\n      var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n      var draggedContext = this.context;\n      var futureIndex = this.computeFutureIndex(relatedContext, evt);\n      Object.assign(draggedContext, {\n        futureIndex: futureIndex\n      });\n      var sendEvt = Object.assign({}, evt, {\n        relatedContext: relatedContext,\n        draggedContext: draggedContext\n      });\n      return onMove(sendEvt, originalEvent);\n    },\n    onDragEnd: function onDragEnd() {\n      this.computeIndexes();\n      draggingElement = null;\n    }\n  }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n  window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n//# sourceMappingURL=vuedraggable.common.js.map","import Vue from 'vue'\nimport { VueConstructor } from 'vue/types/vue'\nimport { consoleWarn } from '../../util/console'\n\nfunction generateWarning (child: string, parent: string) {\n  return () => consoleWarn(`The ${child} component must be used inside a ${parent}`)\n}\n\nexport type Registrable<T extends string, C extends VueConstructor | null = null> = VueConstructor<Vue & {\n  [K in T]: C extends VueConstructor ? InstanceType<C> : {\n    register (...props: any[]): void\n    unregister (self: any): void\n  }\n}>\n\nexport function inject<\n  T extends string, C extends VueConstructor | null = null\n> (namespace: T, child?: string, parent?: string): Registrable<T, C> {\n  const defaultImpl = child && parent ? {\n    register: generateWarning(child, parent),\n    unregister: generateWarning(child, parent),\n  } : null\n\n  return Vue.extend({\n    name: 'registrable-inject',\n\n    inject: {\n      [namespace]: {\n        default: defaultImpl,\n      },\n    },\n  })\n}\n\nexport function provide (namespace: string, self = false) {\n  return Vue.extend({\n    name: 'registrable-provide',\n\n    methods: self ? {} : {\n      register: null,\n      unregister: null,\n    },\n    provide (): object {\n      return {\n        [namespace]: self ? this : {\n          register: this.register,\n          unregister: this.unregister,\n        },\n      }\n    },\n  })\n}\n","import VMenu from './VMenu'\n\nexport { VMenu }\nexport default VMenu\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n  getPrototypeOf: function getPrototypeOf(it) {\n    return nativeGetPrototypeOf(toObject(it));\n  }\n});\n\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'v-list-item-icon',\n\n  functional: true,\n\n  render (h, { data, children }): VNode {\n    data.staticClass = (`v-list-item__icon ${data.staticClass || ''}`).trim()\n\n    return h('div', data, children)\n  },\n})\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n  return O;\n};\n","export default function _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}","export default function _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n  return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","// Mixins\nimport Colorable from '../colorable'\nimport Themeable from '../themeable'\nimport { inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { deepEqual } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { PropType } from 'vue'\nimport { InputMessage, InputValidationRules } from 'vuetify/types'\n\nconst baseMixins = mixins(\n  Colorable,\n  RegistrableInject<'form', any>('form'),\n  Themeable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'validatable',\n\n  props: {\n    disabled: Boolean,\n    error: Boolean,\n    errorCount: {\n      type: [Number, String],\n      default: 1,\n    },\n    errorMessages: {\n      type: [String, Array] as PropType<InputMessage>,\n      default: () => [],\n    },\n    messages: {\n      type: [String, Array] as PropType<InputMessage>,\n      default: () => [],\n    },\n    readonly: Boolean,\n    rules: {\n      type: Array as PropType<InputValidationRules>,\n      default: () => [],\n    },\n    success: Boolean,\n    successMessages: {\n      type: [String, Array] as PropType<InputMessage>,\n      default: () => [],\n    },\n    validateOnBlur: Boolean,\n    value: { required: false },\n  },\n\n  data () {\n    return {\n      errorBucket: [] as string[],\n      hasColor: false,\n      hasFocused: false,\n      hasInput: false,\n      isFocused: false,\n      isResetting: false,\n      lazyValue: this.value,\n      valid: false,\n    }\n  },\n\n  computed: {\n    computedColor (): string | undefined {\n      if (this.isDisabled) return undefined\n      if (this.color) return this.color\n      // It's assumed that if the input is on a\n      // dark background, the user will want to\n      // have a white color. If the entire app\n      // is setup to be dark, then they will\n      // like want to use their primary color\n      if (this.isDark && !this.appIsDark) return 'white'\n      else return 'primary'\n    },\n    hasError (): boolean {\n      return (\n        this.internalErrorMessages.length > 0 ||\n        this.errorBucket.length > 0 ||\n        this.error\n      )\n    },\n    // TODO: Add logic that allows the user to enable based\n    // upon a good validation\n    hasSuccess (): boolean {\n      return (\n        this.internalSuccessMessages.length > 0 ||\n        this.success\n      )\n    },\n    externalError (): boolean {\n      return this.internalErrorMessages.length > 0 || this.error\n    },\n    hasMessages (): boolean {\n      return this.validationTarget.length > 0\n    },\n    hasState (): boolean {\n      if (this.isDisabled) return false\n\n      return (\n        this.hasSuccess ||\n        (this.shouldValidate && this.hasError)\n      )\n    },\n    internalErrorMessages (): InputValidationRules {\n      return this.genInternalMessages(this.errorMessages)\n    },\n    internalMessages (): InputValidationRules {\n      return this.genInternalMessages(this.messages)\n    },\n    internalSuccessMessages (): InputValidationRules {\n      return this.genInternalMessages(this.successMessages)\n    },\n    internalValue: {\n      get (): unknown {\n        return this.lazyValue\n      },\n      set (val: any) {\n        this.lazyValue = val\n\n        this.$emit('input', val)\n      },\n    },\n    isDisabled (): boolean {\n      return this.disabled || (\n        !!this.form &&\n        this.form.disabled\n      )\n    },\n    isInteractive (): boolean {\n      return !this.isDisabled && !this.isReadonly\n    },\n    isReadonly (): boolean {\n      return this.readonly || (\n        !!this.form &&\n        this.form.readonly\n      )\n    },\n    shouldValidate (): boolean {\n      if (this.externalError) return true\n      if (this.isResetting) return false\n\n      return this.validateOnBlur\n        ? this.hasFocused && !this.isFocused\n        : (this.hasInput || this.hasFocused)\n    },\n    validations (): InputValidationRules {\n      return this.validationTarget.slice(0, Number(this.errorCount))\n    },\n    validationState (): string | undefined {\n      if (this.isDisabled) return undefined\n      if (this.hasError && this.shouldValidate) return 'error'\n      if (this.hasSuccess) return 'success'\n      if (this.hasColor) return this.computedColor\n      return undefined\n    },\n    validationTarget (): InputValidationRules {\n      if (this.internalErrorMessages.length > 0) {\n        return this.internalErrorMessages\n      } else if (this.successMessages.length > 0) {\n        return this.internalSuccessMessages\n      } else if (this.messages.length > 0) {\n        return this.internalMessages\n      } else if (this.shouldValidate) {\n        return this.errorBucket\n      } else return []\n    },\n  },\n\n  watch: {\n    rules: {\n      handler (newVal, oldVal) {\n        if (deepEqual(newVal, oldVal)) return\n        this.validate()\n      },\n      deep: true,\n    },\n    internalValue () {\n      // If it's the first time we're setting input,\n      // mark it with hasInput\n      this.hasInput = true\n      this.validateOnBlur || this.$nextTick(this.validate)\n    },\n    isFocused (val) {\n      // Should not check validation\n      // if disabled\n      if (\n        !val &&\n        !this.isDisabled\n      ) {\n        this.hasFocused = true\n        this.validateOnBlur && this.$nextTick(this.validate)\n      }\n    },\n    isResetting () {\n      setTimeout(() => {\n        this.hasInput = false\n        this.hasFocused = false\n        this.isResetting = false\n        this.validate()\n      }, 0)\n    },\n    hasError (val) {\n      if (this.shouldValidate) {\n        this.$emit('update:error', val)\n      }\n    },\n    value (val) {\n      this.lazyValue = val\n    },\n  },\n\n  beforeMount () {\n    this.validate()\n  },\n\n  created () {\n    this.form && this.form.register(this)\n  },\n\n  beforeDestroy () {\n    this.form && this.form.unregister(this)\n  },\n\n  methods: {\n    genInternalMessages (messages: InputMessage): InputValidationRules {\n      if (!messages) return []\n      else if (Array.isArray(messages)) return messages\n      else return [messages]\n    },\n    /** @public */\n    reset () {\n      this.isResetting = true\n      this.internalValue = Array.isArray(this.internalValue)\n        ? []\n        : undefined\n    },\n    /** @public */\n    resetValidation () {\n      this.isResetting = true\n    },\n    /** @public */\n    validate (force = false, value?: any): boolean {\n      const errorBucket = []\n      value = value || this.internalValue\n\n      if (force) this.hasInput = this.hasFocused = true\n\n      for (let index = 0; index < this.rules.length; index++) {\n        const rule = this.rules[index]\n        const valid = typeof rule === 'function' ? rule(value) : rule\n\n        if (valid === false || typeof valid === 'string') {\n          errorBucket.push(valid || '')\n        } else if (typeof valid !== 'boolean') {\n          consoleError(`Rules should return a string or boolean, received '${typeof valid}' instead`, this)\n        }\n      }\n\n      this.errorBucket = errorBucket\n      this.valid = errorBucket.length === 0\n\n      return this.valid\n    },\n  },\n})\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n  repeat: repeat\n});\n","import { factory as PositionableFactory } from '../positionable'\nimport { TargetProp } from 'vuetify/types/services/application'\n\n// Util\nimport mixins from '../../util/mixins'\n\nexport default function applicationable (value: TargetProp, events: string[] = []) {\n  /* @vue/component */\n  return mixins(PositionableFactory(['absolute', 'fixed'])).extend({\n    name: 'applicationable',\n\n    props: {\n      app: Boolean,\n    },\n\n    computed: {\n      applicationProperty (): TargetProp {\n        return value\n      },\n    },\n\n    watch: {\n      // If previous value was app\n      // reset the provided prop\n      app (x: boolean, prev: boolean) {\n        prev\n          ? this.removeApplication(true)\n          : this.callUpdate()\n      },\n      applicationProperty (newVal, oldVal) {\n        this.$vuetify.application.unregister(this._uid, oldVal)\n      },\n    },\n\n    activated () {\n      this.callUpdate()\n    },\n\n    created () {\n      for (let i = 0, length = events.length; i < length; i++) {\n        this.$watch(events[i], this.callUpdate)\n      }\n      this.callUpdate()\n    },\n\n    mounted () {\n      this.callUpdate()\n    },\n\n    deactivated () {\n      this.removeApplication()\n    },\n\n    destroyed () {\n      this.removeApplication()\n    },\n\n    methods: {\n      callUpdate () {\n        if (!this.app) return\n\n        this.$vuetify.application.register(\n          this._uid,\n          this.applicationProperty,\n          this.updateApplication()\n        )\n      },\n      removeApplication (force = false) {\n        if (!force && !this.app) return\n\n        this.$vuetify.application.unregister(\n          this._uid,\n          this.applicationProperty\n        )\n      },\n      updateApplication: () => 0,\n    },\n  })\n}\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it) && it !== null) {\n    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n  } return it;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: String(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\nvar abs = Math.abs;\nvar pow = Math.pow;\n\n// `Math.cbrt` method\n// https://tc39.github.io/ecma262/#sec-math.cbrt\n$({ target: 'Math', stat: true }, {\n  cbrt: function cbrt(x) {\n    return sign(x = +x) * pow(abs(x), 1 / 3);\n  }\n});\n","module.exports = {};\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\naddToUnscopables('flat');\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n  if (typeof value != 'number' && classof(value) != 'Number') {\n    throw TypeError('Incorrect invocation');\n  }\n  return +value;\n};\n","import { VNodeDirective } from 'vue/types/vnode'\nimport { DirectiveOptions } from 'vue'\n\ninterface ScrollVNodeDirective extends Omit<VNodeDirective, 'modifiers'> {\n  value: EventListener | {\n    handler: EventListener\n    options?: boolean | AddEventListenerOptions\n  } | EventListenerObject & { options?: boolean | AddEventListenerOptions }\n  modifiers?: {\n    self?: boolean\n  }\n}\n\nfunction inserted (el: HTMLElement, binding: ScrollVNodeDirective) {\n  const { self = false } = binding.modifiers || {}\n  const value = binding.value\n  const options = (typeof value === 'object' && value.options) || { passive: true }\n  const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n  const target = self\n    ? el\n    : binding.arg\n      ? document.querySelector(binding.arg)\n      : window\n\n  if (!target) return\n\n  target.addEventListener('scroll', handler, options)\n\n  el._onScroll = {\n    handler,\n    options,\n    // Don't reference self\n    target: self ? undefined : target,\n  }\n}\n\nfunction unbind (el: HTMLElement) {\n  if (!el._onScroll) return\n\n  const { handler, options, target = el } = el._onScroll\n\n  target.removeEventListener('scroll', handler, options)\n  delete el._onScroll\n}\n\nexport const Scroll = {\n  inserted,\n  unbind,\n} as DirectiveOptions\n\nexport default Scroll\n","// Directives\nimport { Scroll } from '../../directives'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\n/**\n * Scrollable\n *\n * Used for monitoring scrolling and\n * invoking functions based upon\n * scrolling thresholds being\n * met.\n */\n/* @vue/component */\nexport default Vue.extend({\n  name: 'scrollable',\n\n  directives: { Scroll },\n\n  props: {\n    scrollTarget: String,\n    scrollThreshold: [String, Number],\n  },\n\n  data: () => ({\n    currentScroll: 0,\n    currentThreshold: 0,\n    isActive: false,\n    isScrollingUp: false,\n    previousScroll: 0,\n    savedScroll: 0,\n    target: null as Element | null,\n  }),\n\n  computed: {\n    /**\n     * A computed property that returns\n     * whether scrolling features are\n     * enabled or disabled\n     */\n    canScroll (): boolean {\n      return typeof window !== 'undefined'\n    },\n    /**\n     * The threshold that must be met before\n     * thresholdMet function is invoked\n     */\n    computedScrollThreshold (): number {\n      return this.scrollThreshold\n        ? Number(this.scrollThreshold)\n        : 300\n    },\n  },\n\n  watch: {\n    isScrollingUp () {\n      this.savedScroll = this.savedScroll || this.currentScroll\n    },\n    isActive () {\n      this.savedScroll = 0\n    },\n  },\n\n  mounted () {\n    if (this.scrollTarget) {\n      this.target = document.querySelector(this.scrollTarget)\n\n      if (!this.target) {\n        consoleWarn(`Unable to locate element with identifier ${this.scrollTarget}`, this)\n      }\n    }\n  },\n\n  methods: {\n    onScroll () {\n      if (!this.canScroll) return\n\n      this.previousScroll = this.currentScroll\n      this.currentScroll = this.target\n        ? this.target.scrollTop\n        : window.pageYOffset\n\n      this.isScrollingUp = this.currentScroll < this.previousScroll\n      this.currentThreshold = Math.abs(this.currentScroll - this.computedScrollThreshold)\n\n      this.$nextTick(() => {\n        if (\n          Math.abs(this.currentScroll - this.savedScroll) >\n          this.computedScrollThreshold\n        ) this.thresholdMet()\n      })\n    },\n    /**\n     * The method invoked when\n     * scrolling in any direction\n     * has exceeded the threshold\n     */\n    thresholdMet () { /* noop */ },\n  },\n})\n","// Styles\nimport './VAppBar.sass'\n\n// Extensions\nimport VToolbar from '../VToolbar/VToolbar'\n\n// Directives\nimport Scroll from '../../directives/scroll'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Scrollable from '../../mixins/scrollable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Toggleable from '../../mixins/toggleable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n  VToolbar,\n  Scrollable,\n  SSRBootable,\n  Toggleable,\n  Applicationable('top', [\n    'clippedLeft',\n    'clippedRight',\n    'computedHeight',\n    'invertedScroll',\n    'isExtended',\n    'isProminent',\n    'value',\n  ])\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'v-app-bar',\n\n  directives: { Scroll },\n\n  props: {\n    clippedLeft: Boolean,\n    clippedRight: Boolean,\n    collapseOnScroll: Boolean,\n    elevateOnScroll: Boolean,\n    fadeImgOnScroll: Boolean,\n    hideOnScroll: Boolean,\n    invertedScroll: Boolean,\n    scrollOffScreen: Boolean,\n    shrinkOnScroll: Boolean,\n    value: {\n      type: Boolean,\n      default: true,\n    },\n  },\n\n  data () {\n    return {\n      isActive: this.value,\n    }\n  },\n\n  computed: {\n    applicationProperty (): string {\n      return !this.bottom ? 'top' : 'bottom'\n    },\n    canScroll (): boolean {\n      return (\n        Scrollable.options.computed.canScroll.call(this) &&\n        (\n          this.invertedScroll ||\n          this.elevateOnScroll ||\n          this.hideOnScroll ||\n          this.collapseOnScroll ||\n          this.isBooted ||\n          // If falsey, user has provided an\n          // explicit value which should\n          // overwrite anything we do\n          !this.value\n        )\n      )\n    },\n    classes (): object {\n      return {\n        ...VToolbar.options.computed.classes.call(this),\n        'v-toolbar--collapse': this.collapse || this.collapseOnScroll,\n        'v-app-bar': true,\n        'v-app-bar--clipped': this.clippedLeft || this.clippedRight,\n        'v-app-bar--fade-img-on-scroll': this.fadeImgOnScroll,\n        'v-app-bar--elevate-on-scroll': this.elevateOnScroll,\n        'v-app-bar--fixed': !this.absolute && (this.app || this.fixed),\n        'v-app-bar--hide-shadow': this.hideShadow,\n        'v-app-bar--is-scrolled': this.currentScroll > 0,\n        'v-app-bar--shrink-on-scroll': this.shrinkOnScroll,\n      }\n    },\n    computedContentHeight (): number {\n      if (!this.shrinkOnScroll) return VToolbar.options.computed.computedContentHeight.call(this)\n\n      const height = this.computedOriginalHeight\n\n      const min = this.dense ? 48 : 56\n      const max = height\n      const difference = max - min\n      const iteration = difference / this.computedScrollThreshold\n      const offset = this.currentScroll * iteration\n\n      return Math.max(min, max - offset)\n    },\n    computedFontSize (): number | undefined {\n      if (!this.isProminent) return undefined\n\n      const max = this.dense ? 96 : 128\n      const difference = max - this.computedContentHeight\n      const increment = 0.00347\n\n      // 1.5rem to a minimum of 1.25rem\n      return Number((1.50 - difference * increment).toFixed(2))\n    },\n    computedLeft (): number {\n      if (!this.app || this.clippedLeft) return 0\n\n      return this.$vuetify.application.left\n    },\n    computedMarginTop (): number {\n      if (!this.app) return 0\n\n      return this.$vuetify.application.bar\n    },\n    computedOpacity (): number | undefined {\n      if (!this.fadeImgOnScroll) return undefined\n\n      const opacity = Math.max(\n        (this.computedScrollThreshold - this.currentScroll) / this.computedScrollThreshold,\n        0\n      )\n\n      return Number(parseFloat(opacity).toFixed(2))\n    },\n    computedOriginalHeight (): number {\n      let height = VToolbar.options.computed.computedContentHeight.call(this)\n      if (this.isExtended) height += parseInt(this.extensionHeight)\n      return height\n    },\n    computedRight (): number {\n      if (!this.app || this.clippedRight) return 0\n\n      return this.$vuetify.application.right\n    },\n    computedScrollThreshold (): number {\n      if (this.scrollThreshold) return Number(this.scrollThreshold)\n\n      return this.computedOriginalHeight - (this.dense ? 48 : 56)\n    },\n    computedTransform (): number {\n      if (\n        !this.canScroll ||\n        (this.elevateOnScroll && this.currentScroll === 0 && this.isActive)\n      ) return 0\n\n      if (this.isActive) return 0\n\n      const scrollOffScreen = this.scrollOffScreen\n        ? this.computedHeight\n        : this.computedContentHeight\n\n      return this.bottom ? scrollOffScreen : -scrollOffScreen\n    },\n    hideShadow (): boolean {\n      if (this.elevateOnScroll && this.isExtended) {\n        return this.currentScroll < this.computedScrollThreshold\n      }\n\n      if (this.elevateOnScroll) {\n        return this.currentScroll === 0 ||\n          this.computedTransform < 0\n      }\n\n      return (\n        !this.isExtended ||\n        this.scrollOffScreen\n      ) && this.computedTransform !== 0\n    },\n    isCollapsed (): boolean {\n      if (!this.collapseOnScroll) {\n        return VToolbar.options.computed.isCollapsed.call(this)\n      }\n\n      return this.currentScroll > 0\n    },\n    isProminent (): boolean {\n      return (\n        VToolbar.options.computed.isProminent.call(this) ||\n        this.shrinkOnScroll\n      )\n    },\n    styles (): object {\n      return {\n        ...VToolbar.options.computed.styles.call(this),\n        fontSize: convertToUnit(this.computedFontSize, 'rem'),\n        marginTop: convertToUnit(this.computedMarginTop),\n        transform: `translateY(${convertToUnit(this.computedTransform)})`,\n        left: convertToUnit(this.computedLeft),\n        right: convertToUnit(this.computedRight),\n      }\n    },\n  },\n\n  watch: {\n    canScroll: 'onScroll',\n    computedTransform () {\n      // Normally we do not want the v-app-bar\n      // to update the application top value\n      // to avoid screen jump. However, in\n      // this situation, we must so that\n      // the clipped drawer can update\n      // its top value when scrolled\n      if (\n        !this.canScroll ||\n        (!this.clippedLeft && !this.clippedRight)\n      ) return\n\n      this.callUpdate()\n    },\n    invertedScroll (val: boolean) {\n      this.isActive = !val || this.currentScroll !== 0\n    },\n  },\n\n  created () {\n    if (this.invertedScroll) this.isActive = false\n  },\n\n  methods: {\n    genBackground () {\n      const render = VToolbar.options.methods.genBackground.call(this)\n\n      render.data = this._b(render.data || {}, render.tag!, {\n        style: { opacity: this.computedOpacity },\n      })\n\n      return render\n    },\n    updateApplication (): number {\n      return this.invertedScroll\n        ? 0\n        : this.computedHeight + this.computedTransform\n    },\n    thresholdMet () {\n      if (this.invertedScroll) {\n        this.isActive = this.currentScroll > this.computedScrollThreshold\n        return\n      }\n\n      if (this.hideOnScroll) {\n        this.isActive = this.isScrollingUp ||\n          this.currentScroll < this.computedScrollThreshold\n      }\n\n      if (this.currentThreshold < this.computedScrollThreshold) return\n\n      this.savedScroll = this.currentScroll\n    },\n  },\n\n  render (h): VNode {\n    const render = VToolbar.options.render.call(this, h)\n\n    render.data = render.data || {}\n\n    if (this.canScroll) {\n      render.data.directives = render.data.directives || []\n      render.data.directives.push({\n        arg: this.scrollTarget,\n        name: 'scroll',\n        value: this.onScroll,\n      })\n    }\n\n    return render\n  },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n  forEach: forEach\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n  var console = global.console;\n  if (console && console.error) {\n    arguments.length === 1 ? console.error(a) : console.error(a, b);\n  }\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('some');\n\n// `Array.prototype.some` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n  some: function some(callbackfn /* , thisArg */) {\n    return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = requireObjectCoercible(this);\n      var matcher = regexp == undefined ? undefined : regexp[MATCH];\n      return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n    function (regexp) {\n      var res = maybeCallNative(nativeMatch, regexp, this);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n\n      if (!rx.global) return regExpExec(rx, S);\n\n      var fullUnicode = rx.unicode;\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = String(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n","// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default Themeable.extend({\n  name: 'v-theme-provider',\n\n  props: { root: Boolean },\n\n  computed: {\n    isDark (): boolean {\n      return this.root\n        ? this.rootIsDark\n        : Themeable.options.computed.isDark.call(this)\n    },\n  },\n\n  render (): VNode {\n    /* istanbul ignore next */\n    return (\n      this.$slots.default! &&\n      this.$slots.default!.find(node => !node.isComment && node.text !== ' ')!\n    )\n  },\n})\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  // Chrome 38 Symbol has incorrect toString conversion\n  // eslint-disable-next-line no-undef\n  return !String(Symbol());\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n  trim: function trim() {\n    return $trim(this);\n  }\n});\n","// Mixins\nimport Delayable from '../delayable'\nimport Toggleable from '../toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype Listeners = Dictionary<(e: MouseEvent & KeyboardEvent & FocusEvent) => void>\n\nconst baseMixins = mixins(\n  Delayable,\n  Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'activatable',\n\n  props: {\n    activator: {\n      default: null as unknown as PropType<string | HTMLElement | VNode | Element | null>,\n      validator: (val: string | object) => {\n        return ['string', 'object'].includes(typeof val)\n      },\n    },\n    disabled: Boolean,\n    internalActivator: Boolean,\n    openOnHover: Boolean,\n    openOnFocus: Boolean,\n  },\n\n  data: () => ({\n    // Do not use this directly, call getActivator() instead\n    activatorElement: null as HTMLElement | null,\n    activatorNode: [] as VNode[],\n    events: ['click', 'mouseenter', 'mouseleave', 'focus'],\n    listeners: {} as Listeners,\n  }),\n\n  watch: {\n    activator: 'resetActivator',\n    openOnFocus: 'resetActivator',\n    openOnHover: 'resetActivator',\n  },\n\n  mounted () {\n    const slotType = getSlotType(this, 'activator', true)\n\n    if (slotType && ['v-slot', 'normal'].includes(slotType)) {\n      consoleError(`The activator slot must be bound, try '<template v-slot:activator=\"{ on }\"><v-btn v-on=\"on\">'`, this)\n    }\n\n    this.addActivatorEvents()\n  },\n\n  beforeDestroy () {\n    this.removeActivatorEvents()\n  },\n\n  methods: {\n    addActivatorEvents () {\n      if (\n        !this.activator ||\n        this.disabled ||\n        !this.getActivator()\n      ) return\n\n      this.listeners = this.genActivatorListeners()\n      const keys = Object.keys(this.listeners)\n\n      for (const key of keys) {\n        this.getActivator()!.addEventListener(key, this.listeners[key] as any)\n      }\n    },\n    genActivator () {\n      const node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n        on: this.genActivatorListeners(),\n        attrs: this.genActivatorAttributes(),\n      })) || []\n\n      this.activatorNode = node\n\n      return node\n    },\n    genActivatorAttributes () {\n      return {\n        role: 'button',\n        'aria-haspopup': true,\n        'aria-expanded': String(this.isActive),\n      }\n    },\n    genActivatorListeners () {\n      if (this.disabled) return {}\n\n      const listeners: Listeners = {}\n\n      if (this.openOnHover) {\n        listeners.mouseenter = (e: MouseEvent) => {\n          this.getActivator(e)\n          this.runDelay('open')\n        }\n        listeners.mouseleave = (e: MouseEvent) => {\n          this.getActivator(e)\n          this.runDelay('close')\n        }\n      } else {\n        listeners.click = (e: MouseEvent) => {\n          const activator = this.getActivator(e)\n          if (activator) activator.focus()\n\n          e.stopPropagation()\n\n          this.isActive = !this.isActive\n        }\n      }\n\n      if (this.openOnFocus) {\n        listeners.focus = (e: FocusEvent) => {\n          this.getActivator(e)\n\n          e.stopPropagation()\n\n          this.isActive = !this.isActive\n        }\n      }\n\n      return listeners\n    },\n    getActivator (e?: Event): HTMLElement | null {\n      // If we've already fetched the activator, re-use\n      if (this.activatorElement) return this.activatorElement\n\n      let activator = null\n\n      if (this.activator) {\n        const target = this.internalActivator ? this.$el : document\n\n        if (typeof this.activator === 'string') {\n          // Selector\n          activator = target.querySelector(this.activator)\n        } else if ((this.activator as any).$el) {\n          // Component (ref)\n          activator = (this.activator as any).$el\n        } else {\n          // HTMLElement | Element\n          activator = this.activator\n        }\n      } else if (this.activatorNode.length === 1 || (this.activatorNode.length && !e)) {\n        // Use the contents of the activator slot\n        // There's either only one element in it or we\n        // don't have a click event to use as a last resort\n        const vm = this.activatorNode[0].componentInstance\n        if (\n          vm &&\n          vm.$options.mixins && //                         Activatable is indirectly used via Menuable\n          vm.$options.mixins.some((m: any) => m.options && ['activatable', 'menuable'].includes(m.options.name))\n        ) {\n          // Activator is actually another activatible component, use its activator (#8846)\n          activator = (vm as any).getActivator()\n        } else {\n          activator = this.activatorNode[0].elm as HTMLElement\n        }\n      } else if (e) {\n        // Activated by a click or focus event\n        activator = (e.currentTarget || e.target) as HTMLElement\n      }\n\n      this.activatorElement = activator\n\n      return this.activatorElement\n    },\n    getContentSlot () {\n      return getSlot(this, 'default', this.getValueProxy(), true)\n    },\n    getValueProxy (): object {\n      const self = this\n      return {\n        get value () {\n          return self.isActive\n        },\n        set value (isActive: boolean) {\n          self.isActive = isActive\n        },\n      }\n    },\n    removeActivatorEvents () {\n      if (\n        !this.activator ||\n        !this.activatorElement\n      ) return\n\n      const keys = Object.keys(this.listeners)\n\n      for (const key of keys) {\n        (this.activatorElement as any).removeEventListener(key, this.listeners[key])\n      }\n\n      this.listeners = {}\n    },\n    resetActivator () {\n      this.removeActivatorEvents()\n      this.activatorElement = null\n      this.getActivator()\n      this.addActivatorEvents()\n    },\n  },\n})\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar bind = require('../internals/function-bind');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\n\n// `Reflect.construct` method\n// https://tc39.github.io/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n  function F() { /* empty */ }\n  return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n  nativeConstruct(function () { /* empty */ });\n});\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n  construct: function construct(Target, args /* , newTarget */) {\n    aFunction(Target);\n    anObject(args);\n    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n    if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n    if (Target == newTarget) {\n      // w/o altered newTarget, optimization for 0-4 arguments\n      switch (args.length) {\n        case 0: return new Target();\n        case 1: return new Target(args[0]);\n        case 2: return new Target(args[0], args[1]);\n        case 3: return new Target(args[0], args[1], args[2]);\n        case 4: return new Target(args[0], args[1], args[2], args[3]);\n      }\n      // w/o altered newTarget, lot of arguments case\n      var $args = [null];\n      $args.push.apply($args, args);\n      return new (bind.apply(Target, $args))();\n    }\n    // with altered newTarget, not support built-in constructors\n    var proto = newTarget.prototype;\n    var instance = create(isObject(proto) ? proto : Object.prototype);\n    var result = Function.apply.call(Target, instance, args);\n    return isObject(result) ? result : instance;\n  }\n});\n","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\n\ntype ErrorBag = Record<number, boolean>\ntype VInputInstance = InstanceType<typeof VInput>\ntype Watchers = {\n  _uid: number\n  valid: () => void\n  shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n  BindsAttrs,\n  RegistrableProvide('form')\n  /* @vue/component */\n).extend({\n  name: 'v-form',\n\n  provide (): object {\n    return { form: this }\n  },\n\n  inheritAttrs: false,\n\n  props: {\n    disabled: Boolean,\n    lazyValidation: Boolean,\n    readonly: Boolean,\n    value: Boolean,\n  },\n\n  data: () => ({\n    inputs: [] as VInputInstance[],\n    watchers: [] as Watchers[],\n    errorBag: {} as ErrorBag,\n  }),\n\n  watch: {\n    errorBag: {\n      handler (val) {\n        const errors = Object.values(val).includes(true)\n\n        this.$emit('input', !errors)\n      },\n      deep: true,\n      immediate: true,\n    },\n  },\n\n  methods: {\n    watchInput (input: any): Watchers {\n      const watcher = (input: any): (() => void) => {\n        return input.$watch('hasError', (val: boolean) => {\n          this.$set(this.errorBag, input._uid, val)\n        }, { immediate: true })\n      }\n\n      const watchers: Watchers = {\n        _uid: input._uid,\n        valid: () => {},\n        shouldValidate: () => {},\n      }\n\n      if (this.lazyValidation) {\n        // Only start watching inputs if we need to\n        watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n          if (!val) return\n\n          // Only watch if we're not already doing it\n          if (this.errorBag.hasOwnProperty(input._uid)) return\n\n          watchers.valid = watcher(input)\n        })\n      } else {\n        watchers.valid = watcher(input)\n      }\n\n      return watchers\n    },\n    /** @public */\n    validate (): boolean {\n      return this.inputs.filter(input => !input.validate(true)).length === 0\n    },\n    /** @public */\n    reset (): void {\n      this.inputs.forEach(input => input.reset())\n      this.resetErrorBag()\n    },\n    resetErrorBag () {\n      if (this.lazyValidation) {\n        // Account for timeout in validatable\n        setTimeout(() => {\n          this.errorBag = {}\n        }, 0)\n      }\n    },\n    /** @public */\n    resetValidation () {\n      this.inputs.forEach(input => input.resetValidation())\n      this.resetErrorBag()\n    },\n    register (input: VInputInstance) {\n      this.inputs.push(input)\n      this.watchers.push(this.watchInput(input))\n    },\n    unregister (input: VInputInstance) {\n      const found = this.inputs.find(i => i._uid === input._uid)\n\n      if (!found) return\n\n      const unwatch = this.watchers.find(i => i._uid === found._uid)\n      if (unwatch) {\n        unwatch.valid()\n        unwatch.shouldValidate()\n      }\n\n      this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n      this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n      this.$delete(this.errorBag, found._uid)\n    },\n  },\n\n  render (h): VNode {\n    return h('form', {\n      staticClass: 'v-form',\n      attrs: {\n        novalidate: true,\n        ...this.attrs$,\n      },\n      on: {\n        submit: (e: Event) => this.$emit('submit', e),\n      },\n    }, this.$slots.default)\n  },\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n  name: 'transitionable',\n\n  props: {\n    mode: String,\n    origin: String,\n    transition: String,\n  },\n})\n","// Styles\nimport './VBadge.sass'\n\n// Components\nimport VIcon from '../VIcon/VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport Transitionable from '../../mixins/transitionable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport {\n  convertToUnit,\n  getSlot,\n} from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n  Colorable,\n  PositionableFactory(['left', 'bottom']),\n  Themeable,\n  Toggleable,\n  Transitionable,\n/* @vue/component */\n).extend({\n  name: 'v-badge',\n\n  props: {\n    avatar: Boolean,\n    bordered: Boolean,\n    color: {\n      type: String,\n      default: 'primary',\n    },\n    content: { required: false },\n    dot: Boolean,\n    label: {\n      type: String,\n      default: '$vuetify.badge',\n    },\n    icon: String,\n    inline: Boolean,\n    offsetX: [Number, String],\n    offsetY: [Number, String],\n    overlap: Boolean,\n    tile: Boolean,\n    transition: {\n      type: String,\n      default: 'scale-rotate-transition',\n    },\n    value: { default: true },\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-badge--avatar': this.avatar,\n        'v-badge--bordered': this.bordered,\n        'v-badge--bottom': this.bottom,\n        'v-badge--dot': this.dot,\n        'v-badge--icon': this.icon != null,\n        'v-badge--inline': this.inline,\n        'v-badge--left': this.left,\n        'v-badge--overlap': this.overlap,\n        'v-badge--tile': this.tile,\n        ...this.themeClasses,\n      }\n    },\n    computedBottom (): string {\n      return this.bottom ? 'auto' : this.computedYOffset\n    },\n    computedLeft (): string {\n      if (this.isRtl) {\n        return this.left ? this.computedXOffset : 'auto'\n      }\n\n      return this.left ? 'auto' : this.computedXOffset\n    },\n    computedRight (): string {\n      if (this.isRtl) {\n        return this.left ? 'auto' : this.computedXOffset\n      }\n\n      return !this.left ? 'auto' : this.computedXOffset\n    },\n    computedTop (): string {\n      return this.bottom ? this.computedYOffset : 'auto'\n    },\n    computedXOffset (): string {\n      return this.calcPosition(this.offsetX)\n    },\n    computedYOffset (): string {\n      return this.calcPosition(this.offsetY)\n    },\n    isRtl (): boolean {\n      return this.$vuetify.rtl\n    },\n    // Default fallback if offsetX\n    // or offsetY are undefined.\n    offset (): number {\n      if (this.overlap) return this.dot ? 8 : 12\n      return this.dot ? 2 : 4\n    },\n    styles (): object {\n      if (this.inline) return {}\n\n      return {\n        bottom: this.computedBottom,\n        left: this.computedLeft,\n        right: this.computedRight,\n        top: this.computedTop,\n      }\n    },\n  },\n\n  methods: {\n    calcPosition (offset: string | number): string {\n      return `calc(100% - ${convertToUnit(offset || this.offset)})`\n    },\n    genBadge () {\n      const lang = this.$vuetify.lang\n      const label = this.$attrs['aria-label'] || lang.t(this.label)\n\n      const data = this.setBackgroundColor(this.color, {\n        staticClass: 'v-badge__badge',\n        style: this.styles,\n        attrs: {\n          'aria-atomic': this.$attrs['aria-atomic'] || 'true',\n          'aria-label': label,\n          'aria-live': this.$attrs['aria-live'] || 'polite',\n          title: this.$attrs.title,\n          role: this.$attrs.role || 'status',\n        },\n        directives: [{\n          name: 'show',\n          value: this.isActive,\n        }],\n      })\n\n      const badge = this.$createElement('span', data, [this.genBadgeContent()])\n\n      if (!this.transition) return badge\n\n      return this.$createElement('transition', {\n        props: {\n          name: this.transition,\n          origin: this.origin,\n          mode: this.mode,\n        },\n      }, [badge])\n    },\n    genBadgeContent () {\n      // Dot prop shows no content\n      if (this.dot) return undefined\n\n      const slot = getSlot(this, 'badge')\n\n      if (slot) return slot\n      if (this.content) return String(this.content)\n      if (this.icon) return this.$createElement(VIcon, this.icon)\n\n      return undefined\n    },\n    genBadgeWrapper () {\n      return this.$createElement('span', {\n        staticClass: 'v-badge__wrapper',\n      }, [this.genBadge()])\n    },\n  },\n\n  render (h): VNode {\n    const badge = [this.genBadgeWrapper()]\n    const children = [getSlot(this)]\n    const {\n      'aria-atomic': _x,\n      'aria-label': _y,\n      'aria-live': _z,\n      role,\n      title,\n      ...attrs\n    } = this.$attrs\n\n    if (this.inline && this.left) children.unshift(badge)\n    else children.push(badge)\n\n    return h('span', {\n      staticClass: 'v-badge',\n      attrs,\n      class: this.classes,\n    }, children)\n  },\n})\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n  filter: function filter(callbackfn /* , thisArg */) {\n    return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var C = typeof this == 'function' ? this : Array;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = iteratorMethod.call(O);\n    next = iterator.next;\n    result = new C();\n    for (;!(step = next.call(iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      createProperty(result, index, value);\n    }\n  } else {\n    length = toLength(O.length);\n    result = new C(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  result.length = index;\n  return result;\n};\n","// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\nimport { ExtractVue } from '../../util/mixins'\nimport { VueConstructor } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n/* eslint-disable-next-line no-use-before-define */\nexport type Groupable<T extends string, C extends VueConstructor | null = null> = VueConstructor<ExtractVue<Registrable<T, C>> & {\n  activeClass: string\n  isActive: boolean\n  disabled: boolean\n  groupClasses: object\n  toggle (): void\n}>\n\nexport function factory<T extends string, C extends VueConstructor | null = null> (\n  namespace: T,\n  child?: string,\n  parent?: string\n): Groupable<T, C> {\n  // TODO: ts 3.4 broke directly returning this\n  const R = RegistrableInject<T, C>(namespace, child, parent).extend({\n    name: 'groupable',\n\n    props: {\n      activeClass: {\n        type: String,\n        default (): string | undefined {\n          if (!this[namespace]) return undefined\n\n          return this[namespace].activeClass\n        },\n      } as any as PropValidator<string>,\n      disabled: Boolean,\n    },\n\n    data () {\n      return {\n        isActive: false,\n      }\n    },\n\n    computed: {\n      groupClasses (): object {\n        if (!this.activeClass) return {}\n\n        return {\n          [this.activeClass]: this.isActive,\n        }\n      },\n    },\n\n    created () {\n      this[namespace] && (this[namespace] as any).register(this)\n    },\n\n    beforeDestroy () {\n      this[namespace] && (this[namespace] as any).unregister(this)\n    },\n\n    methods: {\n      toggle () {\n        this.$emit('change')\n      },\n    },\n  })\n\n  return R\n}\n\n/* eslint-disable-next-line no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n  test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n  test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  sort: function sort(comparefn) {\n    return comparefn === undefined\n      ? nativeSort.call(toObject(this))\n      : nativeSort.call(toObject(this), aFunction(comparefn));\n  }\n});\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n  return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n  var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n  var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = requireObjectCoercible(this);\n      var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n      return replacer !== undefined\n        ? replacer.call(searchValue, O, replaceValue)\n        : nativeReplace.call(String(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n    function (regexp, replaceValue) {\n      if (\n        (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n        (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n      ) {\n        var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n        if (res.done) return res.value;\n      }\n\n      var rx = anObject(regexp);\n      var S = String(this);\n\n      var functionalReplace = typeof replaceValue === 'function';\n      if (!functionalReplace) replaceValue = String(replaceValue);\n\n      var global = rx.global;\n      if (global) {\n        var fullUnicode = rx.unicode;\n        rx.lastIndex = 0;\n      }\n      var results = [];\n      while (true) {\n        var result = regExpExec(rx, S);\n        if (result === null) break;\n\n        results.push(result);\n        if (!global) break;\n\n        var matchStr = String(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n\n        var matched = String(result[0]);\n        var position = max(min(toInteger(result.index), S.length), 0);\n        var captures = [];\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = [matched].concat(captures, position, S);\n          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n          var replacement = String(replaceValue.apply(undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n      return accumulatedResult + S.slice(nextSourcePosition);\n    }\n  ];\n\n  // https://tc39.github.io/ecma262/#sec-getsubstitution\n  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n    var tailPos = position + matched.length;\n    var m = captures.length;\n    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n    if (namedCaptures !== undefined) {\n      namedCaptures = toObject(namedCaptures);\n      symbols = SUBSTITUTION_SYMBOLS;\n    }\n    return nativeReplace.call(replacement, symbols, function (match, ch) {\n      var capture;\n      switch (ch.charAt(0)) {\n        case '$': return '$';\n        case '&': return matched;\n        case '`': return str.slice(0, position);\n        case \"'\": return str.slice(tailPos);\n        case '<':\n          capture = namedCaptures[ch.slice(1, -1)];\n          break;\n        default: // \\d\\d?\n          var n = +ch;\n          if (n === 0) return match;\n          if (n > m) {\n            var f = floor(n / 10);\n            if (f === 0) return match;\n            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n            return match;\n          }\n          capture = captures[n - 1];\n      }\n      return capture === undefined ? '' : capture;\n    });\n  }\n});\n","export default function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective } from 'vue'\n\ntype VuetifyRippleEvent = MouseEvent | TouchEvent | KeyboardEvent\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n  el.style['transform'] = value\n  el.style['webkitTransform'] = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n  el.style['opacity'] = value.toString()\n}\n\nexport interface RippleOptions {\n  class?: string\n  center?: boolean\n  circle?: boolean\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n  return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n  return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n  e: VuetifyRippleEvent,\n  el: HTMLElement,\n  value: RippleOptions = {}\n) => {\n  let localX = 0\n  let localY = 0\n\n  if (!isKeyboardEvent(e)) {\n    const offset = el.getBoundingClientRect()\n    const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n    localX = target.clientX - offset.left\n    localY = target.clientY - offset.top\n  }\n\n  let radius = 0\n  let scale = 0.3\n  if (el._ripple && el._ripple.circle) {\n    scale = 0.15\n    radius = el.clientWidth / 2\n    radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n  } else {\n    radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n  }\n\n  const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n  const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n  const x = value.center ? centerX : `${localX - radius}px`\n  const y = value.center ? centerY : `${localY - radius}px`\n\n  return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n  /* eslint-disable max-statements */\n  show (\n    e: VuetifyRippleEvent,\n    el: HTMLElement,\n    value: RippleOptions = {}\n  ) {\n    if (!el._ripple || !el._ripple.enabled) {\n      return\n    }\n\n    const container = document.createElement('span')\n    const animation = document.createElement('span')\n\n    container.appendChild(animation)\n    container.className = 'v-ripple__container'\n\n    if (value.class) {\n      container.className += ` ${value.class}`\n    }\n\n    const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n    const size = `${radius * 2}px`\n    animation.className = 'v-ripple__animation'\n    animation.style.width = size\n    animation.style.height = size\n\n    el.appendChild(container)\n\n    const computed = window.getComputedStyle(el)\n    if (computed && computed.position === 'static') {\n      el.style.position = 'relative'\n      el.dataset.previousPosition = 'static'\n    }\n\n    animation.classList.add('v-ripple__animation--enter')\n    animation.classList.add('v-ripple__animation--visible')\n    transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n    opacity(animation, 0)\n    animation.dataset.activated = String(performance.now())\n\n    setTimeout(() => {\n      animation.classList.remove('v-ripple__animation--enter')\n      animation.classList.add('v-ripple__animation--in')\n      transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n      opacity(animation, 0.25)\n    }, 0)\n  },\n\n  hide (el: HTMLElement | null) {\n    if (!el || !el._ripple || !el._ripple.enabled) return\n\n    const ripples = el.getElementsByClassName('v-ripple__animation')\n\n    if (ripples.length === 0) return\n    const animation = ripples[ripples.length - 1]\n\n    if (animation.dataset.isHiding) return\n    else animation.dataset.isHiding = 'true'\n\n    const diff = performance.now() - Number(animation.dataset.activated)\n    const delay = Math.max(250 - diff, 0)\n\n    setTimeout(() => {\n      animation.classList.remove('v-ripple__animation--in')\n      animation.classList.add('v-ripple__animation--out')\n      opacity(animation, 0)\n\n      setTimeout(() => {\n        const ripples = el.getElementsByClassName('v-ripple__animation')\n        if (ripples.length === 1 && el.dataset.previousPosition) {\n          el.style.position = el.dataset.previousPosition\n          delete el.dataset.previousPosition\n        }\n\n        animation.parentNode && el.removeChild(animation.parentNode)\n      }, 300)\n    }, delay)\n  },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n  return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n  const value: RippleOptions = {}\n  const element = e.currentTarget as HTMLElement\n  if (!element || !element._ripple || element._ripple.touched) return\n  if (isTouchEvent(e)) {\n    element._ripple.touched = true\n    element._ripple.isTouch = true\n  } else {\n    // It's possible for touch events to fire\n    // as mouse events on Android/iOS, this\n    // will skip the event call if it has\n    // already been registered as touch\n    if (element._ripple.isTouch) return\n  }\n  value.center = element._ripple.centered || isKeyboardEvent(e)\n  if (element._ripple.class) {\n    value.class = element._ripple.class\n  }\n\n  if (isTouchEvent(e)) {\n    // already queued that shows or hides the ripple\n    if (element._ripple.showTimerCommit) return\n\n    element._ripple.showTimerCommit = () => {\n      ripples.show(e, element, value)\n    }\n    element._ripple.showTimer = window.setTimeout(() => {\n      if (element && element._ripple && element._ripple.showTimerCommit) {\n        element._ripple.showTimerCommit()\n        element._ripple.showTimerCommit = null\n      }\n    }, DELAY_RIPPLE)\n  } else {\n    ripples.show(e, element, value)\n  }\n}\n\nfunction rippleHide (e: Event) {\n  const element = e.currentTarget as HTMLElement | null\n  if (!element || !element._ripple) return\n\n  window.clearTimeout(element._ripple.showTimer)\n\n  // The touch interaction occurs before the show timer is triggered.\n  // We still want to show ripple effect.\n  if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n    element._ripple.showTimerCommit()\n    element._ripple.showTimerCommit = null\n\n    // re-queue ripple hiding\n    element._ripple.showTimer = setTimeout(() => {\n      rippleHide(e)\n    })\n    return\n  }\n\n  window.setTimeout(() => {\n    if (element._ripple) {\n      element._ripple.touched = false\n    }\n  })\n  ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n  const element = e.currentTarget as HTMLElement | undefined\n\n  if (!element || !element._ripple) return\n\n  if (element._ripple.showTimerCommit) {\n    element._ripple.showTimerCommit = null\n  }\n\n  window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n  if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n    keyboardRipple = true\n    rippleShow(e)\n  }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n  keyboardRipple = false\n  rippleHide(e)\n}\n\nfunction updateRipple (el: HTMLElement, binding: VNodeDirective, wasEnabled: boolean) {\n  const enabled = isRippleEnabled(binding.value)\n  if (!enabled) {\n    ripples.hide(el)\n  }\n  el._ripple = el._ripple || {}\n  el._ripple.enabled = enabled\n  const value = binding.value || {}\n  if (value.center) {\n    el._ripple.centered = true\n  }\n  if (value.class) {\n    el._ripple.class = binding.value.class\n  }\n  if (value.circle) {\n    el._ripple.circle = value.circle\n  }\n  if (enabled && !wasEnabled) {\n    el.addEventListener('touchstart', rippleShow, { passive: true })\n    el.addEventListener('touchend', rippleHide, { passive: true })\n    el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n    el.addEventListener('touchcancel', rippleHide)\n\n    el.addEventListener('mousedown', rippleShow)\n    el.addEventListener('mouseup', rippleHide)\n    el.addEventListener('mouseleave', rippleHide)\n\n    el.addEventListener('keydown', keyboardRippleShow)\n    el.addEventListener('keyup', keyboardRippleHide)\n\n    // Anchor tags can be dragged, causes other hides to fail - #1537\n    el.addEventListener('dragstart', rippleHide, { passive: true })\n  } else if (!enabled && wasEnabled) {\n    removeListeners(el)\n  }\n}\n\nfunction removeListeners (el: HTMLElement) {\n  el.removeEventListener('mousedown', rippleShow)\n  el.removeEventListener('touchstart', rippleShow)\n  el.removeEventListener('touchend', rippleHide)\n  el.removeEventListener('touchmove', rippleCancelShow)\n  el.removeEventListener('touchcancel', rippleHide)\n  el.removeEventListener('mouseup', rippleHide)\n  el.removeEventListener('mouseleave', rippleHide)\n  el.removeEventListener('keydown', keyboardRippleShow)\n  el.removeEventListener('keyup', keyboardRippleHide)\n  el.removeEventListener('dragstart', rippleHide)\n}\n\nfunction directive (el: HTMLElement, binding: VNodeDirective, node: VNode) {\n  updateRipple(el, binding, false)\n\n  if (process.env.NODE_ENV === 'development') {\n    // warn if an inline element is used, waiting for el to be in the DOM first\n    node.context && node.context.$nextTick(() => {\n      const computed = window.getComputedStyle(el)\n      if (computed && computed.display === 'inline') {\n        const context = (node as any).fnOptions ? [(node as any).fnOptions, node.context] : [node.componentInstance]\n        consoleWarn('v-ripple can only be used on block-level elements', ...context)\n      }\n    })\n  }\n}\n\nfunction unbind (el: HTMLElement) {\n  delete el._ripple\n  removeListeners(el)\n}\n\nfunction update (el: HTMLElement, binding: VNodeDirective) {\n  if (binding.value === binding.oldValue) {\n    return\n  }\n\n  const wasEnabled = isRippleEnabled(binding.oldValue)\n  updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple = {\n  bind: directive,\n  unbind,\n  update,\n}\n\nexport default Ripple\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.6.5',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// Styles\nimport './VListGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VList from './VList'\nimport VListItem from './VListItem'\nimport VListItemIcon from './VListItemIcon'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport Toggleable from '../../mixins/toggleable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Transitions\nimport { VExpandTransition } from '../transitions'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { Route } from 'vue-router'\n\nconst baseMixins = mixins(\n  BindsAttrs,\n  Bootable,\n  Colorable,\n  RegistrableInject('list'),\n  Toggleable\n)\n\ntype VListInstance = InstanceType<typeof VList>\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  list: VListInstance\n  $refs: {\n    group: HTMLElement\n  }\n  $route: Route\n}\n\nexport default baseMixins.extend<options>().extend({\n  name: 'v-list-group',\n\n  directives: { ripple },\n\n  props: {\n    activeClass: {\n      type: String,\n      default: '',\n    },\n    appendIcon: {\n      type: String,\n      default: '$expand',\n    },\n    color: {\n      type: String,\n      default: 'primary',\n    },\n    disabled: Boolean,\n    group: String,\n    noAction: Boolean,\n    prependIcon: String,\n    ripple: {\n      type: [Boolean, Object],\n      default: true,\n    },\n    subGroup: Boolean,\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-list-group--active': this.isActive,\n        'v-list-group--disabled': this.disabled,\n        'v-list-group--no-action': this.noAction,\n        'v-list-group--sub-group': this.subGroup,\n      }\n    },\n  },\n\n  watch: {\n    isActive (val: boolean) {\n      /* istanbul ignore else */\n      if (!this.subGroup && val) {\n        this.list && this.list.listClick(this._uid)\n      }\n    },\n    $route: 'onRouteChange',\n  },\n\n  created () {\n    this.list && this.list.register(this)\n\n    if (this.group &&\n      this.$route &&\n      this.value == null\n    ) {\n      this.isActive = this.matchRoute(this.$route.path)\n    }\n  },\n\n  beforeDestroy () {\n    this.list && this.list.unregister(this)\n  },\n\n  methods: {\n    click (e: Event) {\n      if (this.disabled) return\n\n      this.isBooted = true\n\n      this.$emit('click', e)\n      this.$nextTick(() => (this.isActive = !this.isActive))\n    },\n    genIcon (icon: string | false): VNode {\n      return this.$createElement(VIcon, icon)\n    },\n    genAppendIcon (): VNode | null {\n      const icon = !this.subGroup ? this.appendIcon : false\n\n      if (!icon && !this.$slots.appendIcon) return null\n\n      return this.$createElement(VListItemIcon, {\n        staticClass: 'v-list-group__header__append-icon',\n      }, [\n        this.$slots.appendIcon || this.genIcon(icon),\n      ])\n    },\n    genHeader (): VNode {\n      return this.$createElement(VListItem, {\n        staticClass: 'v-list-group__header',\n        attrs: {\n          'aria-expanded': String(this.isActive),\n          role: 'button',\n        },\n        class: {\n          [this.activeClass]: this.isActive,\n        },\n        props: {\n          inputValue: this.isActive,\n        },\n        directives: [{\n          name: 'ripple',\n          value: this.ripple,\n        }],\n        on: {\n          ...this.listeners$,\n          click: this.click,\n        },\n      }, [\n        this.genPrependIcon(),\n        this.$slots.activator,\n        this.genAppendIcon(),\n      ])\n    },\n    genItems (): VNode[] {\n      return this.showLazyContent(() => [\n        this.$createElement('div', {\n          staticClass: 'v-list-group__items',\n          directives: [{\n            name: 'show',\n            value: this.isActive,\n          }],\n        }, getSlot(this)),\n      ])\n    },\n    genPrependIcon (): VNode | null {\n      const icon = this.subGroup && this.prependIcon == null\n        ? '$subgroup'\n        : this.prependIcon\n\n      if (!icon && !this.$slots.prependIcon) return null\n\n      return this.$createElement(VListItemIcon, {\n        staticClass: 'v-list-group__header__prepend-icon',\n      }, [\n        this.$slots.prependIcon || this.genIcon(icon),\n      ])\n    },\n    onRouteChange (to: Route) {\n      /* istanbul ignore if */\n      if (!this.group) return\n\n      const isActive = this.matchRoute(to.path)\n\n      /* istanbul ignore else */\n      if (isActive && this.isActive !== isActive) {\n        this.list && this.list.listClick(this._uid)\n      }\n\n      this.isActive = isActive\n    },\n    toggle (uid: number) {\n      const isActive = this._uid === uid\n\n      if (isActive) this.isBooted = true\n      this.$nextTick(() => (this.isActive = isActive))\n    },\n    matchRoute (to: string) {\n      return to.match(this.group) !== null\n    },\n  },\n\n  render (h): VNode {\n    return h('div', this.setTextColor(this.isActive && this.color, {\n      staticClass: 'v-list-group',\n      class: this.classes,\n    }), [\n      this.genHeader(),\n      h(VExpandTransition, this.genItems()),\n    ])\n  },\n})\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n  return function ($this) {\n    var string = String(requireObjectCoercible($this));\n    if (TYPE & 1) string = string.replace(ltrim, '');\n    if (TYPE & 2) string = string.replace(rtrim, '');\n    return string;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.{ trimLeft, trimStart }` methods\n  // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n  start: createMethod(1),\n  // `String.prototype.{ trimRight, trimEnd }` methods\n  // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n  end: createMethod(2),\n  // `String.prototype.trim` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n  trim: createMethod(3)\n};\n","/* eslint-disable max-len, import/export, no-use-before-define */\nimport Vue, { VueConstructor } from 'vue'\n\nexport default function mixins<T extends VueConstructor[]> (...args: T): ExtractVue<T> extends infer V ? V extends Vue ? VueConstructor<V> : never : never\nexport default function mixins<T extends Vue> (...args: VueConstructor[]): VueConstructor<T>\nexport default function mixins (...args: VueConstructor[]): VueConstructor {\n  return Vue.extend({ mixins: args })\n}\n\n/**\n * Returns the instance type from a VueConstructor\n * Useful for adding types when using mixins().extend()\n */\nexport type ExtractVue<T extends VueConstructor | VueConstructor[]> = T extends (infer U)[]\n  ? UnionToIntersection<\n    U extends VueConstructor<infer V> ? V : never\n  >\n  : T extends VueConstructor<infer V> ? V : never\n\ntype UnionToIntersection<U> =\n  (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n  if (isRegExp(it)) {\n    throw TypeError(\"The method doesn't accept regular expressions\");\n  } return it;\n};\n","// Components\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn/VBtn'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'v-app-bar-nav-icon',\n\n  functional: true,\n\n  render (h, { slots, listeners, props, data }) {\n    const d = Object.assign(data, {\n      staticClass: (`v-app-bar__nav-icon ${data.staticClass || ''}`).trim(),\n      props: {\n        ...props,\n        icon: true,\n      },\n      on: listeners,\n    })\n\n    const defaultSlot = slots().default\n\n    return h(VBtn, d, defaultSlot || [h(VIcon, '$menu')])\n  },\n})\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","import './VAvatar.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\n\n// Utilities\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n  Colorable,\n  Measurable,\n  Roundable,\n  /* @vue/component */\n).extend({\n  name: 'v-avatar',\n\n  props: {\n    left: Boolean,\n    right: Boolean,\n    size: {\n      type: [Number, String],\n      default: 48,\n    },\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-avatar--left': this.left,\n        'v-avatar--right': this.right,\n        ...this.roundedClasses,\n      }\n    },\n    styles (): object {\n      return {\n        height: convertToUnit(this.size),\n        minWidth: convertToUnit(this.size),\n        width: convertToUnit(this.size),\n        ...this.measurableStyles,\n      }\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-avatar',\n      class: this.classes,\n      style: this.styles,\n      on: this.$listeners,\n    }\n\n    return h('div', this.setBackgroundColor(this.color, data), this.$slots.default)\n  },\n})\n","import VAvatar from './VAvatar'\n\nexport { VAvatar }\nexport default VAvatar\n","// Components\nimport VAvatar from '../VAvatar'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default VAvatar.extend({\n  name: 'v-list-item-avatar',\n\n  props: {\n    horizontal: Boolean,\n    size: {\n      type: [Number, String],\n      default: 40,\n    },\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-list-item__avatar--horizontal': this.horizontal,\n        ...VAvatar.options.computed.classes.call(this),\n        'v-avatar--tile': this.tile || this.horizontal,\n      }\n    },\n  },\n\n  render (h): VNode {\n    const render = VAvatar.options.render.call(this, h)\n\n    render.data = render.data || {}\n    render.data.staticClass += ' v-list-item__avatar'\n\n    return render\n  },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\n\nimport VList from './VList'\nimport VListGroup from './VListGroup'\nimport VListItem from './VListItem'\nimport VListItemGroup from './VListItemGroup'\nimport VListItemAction from './VListItemAction'\nimport VListItemAvatar from './VListItemAvatar'\nimport VListItemIcon from './VListItemIcon'\n\nexport const VListItemActionText = createSimpleFunctional('v-list-item__action-text', 'span')\nexport const VListItemContent = createSimpleFunctional('v-list-item__content', 'div')\nexport const VListItemTitle = createSimpleFunctional('v-list-item__title', 'div')\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item__subtitle', 'div')\n\nexport {\n  VList,\n  VListGroup,\n  VListItem,\n  VListItemAction,\n  VListItemAvatar,\n  VListItemIcon,\n  VListItemGroup,\n}\n\nexport default {\n  $_vuetify_subcomponents: {\n    VList,\n    VListGroup,\n    VListItem,\n    VListItemAction,\n    VListItemActionText,\n    VListItemAvatar,\n    VListItemContent,\n    VListItemGroup,\n    VListItemIcon,\n    VListItemSubtitle,\n    VListItemTitle,\n  },\n}\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n  var output = [];\n  var counter = 0;\n  var length = string.length;\n  while (counter < length) {\n    var value = string.charCodeAt(counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // It's a high surrogate, and there is a next character.\n      var extra = string.charCodeAt(counter++);\n      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // It's an unmatched surrogate; only append this code unit, in case the\n        // next code unit is the high surrogate of a surrogate pair.\n        output.push(value);\n        counter--;\n      }\n    } else {\n      output.push(value);\n    }\n  }\n  return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n    delta = floor(delta / baseMinusTMin);\n  }\n  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line  max-statements\nvar encode = function (input) {\n  var output = [];\n\n  // Convert the input in UCS-2 to an array of Unicode code points.\n  input = ucs2decode(input);\n\n  // Cache the length.\n  var inputLength = input.length;\n\n  // Initialize the state.\n  var n = initialN;\n  var delta = 0;\n  var bias = initialBias;\n  var i, currentValue;\n\n  // Handle the basic code points.\n  for (i = 0; i < input.length; i++) {\n    currentValue = input[i];\n    if (currentValue < 0x80) {\n      output.push(stringFromCharCode(currentValue));\n    }\n  }\n\n  var basicLength = output.length; // number of basic code points.\n  var handledCPCount = basicLength; // number of code points that have been handled;\n\n  // Finish the basic string with a delimiter unless it's empty.\n  if (basicLength) {\n    output.push(delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n    // All non-basic code points < n have been handled already. Find the next larger one:\n    var m = maxInt;\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n    var handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      throw RangeError(OVERFLOW_ERROR);\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue < n && ++delta > maxInt) {\n        throw RangeError(OVERFLOW_ERROR);\n      }\n      if (currentValue == n) {\n        // Represent delta as a generalized variable-length integer.\n        var q = delta;\n        for (var k = base; /* no condition */; k += base) {\n          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n          if (q < t) break;\n          var qMinusT = q - t;\n          var baseMinusT = base - t;\n          output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n          q = floor(qMinusT / baseMinusT);\n        }\n\n        output.push(stringFromCharCode(digitToBasic(q)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n        delta = 0;\n        ++handledCPCount;\n      }\n    }\n\n    ++delta;\n    ++n;\n  }\n  return output.join('');\n};\n\nmodule.exports = function (input) {\n  var encoded = [];\n  var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n  var i, label;\n  for (i = 0; i < labels.length; i++) {\n    label = labels[i];\n    encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n  }\n  return encoded.join('.');\n};\n","// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nexport type GroupableInstance = InstanceType<typeof Groupable> & {\n  id?: string\n  to?: any\n  value?: any\n }\n\nexport const BaseItemGroup = mixins(\n  Proxyable,\n  Themeable\n).extend({\n  name: 'base-item-group',\n\n  props: {\n    activeClass: {\n      type: String,\n      default: 'v-item--active',\n    },\n    mandatory: Boolean,\n    max: {\n      type: [Number, String],\n      default: null,\n    },\n    multiple: Boolean,\n  },\n\n  data () {\n    return {\n      // As long as a value is defined, show it\n      // Otherwise, check if multiple\n      // to determine which default to provide\n      internalLazyValue: this.value !== undefined\n        ? this.value\n        : this.multiple ? [] : undefined,\n      items: [] as GroupableInstance[],\n    }\n  },\n\n  computed: {\n    classes (): Record<string, boolean> {\n      return {\n        'v-item-group': true,\n        ...this.themeClasses,\n      }\n    },\n    selectedIndex (): number {\n      return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n    },\n    selectedItem (): GroupableInstance | undefined {\n      if (this.multiple) return undefined\n\n      return this.selectedItems[0]\n    },\n    selectedItems (): GroupableInstance[] {\n      return this.items.filter((item, index) => {\n        return this.toggleMethod(this.getValue(item, index))\n      })\n    },\n    selectedValues (): any[] {\n      if (this.internalValue == null) return []\n\n      return Array.isArray(this.internalValue)\n        ? this.internalValue\n        : [this.internalValue]\n    },\n    toggleMethod (): (v: any) => boolean {\n      if (!this.multiple) {\n        return (v: any) => this.internalValue === v\n      }\n\n      const internalValue = this.internalValue\n      if (Array.isArray(internalValue)) {\n        return (v: any) => internalValue.includes(v)\n      }\n\n      return () => false\n    },\n  },\n\n  watch: {\n    internalValue: 'updateItemsState',\n    items: 'updateItemsState',\n  },\n\n  created () {\n    if (this.multiple && !Array.isArray(this.internalValue)) {\n      consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n    }\n  },\n\n  methods: {\n\n    genData (): object {\n      return {\n        class: this.classes,\n      }\n    },\n    getValue (item: GroupableInstance, i: number): unknown {\n      return item.value == null || item.value === ''\n        ? i\n        : item.value\n    },\n    onClick (item: GroupableInstance) {\n      this.updateInternalValue(\n        this.getValue(item, this.items.indexOf(item))\n      )\n    },\n    register (item: GroupableInstance) {\n      const index = this.items.push(item) - 1\n\n      item.$on('change', () => this.onClick(item))\n\n      // If no value provided and mandatory,\n      // assign first registered item\n      if (this.mandatory && !this.selectedValues.length) {\n        this.updateMandatory()\n      }\n\n      this.updateItem(item, index)\n    },\n    unregister (item: GroupableInstance) {\n      if (this._isDestroyed) return\n\n      const index = this.items.indexOf(item)\n      const value = this.getValue(item, index)\n\n      this.items.splice(index, 1)\n\n      const valueIndex = this.selectedValues.indexOf(value)\n\n      // Items is not selected, do nothing\n      if (valueIndex < 0) return\n\n      // If not mandatory, use regular update process\n      if (!this.mandatory) {\n        return this.updateInternalValue(value)\n      }\n\n      // Remove the value\n      if (this.multiple && Array.isArray(this.internalValue)) {\n        this.internalValue = this.internalValue.filter(v => v !== value)\n      } else {\n        this.internalValue = undefined\n      }\n\n      // If mandatory and we have no selection\n      // add the last item as value\n      /* istanbul ignore else */\n      if (!this.selectedItems.length) {\n        this.updateMandatory(true)\n      }\n    },\n    updateItem (item: GroupableInstance, index: number) {\n      const value = this.getValue(item, index)\n\n      item.isActive = this.toggleMethod(value)\n    },\n    // https://github.com/vuetifyjs/vuetify/issues/5352\n    updateItemsState () {\n      this.$nextTick(() => {\n        if (this.mandatory &&\n          !this.selectedItems.length\n        ) {\n          return this.updateMandatory()\n        }\n\n        // TODO: Make this smarter so it\n        // doesn't have to iterate every\n        // child in an update\n        this.items.forEach(this.updateItem)\n      })\n    },\n    updateInternalValue (value: any) {\n      this.multiple\n        ? this.updateMultiple(value)\n        : this.updateSingle(value)\n    },\n    updateMandatory (last?: boolean) {\n      if (!this.items.length) return\n\n      const items = this.items.slice()\n\n      if (last) items.reverse()\n\n      const item = items.find(item => !item.disabled)\n\n      // If no tabs are available\n      // aborts mandatory value\n      if (!item) return\n\n      const index = this.items.indexOf(item)\n\n      this.updateInternalValue(\n        this.getValue(item, index)\n      )\n    },\n    updateMultiple (value: any) {\n      const defaultValue = Array.isArray(this.internalValue)\n        ? this.internalValue\n        : []\n      const internalValue = defaultValue.slice()\n      const index = internalValue.findIndex(val => val === value)\n\n      if (\n        this.mandatory &&\n        // Item already exists\n        index > -1 &&\n        // value would be reduced below min\n        internalValue.length - 1 < 1\n      ) return\n\n      if (\n        // Max is set\n        this.max != null &&\n        // Item doesn't exist\n        index < 0 &&\n        // value would be increased above max\n        internalValue.length + 1 > this.max\n      ) return\n\n      index > -1\n        ? internalValue.splice(index, 1)\n        : internalValue.push(value)\n\n      this.internalValue = internalValue\n    },\n    updateSingle (value: any) {\n      const isSame = value === this.internalValue\n\n      if (this.mandatory && isSame) return\n\n      this.internalValue = isSame ? undefined : value\n    },\n  },\n\n  render (h): VNode {\n    return h('div', this.genData(), this.$slots.default)\n  },\n})\n\nexport default BaseItemGroup.extend({\n  name: 'v-item-group',\n\n  provide (): object {\n    return {\n      itemGroup: this,\n    }\n  },\n})\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n  // should have correct order of operations (Edge bug)\n  if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n    enumerable: true,\n    get: function () {\n      defineProperty(this, 'b', {\n        value: 3,\n        enumerable: false\n      });\n    }\n  }), { b: 2 })).b !== 1) return true;\n  // should work with symbols and should have deterministic property order (V8 bug)\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var symbol = Symbol();\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : nativeAssign;\n","import './VGrid.sass'\n\nimport Vue, { VNode, PropOptions } from 'vue'\nimport mergeData from '../../util/mergeData'\nimport { upperFirst } from '../../util/helpers'\n\n// no xs\nconst breakpoints = ['sm', 'md', 'lg', 'xl']\n\nconst breakpointProps = (() => {\n  return breakpoints.reduce((props, val) => {\n    props[val] = {\n      type: [Boolean, String, Number],\n      default: false,\n    }\n    return props\n  }, {} as Dictionary<PropOptions>)\n})()\n\nconst offsetProps = (() => {\n  return breakpoints.reduce((props, val) => {\n    props['offset' + upperFirst(val)] = {\n      type: [String, Number],\n      default: null,\n    }\n    return props\n  }, {} as Dictionary<PropOptions>)\n})()\n\nconst orderProps = (() => {\n  return breakpoints.reduce((props, val) => {\n    props['order' + upperFirst(val)] = {\n      type: [String, Number],\n      default: null,\n    }\n    return props\n  }, {} as Dictionary<PropOptions>)\n})()\n\nconst propMap = {\n  col: Object.keys(breakpointProps),\n  offset: Object.keys(offsetProps),\n  order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n  let className = type\n  if (val == null || val === false) {\n    return undefined\n  }\n  if (prop) {\n    const breakpoint = prop.replace(type, '')\n    className += `-${breakpoint}`\n  }\n  // Handling the boolean style prop when accepting [Boolean, String, Number]\n  // means Vue will not convert <v-col sm></v-col> to sm: true for us.\n  // Since the default is false, an empty string indicates the prop's presence.\n  if (type === 'col' && (val === '' || val === true)) {\n    // .col-md\n    return className.toLowerCase()\n  }\n  // .order-md-6\n  className += `-${val}`\n  return className.toLowerCase()\n}\n\nconst cache = new Map<string, any[]>()\n\nexport default Vue.extend({\n  name: 'v-col',\n  functional: true,\n  props: {\n    cols: {\n      type: [Boolean, String, Number],\n      default: false,\n    },\n    ...breakpointProps,\n    offset: {\n      type: [String, Number],\n      default: null,\n    },\n    ...offsetProps,\n    order: {\n      type: [String, Number],\n      default: null,\n    },\n    ...orderProps,\n    alignSelf: {\n      type: String,\n      default: null,\n      validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n    },\n    tag: {\n      type: String,\n      default: 'div',\n    },\n  },\n  render (h, { props, data, children, parent }): VNode {\n    // Super-fast memoization based on props, 5x faster than JSON.stringify\n    let cacheKey = ''\n    for (const prop in props) {\n      cacheKey += String((props as any)[prop])\n    }\n    let classList = cache.get(cacheKey)\n\n    if (!classList) {\n      classList = []\n      // Loop through `col`, `offset`, `order` breakpoint props\n      let type: keyof typeof propMap\n      for (type in propMap) {\n        propMap[type].forEach(prop => {\n          const value: string | number | boolean = (props as any)[prop]\n          const className = breakpointClass(type, prop, value)\n          if (className) classList!.push(className)\n        })\n      }\n\n      const hasColClasses = classList.some(className => className.startsWith('col-'))\n\n      classList.push({\n        // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n        col: !hasColClasses || !props.cols,\n        [`col-${props.cols}`]: props.cols,\n        [`offset-${props.offset}`]: props.offset,\n        [`order-${props.order}`]: props.order,\n        [`align-self-${props.alignSelf}`]: props.alignSelf,\n      })\n\n      cache.set(cacheKey, classList)\n    }\n\n    return h(props.tag, mergeData(data, { class: classList }), children)\n  },\n})\n","// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function installComponents (component, components) {\n  var options = typeof component.exports === 'function'\n    ? component.exports.extendOptions\n    : component.options\n\n  if (typeof component.exports === 'function') {\n    options.components = component.exports.options.components\n  }\n\n  options.components = options.components || {}\n\n  for (var i in components) {\n    options.components[i] = options.components[i] || components[i]\n  }\n}\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = String(requireObjectCoercible($this));\n    var position = toInteger(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = S.charCodeAt(position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING ? S.charAt(position) : first\n        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n  getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, CONSTRUCTOR_NAME);\n      setInternalState(that, {\n        type: CONSTRUCTOR_NAME,\n        index: create(null),\n        first: undefined,\n        last: undefined,\n        size: 0\n      });\n      if (!DESCRIPTORS) that.size = 0;\n      if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n    });\n\n    var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n    var define = function (that, key, value) {\n      var state = getInternalState(that);\n      var entry = getEntry(that, key);\n      var previous, index;\n      // change existing entry\n      if (entry) {\n        entry.value = value;\n      // create new entry\n      } else {\n        state.last = entry = {\n          index: index = fastKey(key, true),\n          key: key,\n          value: value,\n          previous: previous = state.last,\n          next: undefined,\n          removed: false\n        };\n        if (!state.first) state.first = entry;\n        if (previous) previous.next = entry;\n        if (DESCRIPTORS) state.size++;\n        else that.size++;\n        // add to index\n        if (index !== 'F') state.index[index] = entry;\n      } return that;\n    };\n\n    var getEntry = function (that, key) {\n      var state = getInternalState(that);\n      // fast case\n      var index = fastKey(key);\n      var entry;\n      if (index !== 'F') return state.index[index];\n      // frozen object case\n      for (entry = state.first; entry; entry = entry.next) {\n        if (entry.key == key) return entry;\n      }\n    };\n\n    redefineAll(C.prototype, {\n      // 23.1.3.1 Map.prototype.clear()\n      // 23.2.3.2 Set.prototype.clear()\n      clear: function clear() {\n        var that = this;\n        var state = getInternalState(that);\n        var data = state.index;\n        var entry = state.first;\n        while (entry) {\n          entry.removed = true;\n          if (entry.previous) entry.previous = entry.previous.next = undefined;\n          delete data[entry.index];\n          entry = entry.next;\n        }\n        state.first = state.last = undefined;\n        if (DESCRIPTORS) state.size = 0;\n        else that.size = 0;\n      },\n      // 23.1.3.3 Map.prototype.delete(key)\n      // 23.2.3.4 Set.prototype.delete(value)\n      'delete': function (key) {\n        var that = this;\n        var state = getInternalState(that);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.next;\n          var prev = entry.previous;\n          delete state.index[entry.index];\n          entry.removed = true;\n          if (prev) prev.next = next;\n          if (next) next.previous = prev;\n          if (state.first == entry) state.first = next;\n          if (state.last == entry) state.last = prev;\n          if (DESCRIPTORS) state.size--;\n          else that.size--;\n        } return !!entry;\n      },\n      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        var state = getInternalState(this);\n        var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n        var entry;\n        while (entry = entry ? entry.next : state.first) {\n          boundFunction(entry.value, entry.key, this);\n          // revert to the last existing entry\n          while (entry && entry.removed) entry = entry.previous;\n        }\n      },\n      // 23.1.3.7 Map.prototype.has(key)\n      // 23.2.3.7 Set.prototype.has(value)\n      has: function has(key) {\n        return !!getEntry(this, key);\n      }\n    });\n\n    redefineAll(C.prototype, IS_MAP ? {\n      // 23.1.3.6 Map.prototype.get(key)\n      get: function get(key) {\n        var entry = getEntry(this, key);\n        return entry && entry.value;\n      },\n      // 23.1.3.9 Map.prototype.set(key, value)\n      set: function set(key, value) {\n        return define(this, key === 0 ? 0 : key, value);\n      }\n    } : {\n      // 23.2.3.1 Set.prototype.add(value)\n      add: function add(value) {\n        return define(this, value = value === 0 ? 0 : value, value);\n      }\n    });\n    if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n      get: function () {\n        return getInternalState(this).size;\n      }\n    });\n    return C;\n  },\n  setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n    var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n    var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n    var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n    // add .keys, .values, .entries, [@@iterator]\n    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n    defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n      setInternalState(this, {\n        type: ITERATOR_NAME,\n        target: iterated,\n        state: getInternalCollectionState(iterated),\n        kind: kind,\n        last: undefined\n      });\n    }, function () {\n      var state = getInternalIteratorState(this);\n      var kind = state.kind;\n      var entry = state.last;\n      // revert to the last existing entry\n      while (entry && entry.removed) entry = entry.previous;\n      // get next entry\n      if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n        // or finish the iteration\n        state.target = undefined;\n        return { value: undefined, done: true };\n      }\n      // return step by kind\n      if (kind == 'keys') return { value: entry.key, done: false };\n      if (kind == 'values') return { value: entry.value, done: false };\n      return { value: [entry.key, entry.value], done: false };\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // add [@@species], 23.1.2.2, 23.2.2.2\n    setSpecies(CONSTRUCTOR_NAME);\n  }\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP) {\n  var store = new WeakMap();\n  var wmget = store.get;\n  var wmhas = store.has;\n  var wmset = store.set;\n  set = function (it, metadata) {\n    wmset.call(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget.call(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas.call(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return objectHas(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return objectHas(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","export default function _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n  var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n  var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var NativeConstructor = global[CONSTRUCTOR_NAME];\n  var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n  var Constructor = NativeConstructor;\n  var exported = {};\n\n  var fixMethod = function (KEY) {\n    var nativeMethod = NativePrototype[KEY];\n    redefine(NativePrototype, KEY,\n      KEY == 'add' ? function add(value) {\n        nativeMethod.call(this, value === 0 ? 0 : value);\n        return this;\n      } : KEY == 'delete' ? function (key) {\n        return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n      } : KEY == 'get' ? function get(key) {\n        return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n      } : KEY == 'has' ? function has(key) {\n        return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n      } : function set(key, value) {\n        nativeMethod.call(this, key === 0 ? 0 : key, value);\n        return this;\n      }\n    );\n  };\n\n  // eslint-disable-next-line max-len\n  if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n    new NativeConstructor().entries().next();\n  })))) {\n    // create collection constructor\n    Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n    InternalMetadataModule.REQUIRED = true;\n  } else if (isForced(CONSTRUCTOR_NAME, true)) {\n    var instance = new Constructor();\n    // early implementations not supports chaining\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n    // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n    // most early implementations doesn't supports iterables, most modern - not close it correctly\n    // eslint-disable-next-line no-new\n    var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n    // for early implementations -0 and +0 not the same\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      // V8 ~ Chromium 42- fails only with 5+ elements\n      var $instance = new NativeConstructor();\n      var index = 5;\n      while (index--) $instance[ADDER](index, index);\n      return !$instance.has(-0);\n    });\n\n    if (!ACCEPT_ITERABLES) {\n      Constructor = wrapper(function (dummy, iterable) {\n        anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n        var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n        if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n        return that;\n      });\n      Constructor.prototype = NativePrototype;\n      NativePrototype.constructor = Constructor;\n    }\n\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n    // weak collections should not contains .clear method\n    if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n  }\n\n  exported[CONSTRUCTOR_NAME] = Constructor;\n  $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n  setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n  if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n  return Constructor;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  if (typeof value == 'function') {\n    if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n    enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n  return function (it) {\n    var O = toIndexedObject(it);\n    var keys = objectKeys(O);\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n    while (length > i) {\n      key = keys[i++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n        result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n      }\n    }\n    return result;\n  };\n};\n\nmodule.exports = {\n  // `Object.entries` method\n  // https://tc39.github.io/ecma262/#sec-object.entries\n  entries: createMethod(true),\n  // `Object.values` method\n  // https://tc39.github.io/ecma262/#sec-object.values\n  values: createMethod(false)\n};\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    typeof (NewTarget = dummy.constructor) == 'function' &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n","// Styles\nimport './VToolbar.sass'\n\n// Extensions\nimport VSheet from '../VSheet/VSheet'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\n/* @vue/component */\nexport default VSheet.extend({\n  name: 'v-toolbar',\n\n  props: {\n    absolute: Boolean,\n    bottom: Boolean,\n    collapse: Boolean,\n    dense: Boolean,\n    extended: Boolean,\n    extensionHeight: {\n      default: 48,\n      type: [Number, String],\n    },\n    flat: Boolean,\n    floating: Boolean,\n    prominent: Boolean,\n    short: Boolean,\n    src: {\n      type: [String, Object] as PropType<string | srcObject>,\n      default: '',\n    },\n    tag: {\n      type: String,\n      default: 'header',\n    },\n  },\n\n  data: () => ({\n    isExtended: false,\n  }),\n\n  computed: {\n    computedHeight (): number {\n      const height = this.computedContentHeight\n\n      if (!this.isExtended) return height\n\n      const extensionHeight = parseInt(this.extensionHeight)\n\n      return this.isCollapsed\n        ? height\n        : height + (!isNaN(extensionHeight) ? extensionHeight : 0)\n    },\n    computedContentHeight (): number {\n      if (this.height) return parseInt(this.height)\n      if (this.isProminent && this.dense) return 96\n      if (this.isProminent && this.short) return 112\n      if (this.isProminent) return 128\n      if (this.dense) return 48\n      if (this.short || this.$vuetify.breakpoint.smAndDown) return 56\n      return 64\n    },\n    classes (): object {\n      return {\n        ...VSheet.options.computed.classes.call(this),\n        'v-toolbar': true,\n        'v-toolbar--absolute': this.absolute,\n        'v-toolbar--bottom': this.bottom,\n        'v-toolbar--collapse': this.collapse,\n        'v-toolbar--collapsed': this.isCollapsed,\n        'v-toolbar--dense': this.dense,\n        'v-toolbar--extended': this.isExtended,\n        'v-toolbar--flat': this.flat,\n        'v-toolbar--floating': this.floating,\n        'v-toolbar--prominent': this.isProminent,\n      }\n    },\n    isCollapsed (): boolean {\n      return this.collapse\n    },\n    isProminent (): boolean {\n      return this.prominent\n    },\n    styles (): object {\n      return {\n        ...this.measurableStyles,\n        height: convertToUnit(this.computedHeight),\n      }\n    },\n  },\n\n  created () {\n    const breakingProps = [\n      ['app', '<v-app-bar app>'],\n      ['manual-scroll', '<v-app-bar :value=\"false\">'],\n      ['clipped-left', '<v-app-bar clipped-left>'],\n      ['clipped-right', '<v-app-bar clipped-right>'],\n      ['inverted-scroll', '<v-app-bar inverted-scroll>'],\n      ['scroll-off-screen', '<v-app-bar scroll-off-screen>'],\n      ['scroll-target', '<v-app-bar scroll-target>'],\n      ['scroll-threshold', '<v-app-bar scroll-threshold>'],\n      ['card', '<v-app-bar flat>'],\n    ]\n\n    /* istanbul ignore next */\n    breakingProps.forEach(([original, replacement]) => {\n      if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n    })\n  },\n\n  methods: {\n    genBackground () {\n      const props = {\n        height: convertToUnit(this.computedHeight),\n        src: this.src,\n      }\n\n      const image = this.$scopedSlots.img\n        ? this.$scopedSlots.img({ props })\n        : this.$createElement(VImg, { props })\n\n      return this.$createElement('div', {\n        staticClass: 'v-toolbar__image',\n      }, [image])\n    },\n    genContent () {\n      return this.$createElement('div', {\n        staticClass: 'v-toolbar__content',\n        style: {\n          height: convertToUnit(this.computedContentHeight),\n        },\n      }, getSlot(this))\n    },\n    genExtension () {\n      return this.$createElement('div', {\n        staticClass: 'v-toolbar__extension',\n        style: {\n          height: convertToUnit(this.extensionHeight),\n        },\n      }, getSlot(this, 'extension'))\n    },\n  },\n\n  render (h): VNode {\n    this.isExtended = this.extended || !!this.$scopedSlots.extension\n\n    const children = [this.genContent()]\n    const data = this.setBackgroundColor(this.color, {\n      class: this.classes,\n      style: this.styles,\n      on: this.$listeners,\n    })\n\n    if (this.isExtended) children.push(this.genExtension())\n    if (this.src || this.$scopedSlots.img) children.unshift(this.genBackground())\n\n    return h(this.tag, data, children)\n  },\n})\n","exports.f = Object.getOwnPropertySymbols;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n  var Symbol = path.Symbol || (path.Symbol = {});\n  if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n    value: wrappedWellKnownSymbolModule.f(NAME)\n  });\n};\n","// Styles\nimport './VApp.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(\n  Themeable\n).extend({\n  name: 'v-app',\n\n  props: {\n    dark: {\n      type: Boolean,\n      default: undefined,\n    },\n    id: {\n      type: String,\n      default: 'app',\n    },\n    light: {\n      type: Boolean,\n      default: undefined,\n    },\n  },\n\n  computed: {\n    isDark (): boolean {\n      return this.$vuetify.theme.dark\n    },\n  },\n\n  beforeCreate () {\n    if (!this.$vuetify || (this.$vuetify === this.$root as any)) {\n      throw new Error('Vuetify is not properly initialized, see https://vuetifyjs.com/getting-started/quick-start#bootstrapping-the-vuetify-object')\n    }\n  },\n\n  render (h) {\n    const wrapper = h('div', { staticClass: 'v-application--wrap' }, this.$slots.default)\n\n    return h('div', {\n      staticClass: 'v-application',\n      class: {\n        'v-application--is-rtl': this.$vuetify.rtl,\n        'v-application--is-ltr': !this.$vuetify.rtl,\n        ...this.themeClasses,\n      },\n      attrs: { 'data-app': true },\n      domProps: { id: this.id },\n    }, [wrapper])\n  },\n})\n","import Vue from 'vue'\nimport { PropType, RenderContext } from 'vue/types/options'\n\n/* eslint-disable-next-line no-use-before-define */\ninterface Themeable extends Vue {\n  theme: {\n    isDark: boolean\n  }\n}\n\nexport function functionalThemeClasses (context: RenderContext): object {\n  const vm = {\n    ...context.props,\n    ...context.injections,\n  }\n  const isDark = Themeable.options.computed.isDark.call(vm)\n  return Themeable.options.computed.themeClasses.call({ isDark })\n}\n\n/* @vue/component */\nconst Themeable = Vue.extend<Themeable>().extend({\n  name: 'themeable',\n\n  provide (): object {\n    return {\n      theme: this.themeableProvide,\n    }\n  },\n\n  inject: {\n    theme: {\n      default: {\n        isDark: false,\n      },\n    },\n  },\n\n  props: {\n    dark: {\n      type: Boolean as PropType<boolean | null>,\n      default: null,\n    },\n    light: {\n      type: Boolean as PropType<boolean | null>,\n      default: null,\n    },\n  },\n\n  data () {\n    return {\n      themeableProvide: {\n        isDark: false,\n      },\n    }\n  },\n\n  computed: {\n    appIsDark (): boolean {\n      return this.$vuetify.theme.dark || false\n    },\n    isDark (): boolean {\n      if (this.dark === true) {\n        // explicitly dark\n        return true\n      } else if (this.light === true) {\n        // explicitly light\n        return false\n      } else {\n        // inherit from parent, or default false if there is none\n        return this.theme.isDark\n      }\n    },\n    themeClasses (): object {\n      return {\n        'theme--dark': this.isDark,\n        'theme--light': !this.isDark,\n      }\n    },\n    /** Used by menus and dialogs, inherits from v-app instead of the parent */\n    rootIsDark (): boolean {\n      if (this.dark === true) {\n        // explicitly dark\n        return true\n      } else if (this.light === true) {\n        // explicitly light\n        return false\n      } else {\n        // inherit from v-app\n        return this.appIsDark\n      }\n    },\n    rootThemeClasses (): Dictionary<boolean> {\n      return {\n        'theme--dark': this.rootIsDark,\n        'theme--light': !this.rootIsDark,\n      }\n    },\n  },\n\n  watch: {\n    isDark: {\n      handler (newVal, oldVal) {\n        if (newVal !== oldVal) {\n          this.themeableProvide.isDark = this.isDark\n        }\n      },\n      immediate: true,\n    },\n  },\n})\n\nexport default Themeable\n","// Mixins\nimport Bootable from '../bootable'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { PropOptions } from 'vue'\nimport { VNode } from 'vue/types'\n\ninterface options extends Vue {\n  $el: HTMLElement\n  $refs: {\n    content: HTMLElement\n  }\n}\n\nfunction validateAttachTarget (val: any) {\n  const type = typeof val\n\n  if (type === 'boolean' || type === 'string') return true\n\n  return val.nodeType === Node.ELEMENT_NODE\n}\n\n/* @vue/component */\nexport default mixins<options &\n  /* eslint-disable indent */\n  ExtractVue<typeof Bootable>\n  /* eslint-enable indent */\n>(Bootable).extend({\n  name: 'detachable',\n\n  props: {\n    attach: {\n      default: false,\n      validator: validateAttachTarget,\n    } as PropOptions<boolean | string | Element>,\n    contentClass: {\n      type: String,\n      default: '',\n    },\n  },\n\n  data: () => ({\n    activatorNode: null as null | VNode | VNode[],\n    hasDetached: false,\n  }),\n\n  watch: {\n    attach () {\n      this.hasDetached = false\n      this.initDetach()\n    },\n    hasContent () {\n      this.$nextTick(this.initDetach)\n    },\n  },\n\n  beforeMount () {\n    this.$nextTick(() => {\n      if (this.activatorNode) {\n        const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n\n        activator.forEach(node => {\n          if (!node.elm) return\n          if (!this.$el.parentNode) return\n\n          const target = this.$el === this.$el.parentNode.firstChild\n            ? this.$el\n            : this.$el.nextSibling\n\n          this.$el.parentNode.insertBefore(node.elm, target)\n        })\n      }\n    })\n  },\n\n  mounted () {\n    this.hasContent && this.initDetach()\n  },\n\n  deactivated () {\n    this.isActive = false\n  },\n\n  beforeDestroy () {\n    // IE11 Fix\n    try {\n      if (\n        this.$refs.content &&\n        this.$refs.content.parentNode\n      ) {\n        this.$refs.content.parentNode.removeChild(this.$refs.content)\n      }\n\n      if (this.activatorNode) {\n        const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n        activator.forEach(node => {\n          node.elm &&\n            node.elm.parentNode &&\n            node.elm.parentNode.removeChild(node.elm)\n        })\n      }\n    } catch (e) { console.log(e) }\n  },\n\n  methods: {\n    getScopeIdAttrs () {\n      const scopeId = getObjectValueByPath(this.$vnode, 'context.$options._scopeId')\n\n      return scopeId && {\n        [scopeId]: '',\n      }\n    },\n    initDetach () {\n      if (this._isDestroyed ||\n        !this.$refs.content ||\n        this.hasDetached ||\n        // Leave menu in place if attached\n        // and dev has not changed target\n        this.attach === '' || // If used as a boolean prop (<v-menu attach>)\n        this.attach === true || // If bound to a boolean (<v-menu :attach=\"true\">)\n        this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n      ) return\n\n      let target\n      if (this.attach === false) {\n        // Default, detach to app\n        target = document.querySelector('[data-app]')\n      } else if (typeof this.attach === 'string') {\n        // CSS selector\n        target = document.querySelector(this.attach)\n      } else {\n        // DOM Element\n        target = this.attach\n      }\n\n      if (!target) {\n        consoleWarn(`Unable to locate target ${this.attach || '[data-app]'}`, this)\n        return\n      }\n\n      target.appendChild(this.$refs.content)\n\n      this.hasDetached = true\n    },\n  },\n})\n","// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n","// Utilities\nimport { consoleWarn } from './console'\nimport { chunk, padEnd } from './helpers'\nimport { toXYZ } from './color/transformSRGB'\n\n// Types\nimport { VuetifyThemeVariant } from 'types/services/theme'\n\nexport type ColorInt = number\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number }\nexport type HSVA = HSV & { a: number }\nexport type RGB = { r: number, g: number, b: number }\nexport type RGBA = RGB & { a: number }\nexport type HSL = { h: number, s: number, l: number }\nexport type HSLA = HSL & { a: number }\nexport type Hex = string\nexport type Hexa = string\nexport type Color = string | number | {}\n\nexport function isCssColor (color?: string | false): boolean {\n  return !!color && !!color.match(/^(#|var\\(--|(rgb|hsl)a?\\()/)\n}\n\nexport function colorToInt (color: Color): ColorInt {\n  let rgb\n\n  if (typeof color === 'number') {\n    rgb = color\n  } else if (typeof color === 'string') {\n    let c = color[0] === '#' ? color.substring(1) : color\n    if (c.length === 3) {\n      c = c.split('').map(char => char + char).join('')\n    }\n    if (c.length !== 6) {\n      consoleWarn(`'${color}' is not a valid rgb color`)\n    }\n    rgb = parseInt(c, 16)\n  } else {\n    throw new TypeError(`Colors can only be numbers or strings, recieved ${color == null ? color : color.constructor.name} instead`)\n  }\n\n  if (rgb < 0) {\n    consoleWarn(`Colors cannot be negative: '${color}'`)\n    rgb = 0\n  } else if (rgb > 0xffffff || isNaN(rgb)) {\n    consoleWarn(`'${color}' is not a valid rgb color`)\n    rgb = 0xffffff\n  }\n\n  return rgb\n}\n\nexport function classToHex (\n  color: string,\n  colors: Record<string, Record<string, string>>,\n  currentTheme: Partial<VuetifyThemeVariant>,\n): string {\n  const [colorName, colorModifier] = color\n    .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n  let hexColor = ''\n  if (colorName && colorName in colors) {\n    if (colorModifier && colorModifier in colors[colorName]) {\n      hexColor = colors[colorName][colorModifier]\n    } else if ('base' in colors[colorName]) {\n      hexColor = colors[colorName].base\n    }\n  } else if (colorName && colorName in currentTheme) {\n    hexColor = currentTheme[colorName] as string\n  }\n\n  return hexColor\n}\n\nexport function intToHex (color: ColorInt): string {\n  let hexColor: string = color.toString(16)\n\n  if (hexColor.length < 6) hexColor = '0'.repeat(6 - hexColor.length) + hexColor\n\n  return '#' + hexColor\n}\n\nexport function colorToHex (color: Color): string {\n  return intToHex(colorToInt(color))\n}\n\n/**\n * Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1]\n */\nexport function HSVAtoRGBA (hsva: HSVA): RGBA {\n  const { h, s, v, a } = hsva\n  const f = (n: number) => {\n    const k = (n + (h / 60)) % 6\n    return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n  }\n\n  const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n  return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\n/**\n * Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color RGBA color as an array [0-255, 0-255, 0-255, 0-1]\n */\nexport function RGBAtoHSVA (rgba: RGBA): HSVA {\n  if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n  const r = rgba.r / 255\n  const g = rgba.g / 255\n  const b = rgba.b / 255\n  const max = Math.max(r, g, b)\n  const min = Math.min(r, g, b)\n\n  let h = 0\n\n  if (max !== min) {\n    if (max === r) {\n      h = 60 * (0 + ((g - b) / (max - min)))\n    } else if (max === g) {\n      h = 60 * (2 + ((b - r) / (max - min)))\n    } else if (max === b) {\n      h = 60 * (4 + ((r - g) / (max - min)))\n    }\n  }\n\n  if (h < 0) h = h + 360\n\n  const s = max === 0 ? 0 : (max - min) / max\n  const hsv = [h, s, max]\n\n  return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVAtoHSLA (hsva: HSVA): HSLA {\n  const { h, s, v, a } = hsva\n\n  const l = v - (v * s / 2)\n\n  const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n  return { h, s: sprime, l, a }\n}\n\nexport function HSLAtoHSVA (hsl: HSLA): HSVA {\n  const { h, s, l, a } = hsl\n\n  const v = l + s * Math.min(l, 1 - l)\n\n  const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n  return { h, s: sprime, v, a }\n}\n\nexport function RGBAtoCSS (rgba: RGBA): string {\n  return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`\n}\n\nexport function RGBtoCSS (rgba: RGBA): string {\n  return RGBAtoCSS({ ...rgba, a: 1 })\n}\n\nexport function RGBAtoHex (rgba: RGBA): Hex {\n  const toHex = (v: number) => {\n    const h = Math.round(v).toString(16)\n    return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n  }\n\n  return `#${[\n    toHex(rgba.r),\n    toHex(rgba.g),\n    toHex(rgba.b),\n    toHex(Math.round(rgba.a * 255)),\n  ].join('')}`\n}\n\nexport function HexToRGBA (hex: Hex): RGBA {\n  const rgba = chunk(hex.slice(1), 2).map((c: string) => parseInt(c, 16))\n\n  return {\n    r: rgba[0],\n    g: rgba[1],\n    b: rgba[2],\n    a: Math.round((rgba[3] / 255) * 100) / 100,\n  }\n}\n\nexport function HexToHSVA (hex: Hex): HSVA {\n  const rgb = HexToRGBA(hex)\n  return RGBAtoHSVA(rgb)\n}\n\nexport function HSVAtoHex (hsva: HSVA): Hex {\n  return RGBAtoHex(HSVAtoRGBA(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n  if (hex.startsWith('#')) {\n    hex = hex.slice(1)\n  }\n\n  hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n  if (hex.length === 3 || hex.length === 4) {\n    hex = hex.split('').map(x => x + x).join('')\n  }\n\n  if (hex.length === 6) {\n    hex = padEnd(hex, 8, 'F')\n  } else {\n    hex = padEnd(padEnd(hex, 6), 8, 'F')\n  }\n\n  return `#${hex}`.toUpperCase().substr(0, 9)\n}\n\nexport function parseGradient (\n  gradient: string,\n  colors: Record<string, Record<string, string>>,\n  currentTheme: Partial<VuetifyThemeVariant>,\n) {\n  return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n    return classToHex(x, colors, currentTheme) || x\n  }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n    return 'rgba(' + Object.values(HexToRGBA(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n  })\n}\n\nexport function RGBtoInt (rgba: RGBA): ColorInt {\n  return (rgba.r << 16) + (rgba.g << 8) + rgba.b\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n *\n * @param c1 First color\n * @param c2 Second color\n */\nexport function contrastRatio (c1: RGBA, c2: RGBA): number {\n  const [, y1] = toXYZ(RGBtoInt(c1))\n  const [, y2] = toXYZ(RGBtoInt(c2))\n\n  return (Math.max(y1, y2) + 0.05) / (Math.min(y1, y2) + 0.05)\n}\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    /* global ActiveXObject */\n    activeXDocument = document.domain && new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n  find: function find(callbackfn /* , that = undefined */) {\n    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    INCORRECT_VALUES_NAME = true;\n    defaultIterator = function values() { return nativeIterator.call(this); };\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n  }\n  Iterators[NAME] = defaultIterator;\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  return methods;\n};\n","import Vue, { WatchHandler } from 'vue'\n\n/**\n * This mixin provides `attrs$` and `listeners$` to work around\n * vue bug https://github.com/vuejs/vue/issues/10115\n */\n\nfunction makeWatcher (property: string): ThisType<Vue> & WatchHandler<any> {\n  return function (this: Vue, val, oldVal) {\n    for (const attr in oldVal) {\n      if (!Object.prototype.hasOwnProperty.call(val, attr)) {\n        this.$delete(this.$data[property], attr)\n      }\n    }\n    for (const attr in val) {\n      this.$set(this.$data[property], attr, val[attr])\n    }\n  }\n}\n\nexport default Vue.extend({\n  data: () => ({\n    attrs$: {} as Dictionary<string>,\n    listeners$: {} as Dictionary<Function | Function[]>,\n  }),\n\n  created () {\n    // Work around unwanted re-renders: https://github.com/vuejs/vue/issues/10115\n    // Make sure to use `attrs$` instead of `$attrs` (confusing right?)\n    this.$watch('$attrs', makeWatcher('attrs$'), { immediate: true })\n    this.$watch('$listeners', makeWatcher('listeners$'), { immediate: true })\n  },\n})\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","import Vue from 'vue'\nimport { VNode, VNodeDirective } from 'vue/types'\nimport { VuetifyIcon } from 'vuetify/types/services/icons'\nimport { DataTableCompareFunction, SelectItemKey, ItemGroup } from 'vuetify/types'\n\nexport function createSimpleFunctional (\n  c: string,\n  el = 'div',\n  name?: string\n) {\n  return Vue.extend({\n    name: name || c.replace(/__/g, '-'),\n\n    functional: true,\n\n    render (h, { data, children }): VNode {\n      data.staticClass = (`${c} ${data.staticClass || ''}`).trim()\n\n      return h(el, data, children)\n    },\n  })\n}\n\nexport type BindingConfig = Pick<VNodeDirective, 'arg' | 'modifiers' | 'value'>\nexport function directiveConfig (binding: BindingConfig, defaults = {}): VNodeDirective {\n  return {\n    ...defaults,\n    ...binding.modifiers,\n    value: binding.arg,\n    ...(binding.value || {}),\n  }\n}\n\nexport function addOnceEventListener (\n  el: EventTarget,\n  eventName: string,\n  cb: (event: Event) => void,\n  options: boolean | AddEventListenerOptions = false\n): void {\n  var once = (event: Event) => {\n    cb(event)\n    el.removeEventListener(eventName, once, options)\n  }\n\n  el.addEventListener(eventName, once, options)\n}\n\nlet passiveSupported = false\ntry {\n  if (typeof window !== 'undefined') {\n    const testListenerOpts = Object.defineProperty({}, 'passive', {\n      get: () => {\n        passiveSupported = true\n      },\n    })\n\n    window.addEventListener('testListener', testListenerOpts, testListenerOpts)\n    window.removeEventListener('testListener', testListenerOpts, testListenerOpts)\n  }\n} catch (e) { console.warn(e) }\nexport { passiveSupported }\n\nexport function addPassiveEventListener (\n  el: EventTarget,\n  event: string,\n  cb: EventHandlerNonNull | (() => void),\n  options: {}\n): void {\n  el.addEventListener(event, cb, passiveSupported ? options : false)\n}\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n  const last = path.length - 1\n\n  if (last < 0) return obj === undefined ? fallback : obj\n\n  for (let i = 0; i < last; i++) {\n    if (obj == null) {\n      return fallback\n    }\n    obj = obj[path[i]]\n  }\n\n  if (obj == null) return fallback\n\n  return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n  if (a === b) return true\n\n  if (a instanceof Date && b instanceof Date) {\n    // If the values are Date, they were convert to timestamp with getTime and compare it\n    if (a.getTime() !== b.getTime()) return false\n  }\n\n  if (a !== Object(a) || b !== Object(b)) {\n    // If the values aren't objects, they were already checked for equality\n    return false\n  }\n\n  const props = Object.keys(a)\n\n  if (props.length !== Object.keys(b).length) {\n    // Different number of props, don't bother to check\n    return false\n  }\n\n  return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n  // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n  if (obj == null || !path || typeof path !== 'string') return fallback\n  if (obj[path] !== undefined) return obj[path]\n  path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n  path = path.replace(/^\\./, '') // strip a leading dot\n  return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport function getPropertyFromItem (\n  item: object,\n  property: SelectItemKey,\n  fallback?: any\n): any {\n  if (property == null) return item === undefined ? fallback : item\n\n  if (item !== Object(item)) return fallback === undefined ? item : fallback\n\n  if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n  if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n  if (typeof property !== 'function') return fallback\n\n  const value = property(item, fallback)\n\n  return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number): number[] {\n  return Array.from({ length }, (v, k) => k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n  if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n  const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n  if (!index) return getZIndex(el.parentNode as Element)\n  return index\n}\n\nconst tagsToReplace = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n} as any\n\nexport function escapeHTML (str: string): string {\n  return str.replace(/[&<>]/g, tag => tagsToReplace[tag] || tag)\n}\n\nexport function filterObjectOnKeys<T, K extends keyof T> (obj: T, keys: K[]): { [N in K]: T[N] } {\n  const filtered = {} as { [N in K]: T[N] }\n\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i]\n    if (typeof obj[key] !== 'undefined') {\n      filtered[key] = obj[key]\n    }\n  }\n\n  return filtered\n}\n\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n  if (str == null || str === '') {\n    return undefined\n  } else if (isNaN(+str!)) {\n    return String(str)\n  } else {\n    return `${Number(str)}${unit}`\n  }\n}\n\nexport function kebabCase (str: string): string {\n  return (str || '').replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()\n}\n\nexport function isObject (obj: any): obj is object {\n  return obj !== null && typeof obj === 'object'\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n  enter: 13,\n  tab: 9,\n  delete: 46,\n  esc: 27,\n  space: 32,\n  up: 38,\n  down: 40,\n  left: 37,\n  right: 39,\n  end: 35,\n  home: 36,\n  del: 46,\n  backspace: 8,\n  insert: 45,\n  pageup: 33,\n  pagedown: 34,\n})\n\n// This remaps internal names like '$cancel' or '$vuetify.icons.cancel'\n// to the current name or component for that icon.\nexport function remapInternalIcon (vm: Vue, iconName: string): VuetifyIcon {\n  if (!iconName.startsWith('$')) {\n    return iconName\n  }\n\n  // Get the target icon name\n  const iconPath = `$vuetify.icons.values.${iconName.split('$').pop()!.split('.').pop()}`\n\n  // Now look up icon indirection name,\n  // e.g. '$vuetify.icons.values.cancel'\n  return getObjectValueByPath(vm, iconPath, iconName)\n}\n\nexport function keys<O> (o: O) {\n  return Object.keys(o) as (keyof O)[]\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nconst camelizeRE = /-(\\w)/g\nexport const camelize = (str: string): string => {\n  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n  const diff: any[] = []\n  for (let i = 0; i < b.length; i++) {\n    if (a.indexOf(b[i]) < 0) diff.push(b[i])\n  }\n  return diff\n}\n\n/**\n * Makes the first character of a string uppercase\n */\nexport function upperFirst (str: string): string {\n  return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function groupItems<T extends any = any> (\n  items: T[],\n  groupBy: string[],\n  groupDesc: boolean[]\n): ItemGroup<T>[] {\n  const key = groupBy[0]\n  const groups: ItemGroup<T>[] = []\n  let current = null\n  for (var i = 0; i < items.length; i++) {\n    const item = items[i]\n    const val = getObjectValueByPath(item, key)\n    if (current !== val) {\n      current = val\n      groups.push({\n        name: val,\n        items: [],\n      })\n    }\n    groups[groups.length - 1].items.push(item)\n  }\n  return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] { return v != null ? Array.isArray(v) ? v : [v] : [] }\n\nexport function sortItems<T extends any = any> (\n  items: T[],\n  sortBy: string[],\n  sortDesc: boolean[],\n  locale: string,\n  customSorters?: Record<string, DataTableCompareFunction<T>>\n): T[] {\n  if (sortBy === null || !sortBy.length) return items\n  const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n  return items.sort((a, b) => {\n    for (let i = 0; i < sortBy.length; i++) {\n      const sortKey = sortBy[i]\n\n      let sortA = getObjectValueByPath(a, sortKey)\n      let sortB = getObjectValueByPath(b, sortKey)\n\n      if (sortDesc[i]) {\n        [sortA, sortB] = [sortB, sortA]\n      }\n\n      if (customSorters && customSorters[sortKey]) {\n        const customResult = customSorters[sortKey](sortA, sortB)\n\n        if (!customResult) continue\n\n        return customResult\n      }\n\n      // Check if both cannot be evaluated\n      if (sortA === null && sortB === null) {\n        continue\n      }\n\n      [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n      if (sortA !== sortB) {\n        if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n        return stringCollator.compare(sortA, sortB)\n      }\n    }\n\n    return 0\n  })\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n  return value != null &&\n    search != null &&\n    typeof value !== 'boolean' &&\n    value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n  if (!search) return items\n  search = search.toString().toLowerCase()\n  if (search.trim() === '') return items\n\n  return items.filter(item => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\n/**\n * Returns:\n *  - 'normal' for old style slots - `<template slot=\"default\">`\n *  - 'scoped' for old style scoped slots (`<template slot=\"default\" slot-scope=\"data\">`) or bound v-slot (`#default=\"data\"`)\n *  - 'v-slot' for unbound v-slot (`#default`) - only if the third param is true, otherwise counts as scoped\n */\nexport function getSlotType<T extends boolean = false> (vm: Vue, name: string, split?: T): (T extends true ? 'v-slot' : never) | 'normal' | 'scoped' | void {\n  if (vm.$slots[name] && vm.$scopedSlots[name] && (vm.$scopedSlots[name] as any).name) {\n    return split ? 'v-slot' as any : 'scoped'\n  }\n  if (vm.$slots[name]) return 'normal'\n  if (vm.$scopedSlots[name]) return 'scoped'\n}\n\nexport function debounce (fn: Function, delay: number) {\n  let timeoutId = 0 as any\n  return (...args: any[]) => {\n    clearTimeout(timeoutId)\n    timeoutId = setTimeout(() => fn(...args), delay)\n  }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n  let throttling = false\n  return (...args: Parameters<T>): void | ReturnType<T> => {\n    if (!throttling) {\n      throttling = true\n      setTimeout(() => throttling = false, limit)\n      return fn(...args)\n    }\n  }\n}\n\nexport function getPrefixedScopedSlots (prefix: string, scopedSlots: any) {\n  return Object.keys(scopedSlots).filter(k => k.startsWith(prefix)).reduce((obj: any, k: string) => {\n    obj[k.replace(prefix, '')] = scopedSlots[k]\n    return obj\n  }, {})\n}\n\nexport function getSlot (vm: Vue, name = 'default', data?: object | (() => object), optional = false) {\n  if (vm.$scopedSlots[name]) {\n    return vm.$scopedSlots[name]!(data instanceof Function ? data() : data)\n  } else if (vm.$slots[name] && (!data || optional)) {\n    return vm.$slots[name]\n  }\n  return undefined\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n  return Math.max(min, Math.min(max, value))\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n  return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n  const chunked: string[] = []\n  let index = 0\n  while (index < str.length) {\n    chunked.push(str.substr(index, size))\n    index += size\n  }\n  return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, binary = false): string {\n  const base = binary ? 1024 : 1000\n  if (bytes < base) {\n    return `${bytes} B`\n  }\n\n  const prefix = binary ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n  let unit = -1\n  while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n    bytes /= base\n    ++unit\n  }\n  return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n  if (!obj) return {}\n\n  return Object.keys(obj).reduce((o: any, key: string) => {\n    o[camelize(key)] = obj[key]\n    return o\n  }, {})\n}\n\nexport function mergeDeep (\n  source: Dictionary<any> = {},\n  target: Dictionary<any> = {}\n) {\n  for (const key in target) {\n    const sourceProperty = source[key]\n    const targetProperty = target[key]\n\n    // Only continue deep merging if\n    // both properties are objects\n    if (\n      isObject(sourceProperty) &&\n      isObject(targetProperty)\n    ) {\n      source[key] = mergeDeep(sourceProperty, targetProperty)\n\n      continue\n    }\n\n    source[key] = targetProperty\n  }\n\n  return source\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n  return Array(length).fill(obj)\n}\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n  var O = toObject(this);\n  var length = toLength(O.length);\n  var argumentsLength = arguments.length;\n  var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n  var end = argumentsLength > 2 ? arguments[2] : undefined;\n  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n  while (endPos > index) O[index++] = value;\n  return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it)) {\n    throw TypeError(String(it) + ' is not an object');\n  } return it;\n};\n","// Styles\nimport './VProgressCircular.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utils\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\n\n/* @vue/component */\nexport default Colorable.extend({\n  name: 'v-progress-circular',\n\n  props: {\n    button: Boolean,\n    indeterminate: Boolean,\n    rotate: {\n      type: [Number, String],\n      default: 0,\n    },\n    size: {\n      type: [Number, String],\n      default: 32,\n    },\n    width: {\n      type: [Number, String],\n      default: 4,\n    },\n    value: {\n      type: [Number, String],\n      default: 0,\n    },\n  },\n\n  data: () => ({\n    radius: 20,\n  }),\n\n  computed: {\n    calculatedSize (): number {\n      return Number(this.size) + (this.button ? 8 : 0)\n    },\n\n    circumference (): number {\n      return 2 * Math.PI * this.radius\n    },\n\n    classes (): object {\n      return {\n        'v-progress-circular--indeterminate': this.indeterminate,\n        'v-progress-circular--button': this.button,\n      }\n    },\n\n    normalizedValue (): number {\n      if (this.value < 0) {\n        return 0\n      }\n\n      if (this.value > 100) {\n        return 100\n      }\n\n      return parseFloat(this.value)\n    },\n\n    strokeDashArray (): number {\n      return Math.round(this.circumference * 1000) / 1000\n    },\n\n    strokeDashOffset (): string {\n      return ((100 - this.normalizedValue) / 100) * this.circumference + 'px'\n    },\n\n    strokeWidth (): number {\n      return Number(this.width) / +this.size * this.viewBoxSize * 2\n    },\n\n    styles (): object {\n      return {\n        height: convertToUnit(this.calculatedSize),\n        width: convertToUnit(this.calculatedSize),\n      }\n    },\n\n    svgStyles (): object {\n      return {\n        transform: `rotate(${Number(this.rotate)}deg)`,\n      }\n    },\n\n    viewBoxSize (): number {\n      return this.radius / (1 - Number(this.width) / +this.size)\n    },\n  },\n\n  methods: {\n    genCircle (name: string, offset: string | number): VNode {\n      return this.$createElement('circle', {\n        class: `v-progress-circular__${name}`,\n        attrs: {\n          fill: 'transparent',\n          cx: 2 * this.viewBoxSize,\n          cy: 2 * this.viewBoxSize,\n          r: this.radius,\n          'stroke-width': this.strokeWidth,\n          'stroke-dasharray': this.strokeDashArray,\n          'stroke-dashoffset': offset,\n        },\n      })\n    },\n    genSvg (): VNode {\n      const children = [\n        this.indeterminate || this.genCircle('underlay', 0),\n        this.genCircle('overlay', this.strokeDashOffset),\n      ] as VNodeChildren\n\n      return this.$createElement('svg', {\n        style: this.svgStyles,\n        attrs: {\n          xmlns: 'http://www.w3.org/2000/svg',\n          viewBox: `${this.viewBoxSize} ${this.viewBoxSize} ${2 * this.viewBoxSize} ${2 * this.viewBoxSize}`,\n        },\n      }, children)\n    },\n    genInfo (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-progress-circular__info',\n      }, this.$slots.default)\n    },\n  },\n\n  render (h): VNode {\n    return h('div', this.setTextColor(this.color, {\n      staticClass: 'v-progress-circular',\n      attrs: {\n        role: 'progressbar',\n        'aria-valuemin': 0,\n        'aria-valuemax': 100,\n        'aria-valuenow': this.indeterminate ? undefined : this.normalizedValue,\n      },\n      class: this.classes,\n      style: this.styles,\n      on: this.$listeners,\n    }), [\n      this.genSvg(),\n      this.genInfo(),\n    ])\n  },\n})\n","import VProgressCircular from './VProgressCircular'\n\nexport { VProgressCircular }\nexport default VProgressCircular\n","// Styles\nimport './VBtn.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VProgressCircular from '../VProgressCircular'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Positionable from '../../mixins/positionable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator, PropType } from 'vue/types/options'\nimport { RippleOptions } from '../../directives/ripple'\n\nconst baseMixins = mixins(\n  VSheet,\n  Routable,\n  Positionable,\n  Sizeable,\n  GroupableFactory('btnToggle'),\n  ToggleableFactory('inputValue')\n  /* @vue/component */\n)\ninterface options extends ExtractVue<typeof baseMixins> {\n  $el: HTMLElement\n}\n\nexport default baseMixins.extend<options>().extend({\n  name: 'v-btn',\n\n  props: {\n    activeClass: {\n      type: String,\n      default (): string | undefined {\n        if (!this.btnToggle) return ''\n\n        return this.btnToggle.activeClass\n      },\n    } as any as PropValidator<string>,\n    block: Boolean,\n    depressed: Boolean,\n    fab: Boolean,\n    icon: Boolean,\n    loading: Boolean,\n    outlined: Boolean,\n    retainFocusOnClick: Boolean,\n    rounded: Boolean,\n    tag: {\n      type: String,\n      default: 'button',\n    },\n    text: Boolean,\n    tile: Boolean,\n    type: {\n      type: String,\n      default: 'button',\n    },\n    value: null as any as PropType<any>,\n  },\n\n  data: () => ({\n    proxyClass: 'v-btn--active',\n  }),\n\n  computed: {\n    classes (): any {\n      return {\n        'v-btn': true,\n        ...Routable.options.computed.classes.call(this),\n        'v-btn--absolute': this.absolute,\n        'v-btn--block': this.block,\n        'v-btn--bottom': this.bottom,\n        'v-btn--contained': this.contained,\n        'v-btn--depressed': (this.depressed) || this.outlined,\n        'v-btn--disabled': this.disabled,\n        'v-btn--fab': this.fab,\n        'v-btn--fixed': this.fixed,\n        'v-btn--flat': this.isFlat,\n        'v-btn--icon': this.icon,\n        'v-btn--left': this.left,\n        'v-btn--loading': this.loading,\n        'v-btn--outlined': this.outlined,\n        'v-btn--right': this.right,\n        'v-btn--round': this.isRound,\n        'v-btn--rounded': this.rounded,\n        'v-btn--router': this.to,\n        'v-btn--text': this.text,\n        'v-btn--tile': this.tile,\n        'v-btn--top': this.top,\n        ...this.themeClasses,\n        ...this.groupClasses,\n        ...this.elevationClasses,\n        ...this.sizeableClasses,\n      }\n    },\n    contained (): boolean {\n      return Boolean(\n        !this.isFlat &&\n        !this.depressed &&\n        // Contained class only adds elevation\n        // is not needed if user provides value\n        !this.elevation\n      )\n    },\n    computedRipple (): RippleOptions | boolean {\n      const defaultRipple = this.icon || this.fab ? { circle: true } : true\n      if (this.disabled) return false\n      else return this.ripple != null ? this.ripple : defaultRipple\n    },\n    isFlat (): boolean {\n      return Boolean(\n        this.icon ||\n        this.text ||\n        this.outlined\n      )\n    },\n    isRound (): boolean {\n      return Boolean(\n        this.icon ||\n        this.fab\n      )\n    },\n    styles (): object {\n      return {\n        ...this.measurableStyles,\n      }\n    },\n  },\n\n  created () {\n    const breakingProps = [\n      ['flat', 'text'],\n      ['outline', 'outlined'],\n      ['round', 'rounded'],\n    ]\n\n    /* istanbul ignore next */\n    breakingProps.forEach(([original, replacement]) => {\n      if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n    })\n  },\n\n  methods: {\n    click (e: MouseEvent): void {\n      // TODO: Remove this in v3\n      !this.retainFocusOnClick && !this.fab && e.detail && this.$el.blur()\n      this.$emit('click', e)\n\n      this.btnToggle && this.toggle()\n    },\n    genContent (): VNode {\n      return this.$createElement('span', {\n        staticClass: 'v-btn__content',\n      }, this.$slots.default)\n    },\n    genLoader (): VNode {\n      return this.$createElement('span', {\n        class: 'v-btn__loader',\n      }, this.$slots.loader || [this.$createElement(VProgressCircular, {\n        props: {\n          indeterminate: true,\n          size: 23,\n          width: 2,\n        },\n      })])\n    },\n  },\n\n  render (h): VNode {\n    const children = [\n      this.genContent(),\n      this.loading && this.genLoader(),\n    ]\n    const setColor = !this.isFlat ? this.setBackgroundColor : this.setTextColor\n    const { tag, data } = this.generateRouteLink()\n\n    if (tag === 'button') {\n      data.attrs!.type = this.type\n      data.attrs!.disabled = this.disabled\n    }\n    data.attrs!.value = ['string', 'number'].includes(typeof this.value)\n      ? this.value\n      : JSON.stringify(this.value)\n\n    return h(tag, this.disabled ? data : setColor(this.color, data), children)\n  },\n})\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPrimitive(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n  var S = String(requireObjectCoercible(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\n","module.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// Styles\nimport './VCounter.sass'\n\n// Mixins\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n  name: 'v-counter',\n\n  functional: true,\n\n  props: {\n    value: {\n      type: [Number, String],\n      default: '',\n    },\n    max: [Number, String],\n  },\n\n  render (h, ctx): VNode {\n    const { props } = ctx\n    const max = parseInt(props.max, 10)\n    const value = parseInt(props.value, 10)\n    const content = max ? `${value} / ${max}` : String(props.value)\n    const isGreater = max && (value > max)\n\n    return h('div', {\n      staticClass: 'v-counter',\n      class: {\n        'error--text': isGreater,\n        ...functionalThemeClasses(ctx),\n      },\n    }, content)\n  },\n})\n","import VCounter from './VCounter'\n\nexport { VCounter }\nexport default VCounter\n","// Directives\nimport Intersect from '../../directives/intersect'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\n\nexport default function intersectable (options: { onVisible: string[] }) {\n  if (typeof window === 'undefined' || !('IntersectionObserver' in window)) {\n    // do nothing because intersection observer is not available\n    return Vue.extend({ name: 'intersectable' })\n  }\n\n  return Vue.extend({\n    name: 'intersectable',\n\n    mounted () {\n      Intersect.inserted(this.$el as HTMLElement, {\n        name: 'intersect',\n        value: this.onObserve,\n      })\n    },\n\n    destroyed () {\n      Intersect.unbind(this.$el as HTMLElement)\n    },\n\n    methods: {\n      onObserve (entries: IntersectionObserverEntry[], observer: IntersectionObserver, isIntersecting: boolean) {\n        if (!isIntersecting) return\n\n        for (let i = 0, length = options.onVisible.length; i < length; i++) {\n          const callback = (this as any)[options.onVisible[i]]\n\n          if (typeof callback === 'function') {\n            callback()\n            continue\n          }\n\n          consoleWarn(options.onVisible[i] + ' method is not available on the instance but referenced in intersectable mixin options')\n        }\n      },\n    },\n  })\n}\n","// Styles\nimport './VTextField.sass'\n\n// Extensions\nimport VInput from '../VInput'\n\n// Components\nimport VCounter from '../VCounter'\nimport VLabel from '../VLabel'\n\n// Mixins\nimport Intersectable from '../../mixins/intersectable'\nimport Loadable from '../../mixins/loadable'\nimport Validatable from '../../mixins/validatable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Utilities\nimport { convertToUnit, keyCodes } from '../../util/helpers'\nimport { breaking, consoleWarn } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType } from 'vue/types'\n\nconst baseMixins = mixins(\n  VInput,\n  Intersectable({\n    onVisible: [\n      'setLabelWidth',\n      'setPrefixWidth',\n      'setPrependWidth',\n      'tryAutofocus',\n    ],\n  }),\n  Loadable,\n)\ninterface options extends InstanceType<typeof baseMixins> {\n  $refs: {\n    label: HTMLElement\n    input: HTMLInputElement\n    'prepend-inner': HTMLElement\n    prefix: HTMLElement\n    suffix: HTMLElement\n  }\n}\n\nconst dirtyTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n  name: 'v-text-field',\n\n  directives: { ripple },\n\n  inheritAttrs: false,\n\n  props: {\n    appendOuterIcon: String,\n    autofocus: Boolean,\n    clearable: Boolean,\n    clearIcon: {\n      type: String,\n      default: '$clear',\n    },\n    counter: [Boolean, Number, String],\n    counterValue: Function as PropType<(value: any) => number>,\n    filled: Boolean,\n    flat: Boolean,\n    fullWidth: Boolean,\n    label: String,\n    outlined: Boolean,\n    placeholder: String,\n    prefix: String,\n    prependInnerIcon: String,\n    reverse: Boolean,\n    rounded: Boolean,\n    shaped: Boolean,\n    singleLine: Boolean,\n    solo: Boolean,\n    soloInverted: Boolean,\n    suffix: String,\n    type: {\n      type: String,\n      default: 'text',\n    },\n  },\n\n  data: () => ({\n    badInput: false,\n    labelWidth: 0,\n    prefixWidth: 0,\n    prependWidth: 0,\n    initialValue: null,\n    isBooted: false,\n    isClearing: false,\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        ...VInput.options.computed.classes.call(this),\n        'v-text-field': true,\n        'v-text-field--full-width': this.fullWidth,\n        'v-text-field--prefix': this.prefix,\n        'v-text-field--single-line': this.isSingle,\n        'v-text-field--solo': this.isSolo,\n        'v-text-field--solo-inverted': this.soloInverted,\n        'v-text-field--solo-flat': this.flat,\n        'v-text-field--filled': this.filled,\n        'v-text-field--is-booted': this.isBooted,\n        'v-text-field--enclosed': this.isEnclosed,\n        'v-text-field--reverse': this.reverse,\n        'v-text-field--outlined': this.outlined,\n        'v-text-field--placeholder': this.placeholder,\n        'v-text-field--rounded': this.rounded,\n        'v-text-field--shaped': this.shaped,\n      }\n    },\n    computedColor (): string | undefined {\n      const computedColor = Validatable.options.computed.computedColor.call(this)\n\n      if (!this.soloInverted || !this.isFocused) return computedColor\n\n      return this.color || 'primary'\n    },\n    computedCounterValue (): number {\n      if (typeof this.counterValue === 'function') {\n        return this.counterValue(this.internalValue)\n      }\n      return (this.internalValue || '').toString().length\n    },\n    hasCounter (): boolean {\n      return this.counter !== false && this.counter != null\n    },\n    hasDetails (): boolean {\n      return VInput.options.computed.hasDetails.call(this) || this.hasCounter\n    },\n    internalValue: {\n      get (): any {\n        return this.lazyValue\n      },\n      set (val: any) {\n        this.lazyValue = val\n        this.$emit('input', this.lazyValue)\n      },\n    },\n    isDirty (): boolean {\n      return (this.lazyValue != null &&\n        this.lazyValue.toString().length > 0) ||\n        this.badInput\n    },\n    isEnclosed (): boolean {\n      return (\n        this.filled ||\n        this.isSolo ||\n        this.outlined\n      )\n    },\n    isLabelActive (): boolean {\n      return this.isDirty || dirtyTypes.includes(this.type)\n    },\n    isSingle (): boolean {\n      return (\n        this.isSolo ||\n        this.singleLine ||\n        this.fullWidth ||\n        // https://material.io/components/text-fields/#filled-text-field\n        (this.filled && !this.hasLabel)\n      )\n    },\n    isSolo (): boolean {\n      return this.solo || this.soloInverted\n    },\n    labelPosition (): Record<'left' | 'right', string | number | undefined> {\n      let offset = (this.prefix && !this.labelValue) ? this.prefixWidth : 0\n\n      if (this.labelValue && this.prependWidth) offset -= this.prependWidth\n\n      return (this.$vuetify.rtl === this.reverse) ? {\n        left: offset,\n        right: 'auto',\n      } : {\n        left: 'auto',\n        right: offset,\n      }\n    },\n    showLabel (): boolean {\n      return this.hasLabel && (!this.isSingle || (!this.isLabelActive && !this.placeholder))\n    },\n    labelValue (): boolean {\n      return !this.isSingle &&\n        Boolean(this.isFocused || this.isLabelActive || this.placeholder)\n    },\n  },\n\n  watch: {\n    labelValue: 'setLabelWidth',\n    outlined: 'setLabelWidth',\n    label () {\n      this.$nextTick(this.setLabelWidth)\n    },\n    prefix () {\n      this.$nextTick(this.setPrefixWidth)\n    },\n    isFocused: 'updateValue',\n    value (val) {\n      this.lazyValue = val\n    },\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('box')) {\n      breaking('box', 'filled', this)\n    }\n\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('browser-autocomplete')) {\n      breaking('browser-autocomplete', 'autocomplete', this)\n    }\n\n    /* istanbul ignore if */\n    if (this.shaped && !(this.filled || this.outlined || this.isSolo)) {\n      consoleWarn('shaped should be used with either filled or outlined', this)\n    }\n  },\n\n  mounted () {\n    this.autofocus && this.tryAutofocus()\n    this.setLabelWidth()\n    this.setPrefixWidth()\n    this.setPrependWidth()\n    requestAnimationFrame(() => (this.isBooted = true))\n  },\n\n  methods: {\n    /** @public */\n    focus () {\n      this.onFocus()\n    },\n    /** @public */\n    blur (e?: Event) {\n      // https://github.com/vuetifyjs/vuetify/issues/5913\n      // Safari tab order gets broken if called synchronous\n      window.requestAnimationFrame(() => {\n        this.$refs.input && this.$refs.input.blur()\n      })\n    },\n    clearableCallback () {\n      this.$refs.input && this.$refs.input.focus()\n      this.$nextTick(() => this.internalValue = null)\n    },\n    genAppendSlot () {\n      const slot = []\n\n      if (this.$slots['append-outer']) {\n        slot.push(this.$slots['append-outer'] as VNode[])\n      } else if (this.appendOuterIcon) {\n        slot.push(this.genIcon('appendOuter'))\n      }\n\n      return this.genSlot('append', 'outer', slot)\n    },\n    genPrependInnerSlot () {\n      const slot = []\n\n      if (this.$slots['prepend-inner']) {\n        slot.push(this.$slots['prepend-inner'] as VNode[])\n      } else if (this.prependInnerIcon) {\n        slot.push(this.genIcon('prependInner'))\n      }\n\n      return this.genSlot('prepend', 'inner', slot)\n    },\n    genIconSlot () {\n      const slot = []\n\n      if (this.$slots['append']) {\n        slot.push(this.$slots['append'] as VNode[])\n      } else if (this.appendIcon) {\n        slot.push(this.genIcon('append'))\n      }\n\n      return this.genSlot('append', 'inner', slot)\n    },\n    genInputSlot () {\n      const input = VInput.options.methods.genInputSlot.call(this)\n\n      const prepend = this.genPrependInnerSlot()\n\n      if (prepend) {\n        input.children = input.children || []\n        input.children.unshift(prepend)\n      }\n\n      return input\n    },\n    genClearIcon () {\n      if (!this.clearable) return null\n\n      const data = this.isDirty ? undefined : { attrs: { disabled: true } }\n\n      return this.genSlot('append', 'inner', [\n        this.genIcon('clear', this.clearableCallback, data),\n      ])\n    },\n    genCounter () {\n      if (!this.hasCounter) return null\n\n      const max = this.counter === true ? this.attrs$.maxlength : this.counter\n\n      return this.$createElement(VCounter, {\n        props: {\n          dark: this.dark,\n          light: this.light,\n          max,\n          value: this.computedCounterValue,\n        },\n      })\n    },\n    genControl () {\n      return VInput.options.methods.genControl.call(this)\n    },\n    genDefaultSlot () {\n      return [\n        this.genFieldset(),\n        this.genTextFieldSlot(),\n        this.genClearIcon(),\n        this.genIconSlot(),\n        this.genProgress(),\n      ]\n    },\n    genFieldset () {\n      if (!this.outlined) return null\n\n      return this.$createElement('fieldset', {\n        attrs: {\n          'aria-hidden': true,\n        },\n      }, [this.genLegend()])\n    },\n    genLabel () {\n      if (!this.showLabel) return null\n\n      const data = {\n        props: {\n          absolute: true,\n          color: this.validationState,\n          dark: this.dark,\n          disabled: this.isDisabled,\n          focused: !this.isSingle && (this.isFocused || !!this.validationState),\n          for: this.computedId,\n          left: this.labelPosition.left,\n          light: this.light,\n          right: this.labelPosition.right,\n          value: this.labelValue,\n        },\n      }\n\n      return this.$createElement(VLabel, data, this.$slots.label || this.label)\n    },\n    genLegend () {\n      const width = !this.singleLine && (this.labelValue || this.isDirty) ? this.labelWidth : 0\n      const span = this.$createElement('span', {\n        domProps: { innerHTML: '&#8203;' },\n      })\n\n      return this.$createElement('legend', {\n        style: {\n          width: !this.isSingle ? convertToUnit(width) : undefined,\n        },\n      }, [span])\n    },\n    genInput () {\n      const listeners = Object.assign({}, this.listeners$)\n      delete listeners['change'] // Change should not be bound externally\n\n      return this.$createElement('input', {\n        style: {},\n        domProps: {\n          value: (this.type === 'number' && Object.is(this.lazyValue, -0)) ? '-0' : this.lazyValue,\n        },\n        attrs: {\n          ...this.attrs$,\n          autofocus: this.autofocus,\n          disabled: this.isDisabled,\n          id: this.computedId,\n          placeholder: this.placeholder,\n          readonly: this.isReadonly,\n          type: this.type,\n        },\n        on: Object.assign(listeners, {\n          blur: this.onBlur,\n          input: this.onInput,\n          focus: this.onFocus,\n          keydown: this.onKeyDown,\n        }),\n        ref: 'input',\n      })\n    },\n    genMessages () {\n      if (!this.showDetails) return null\n\n      const messagesNode = VInput.options.methods.genMessages.call(this)\n      const counterNode = this.genCounter()\n\n      return this.$createElement('div', {\n        staticClass: 'v-text-field__details',\n      }, [\n        messagesNode,\n        counterNode,\n      ])\n    },\n    genTextFieldSlot () {\n      return this.$createElement('div', {\n        staticClass: 'v-text-field__slot',\n      }, [\n        this.genLabel(),\n        this.prefix ? this.genAffix('prefix') : null,\n        this.genInput(),\n        this.suffix ? this.genAffix('suffix') : null,\n      ])\n    },\n    genAffix (type: 'prefix' | 'suffix') {\n      return this.$createElement('div', {\n        class: `v-text-field__${type}`,\n        ref: type,\n      }, this[type])\n    },\n    onBlur (e?: Event) {\n      this.isFocused = false\n      e && this.$nextTick(() => this.$emit('blur', e))\n    },\n    onClick () {\n      if (this.isFocused || this.isDisabled || !this.$refs.input) return\n\n      this.$refs.input.focus()\n    },\n    onFocus (e?: Event) {\n      if (!this.$refs.input) return\n\n      if (document.activeElement !== this.$refs.input) {\n        return this.$refs.input.focus()\n      }\n\n      if (!this.isFocused) {\n        this.isFocused = true\n        e && this.$emit('focus', e)\n      }\n    },\n    onInput (e: Event) {\n      const target = e.target as HTMLInputElement\n      this.internalValue = target.value\n      this.badInput = target.validity && target.validity.badInput\n    },\n    onKeyDown (e: KeyboardEvent) {\n      if (e.keyCode === keyCodes.enter) this.$emit('change', this.internalValue)\n\n      this.$emit('keydown', e)\n    },\n    onMouseDown (e: Event) {\n      // Prevent input from being blurred\n      if (e.target !== this.$refs.input) {\n        e.preventDefault()\n        e.stopPropagation()\n      }\n\n      VInput.options.methods.onMouseDown.call(this, e)\n    },\n    onMouseUp (e: Event) {\n      if (this.hasMouseDown) this.focus()\n\n      VInput.options.methods.onMouseUp.call(this, e)\n    },\n    setLabelWidth () {\n      if (!this.outlined) return\n\n      this.labelWidth = this.$refs.label\n        ? Math.min(this.$refs.label.scrollWidth * 0.75 + 6, (this.$el as HTMLElement).offsetWidth - 24)\n        : 0\n    },\n    setPrefixWidth () {\n      if (!this.$refs.prefix) return\n\n      this.prefixWidth = this.$refs.prefix.offsetWidth\n    },\n    setPrependWidth () {\n      if (!this.outlined || !this.$refs['prepend-inner']) return\n\n      this.prependWidth = this.$refs['prepend-inner'].offsetWidth\n    },\n    tryAutofocus () {\n      if (\n        !this.autofocus ||\n        typeof document === 'undefined' ||\n        !this.$refs.input ||\n        document.activeElement === this.$refs.input\n      ) return false\n\n      this.$refs.input.focus()\n\n      return true\n    },\n    updateValue (val: boolean) {\n      // Sets validationState from validatable\n      this.hasColor = val\n\n      if (val) {\n        this.initialValue = this.lazyValue\n      } else if (this.initialValue !== this.lazyValue) {\n        this.$emit('change', this.lazyValue)\n      }\n    },\n  },\n})\n","// Styles\nimport './VList.sass'\nimport VListGroup from './VListGroup'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Types\nimport { VNode } from 'vue'\n\ntype VListGroupInstance = InstanceType<typeof VListGroup>\n\ninterface options extends InstanceType<typeof VSheet> {\n  isInMenu: boolean\n  isInNav: boolean\n}\n\n/* @vue/component */\nexport default VSheet.extend<options>().extend({\n  name: 'v-list',\n\n  provide (): object {\n    return {\n      isInList: true,\n      list: this,\n    }\n  },\n\n  inject: {\n    isInMenu: {\n      default: false,\n    },\n    isInNav: {\n      default: false,\n    },\n  },\n\n  props: {\n    dense: Boolean,\n    disabled: Boolean,\n    expand: Boolean,\n    flat: Boolean,\n    nav: Boolean,\n    rounded: Boolean,\n    subheader: Boolean,\n    threeLine: Boolean,\n    twoLine: Boolean,\n  },\n\n  data: () => ({\n    groups: [] as VListGroupInstance[],\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        ...VSheet.options.computed.classes.call(this),\n        'v-list--dense': this.dense,\n        'v-list--disabled': this.disabled,\n        'v-list--flat': this.flat,\n        'v-list--nav': this.nav,\n        'v-list--rounded': this.rounded,\n        'v-list--subheader': this.subheader,\n        'v-list--two-line': this.twoLine,\n        'v-list--three-line': this.threeLine,\n      }\n    },\n  },\n\n  methods: {\n    register (content: VListGroupInstance) {\n      this.groups.push(content)\n    },\n    unregister (content: VListGroupInstance) {\n      const index = this.groups.findIndex(g => g._uid === content._uid)\n\n      if (index > -1) this.groups.splice(index, 1)\n    },\n    listClick (uid: number) {\n      if (this.expand) return\n\n      for (const group of this.groups) {\n        group.toggle(uid)\n      }\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-list',\n      class: this.classes,\n      style: this.styles,\n      attrs: {\n        role: this.isInNav || this.isInMenu ? undefined : 'list',\n        ...this.attrs$,\n      },\n    }\n\n    return h(this.tag, this.setBackgroundColor(this.color, data), [this.$slots.default])\n  },\n})\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n  store.inspectSource = function (it) {\n    return functionToString.call(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? charAt(S, index).length : 1);\n};\n","import { ColorInt, XYZ } from '../colorUtils'\nimport { clamp } from '../../util/helpers'\n\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [\n  [3.2406, -1.5372, -0.4986],\n  [-0.9689, 1.8758, 0.0415],\n  [0.0557, -0.2040, 1.0570],\n]\n\n// Forward gamma adjust\nconst srgbForwardTransform = (C: number): number => (\n  C <= 0.0031308\n    ? C * 12.92\n    : 1.055 * C ** (1 / 2.4) - 0.055\n)\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [\n  [0.4124, 0.3576, 0.1805],\n  [0.2126, 0.7152, 0.0722],\n  [0.0193, 0.1192, 0.9505],\n]\n\n// Reverse gamma adjust\nconst srgbReverseTransform = (C: number): number => (\n  C <= 0.04045\n    ? C / 12.92\n    : ((C + 0.055) / 1.055) ** 2.4\n)\n\nexport function fromXYZ (xyz: XYZ): ColorInt {\n  const rgb = Array(3)\n  const transform = srgbForwardTransform\n  const matrix = srgbForwardMatrix\n\n  // Matrix transform, then gamma adjustment\n  for (let i = 0; i < 3; ++i) {\n    rgb[i] = Math.round(clamp(transform(\n      matrix[i][0] * xyz[0] +\n      matrix[i][1] * xyz[1] +\n      matrix[i][2] * xyz[2]\n    )) * 255)\n  }\n\n  // Rescale back to [0, 255]\n  return (rgb[0] << 16) + (rgb[1] << 8) + (rgb[2] << 0)\n}\n\nexport function toXYZ (rgb: ColorInt): XYZ {\n  const xyz: XYZ = [0, 0, 0]\n  const transform = srgbReverseTransform\n  const matrix = srgbReverseMatrix\n\n  // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n  const r = transform((rgb >> 16 & 0xff) / 255)\n  const g = transform((rgb >> 8 & 0xff) / 255)\n  const b = transform((rgb >> 0 & 0xff) / 255)\n\n  // Matrix color space transform\n  for (let i = 0; i < 3; ++i) {\n    xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b\n  }\n\n  return xyz\n}\n","import Vue from 'vue'\n\nexport default Vue.extend({\n  name: 'elevatable',\n\n  props: {\n    elevation: [Number, String],\n  },\n\n  computed: {\n    computedElevation (): string | number | undefined {\n      return this.elevation\n    },\n    elevationClasses (): Record<string, boolean> {\n      const elevation = this.computedElevation\n\n      if (elevation == null) return {}\n      if (isNaN(parseInt(elevation))) return {}\n      return { [`elevation-${this.elevation}`]: true }\n    },\n  },\n})\n","// Styles\nimport './VSheet.sass'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Colorable from '../../mixins/colorable'\nimport Elevatable from '../../mixins/elevatable'\nimport Measurable from '../../mixins/measurable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n  BindsAttrs,\n  Colorable,\n  Elevatable,\n  Measurable,\n  Roundable,\n  Themeable\n).extend({\n  name: 'v-sheet',\n\n  props: {\n    outlined: Boolean,\n    shaped: Boolean,\n    tag: {\n      type: String,\n      default: 'div',\n    },\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-sheet': true,\n        'v-sheet--outlined': this.outlined,\n        'v-sheet--shaped': this.shaped,\n        ...this.themeClasses,\n        ...this.elevationClasses,\n        ...this.roundedClasses,\n      }\n    },\n    styles (): object {\n      return this.measurableStyles\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      class: this.classes,\n      style: this.styles,\n      on: this.listeners$,\n    }\n\n    return h(\n      this.tag,\n      this.setBackgroundColor(this.color, data),\n      this.$slots.default\n    )\n  },\n})\n","import { VNodeDirective } from 'vue/types/vnode'\n\ntype ObserveHandler = (\n  entries: IntersectionObserverEntry[],\n  observer: IntersectionObserver,\n  isIntersecting: boolean,\n) => void\n\ninterface ObserveVNodeDirective extends Omit<VNodeDirective, 'modifiers'> {\n  value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n  modifiers?: {\n    once?: boolean\n    quiet?: boolean\n  }\n}\n\nfunction inserted (el: HTMLElement, binding: ObserveVNodeDirective) {\n  const modifiers = binding.modifiers || {}\n  const value = binding.value\n  const { handler, options } = typeof value === 'object'\n    ? value\n    : { handler: value, options: {} }\n  const observer = new IntersectionObserver((\n    entries: IntersectionObserverEntry[] = [],\n    observer: IntersectionObserver\n  ) => {\n    /* istanbul ignore if */\n    if (!el._observe) return // Just in case, should never fire\n\n    // If is not quiet or has already been\n    // initted, invoke the user callback\n    if (\n      handler && (\n        !modifiers.quiet ||\n        el._observe.init\n      )\n    ) {\n      const isIntersecting = Boolean(entries.find(entry => entry.isIntersecting))\n\n      handler(entries, observer, isIntersecting)\n    }\n\n    // If has already been initted and\n    // has the once modifier, unbind\n    if (el._observe.init && modifiers.once) unbind(el)\n    // Otherwise, mark the observer as initted\n    else (el._observe.init = true)\n  }, options)\n\n  el._observe = { init: false, observer }\n\n  observer.observe(el)\n}\n\nfunction unbind (el: HTMLElement) {\n  /* istanbul ignore if */\n  if (!el._observe) return\n\n  el._observe.observer.unobserve(el)\n  delete el._observe\n}\n\nexport const Intersect = {\n  inserted,\n  unbind,\n}\n\nexport default Intersect\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/;\n  var re2 = /b*/g;\n  nativeExec.call(re1, 'a');\n  nativeExec.call(re2, 'a');\n  return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n  patchedExec = function exec(str) {\n    var re = this;\n    var lastIndex, reCopy, match, i;\n    var sticky = UNSUPPORTED_Y && re.sticky;\n    var flags = regexpFlags.call(re);\n    var source = re.source;\n    var charsAdded = 0;\n    var strCopy = str;\n\n    if (sticky) {\n      flags = flags.replace('y', '');\n      if (flags.indexOf('g') === -1) {\n        flags += 'g';\n      }\n\n      strCopy = String(str).slice(re.lastIndex);\n      // Support anchored sticky behavior.\n      if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n        source = '(?: ' + source + ')';\n        strCopy = ' ' + strCopy;\n        charsAdded++;\n      }\n      // ^(? + rx + ) is needed, in combination with some str slicing, to\n      // simulate the 'y' flag.\n      reCopy = new RegExp('^(?:' + source + ')', flags);\n    }\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n    match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n    if (sticky) {\n      if (match) {\n        match.input = match.input.slice(charsAdded);\n        match[0] = match[0].slice(charsAdded);\n        match.index = re.lastIndex;\n        re.lastIndex += match[0].length;\n      } else re.lastIndex = 0;\n    } else if (UPDATES_LAST_INDEX_WRONG && match) {\n      re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n      nativeReplace.call(match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : typeof detection == 'function' ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n  try {\n    return decodeURIComponent(sequence);\n  } catch (error) {\n    return sequence;\n  }\n};\n\nvar deserialize = function (it) {\n  var result = it.replace(plus, ' ');\n  var bytes = 4;\n  try {\n    return decodeURIComponent(result);\n  } catch (error) {\n    while (bytes) {\n      result = result.replace(percentSequence(bytes--), percentDecode);\n    }\n    return result;\n  }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+'\n};\n\nvar replacer = function (match) {\n  return replace[match];\n};\n\nvar serialize = function (it) {\n  return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n  if (query) {\n    var attributes = query.split('&');\n    var index = 0;\n    var attribute, entry;\n    while (index < attributes.length) {\n      attribute = attributes[index++];\n      if (attribute.length) {\n        entry = attribute.split('=');\n        result.push({\n          key: deserialize(entry.shift()),\n          value: deserialize(entry.join('='))\n        });\n      }\n    }\n  }\n};\n\nvar updateSearchParams = function (query) {\n  this.entries.length = 0;\n  parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n  if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n  setInternalState(this, {\n    type: URL_SEARCH_PARAMS_ITERATOR,\n    iterator: getIterator(getInternalParamsState(params).entries),\n    kind: kind\n  });\n}, 'Iterator', function next() {\n  var state = getInternalIteratorState(this);\n  var kind = state.kind;\n  var step = state.iterator.next();\n  var entry = step.value;\n  if (!step.done) {\n    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n  } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n  anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n  var init = arguments.length > 0 ? arguments[0] : undefined;\n  var that = this;\n  var entries = [];\n  var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n  setInternalState(that, {\n    type: URL_SEARCH_PARAMS,\n    entries: entries,\n    updateURL: function () { /* empty */ },\n    updateSearchParams: updateSearchParams\n  });\n\n  if (init !== undefined) {\n    if (isObject(init)) {\n      iteratorMethod = getIteratorMethod(init);\n      if (typeof iteratorMethod === 'function') {\n        iterator = iteratorMethod.call(init);\n        next = iterator.next;\n        while (!(step = next.call(iterator)).done) {\n          entryIterator = getIterator(anObject(step.value));\n          entryNext = entryIterator.next;\n          if (\n            (first = entryNext.call(entryIterator)).done ||\n            (second = entryNext.call(entryIterator)).done ||\n            !entryNext.call(entryIterator).done\n          ) throw TypeError('Expected sequence with length 2');\n          entries.push({ key: first.value + '', value: second.value + '' });\n        }\n      } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n    } else {\n      parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n    }\n  }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n  // `URLSearchParams.prototype.appent` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n  append: function append(name, value) {\n    validateArgumentsLength(arguments.length, 2);\n    var state = getInternalParamsState(this);\n    state.entries.push({ key: name + '', value: value + '' });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.delete` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n  'delete': function (name) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index].key === key) entries.splice(index, 1);\n      else index++;\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.get` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n  get: function get(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) return entries[index].value;\n    }\n    return null;\n  },\n  // `URLSearchParams.prototype.getAll` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n  getAll: function getAll(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var result = [];\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) result.push(entries[index].value);\n    }\n    return result;\n  },\n  // `URLSearchParams.prototype.has` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n  has: function has(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index++].key === key) return true;\n    }\n    return false;\n  },\n  // `URLSearchParams.prototype.set` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n  set: function set(name, value) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var found = false;\n    var key = name + '';\n    var val = value + '';\n    var index = 0;\n    var entry;\n    for (; index < entries.length; index++) {\n      entry = entries[index];\n      if (entry.key === key) {\n        if (found) entries.splice(index--, 1);\n        else {\n          found = true;\n          entry.value = val;\n        }\n      }\n    }\n    if (!found) entries.push({ key: key, value: val });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.sort` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n  sort: function sort() {\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    // Array#sort is not stable in some engines\n    var slice = entries.slice();\n    var entry, entriesIndex, sliceIndex;\n    entries.length = 0;\n    for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n      entry = slice[sliceIndex];\n      for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n        if (entries[entriesIndex].key > entry.key) {\n          entries.splice(entriesIndex, 0, entry);\n          break;\n        }\n      }\n      if (entriesIndex === sliceIndex) entries.push(entry);\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.forEach` method\n  forEach: function forEach(callback /* , thisArg */) {\n    var entries = getInternalParamsState(this).entries;\n    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      boundFunction(entry.value, entry.key, this);\n    }\n  },\n  // `URLSearchParams.prototype.keys` method\n  keys: function keys() {\n    return new URLSearchParamsIterator(this, 'keys');\n  },\n  // `URLSearchParams.prototype.values` method\n  values: function values() {\n    return new URLSearchParamsIterator(this, 'values');\n  },\n  // `URLSearchParams.prototype.entries` method\n  entries: function entries() {\n    return new URLSearchParamsIterator(this, 'entries');\n  }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n  var entries = getInternalParamsState(this).entries;\n  var result = [];\n  var index = 0;\n  var entry;\n  while (index < entries.length) {\n    entry = entries[index++];\n    result.push(serialize(entry.key) + '=' + serialize(entry.value));\n  } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n  URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n  $({ global: true, enumerable: true, forced: true }, {\n    fetch: function fetch(input /* , init */) {\n      var args = [input];\n      var init, body, headers;\n      if (arguments.length > 1) {\n        init = arguments[1];\n        if (isObject(init)) {\n          body = init.body;\n          if (classof(body) === URL_SEARCH_PARAMS) {\n            headers = init.headers ? new Headers(init.headers) : new Headers();\n            if (!headers.has('content-type')) {\n              headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n            }\n            init = create(init, {\n              body: createPropertyDescriptor(0, String(body)),\n              headers: createPropertyDescriptor(0, headers)\n            });\n          }\n        }\n        args.push(init);\n      } return $fetch.apply(this, args);\n    }\n  });\n}\n\nmodule.exports = {\n  URLSearchParams: URLSearchParamsConstructor,\n  getState: getInternalParamsState\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n  link: function link(url) {\n    return createHTML(this, 'a', 'href', url);\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n  var array = [];\n  array[IS_CONCAT_SPREADABLE] = false;\n  return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n  if (!isObject(O)) return false;\n  var spreadable = O[IS_CONCAT_SPREADABLE];\n  return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n  concat: function concat(arg) { // eslint-disable-line no-unused-vars\n    var O = toObject(this);\n    var A = arraySpeciesCreate(O, 0);\n    var n = 0;\n    var i, k, length, len, E;\n    for (i = -1, length = arguments.length; i < length; i++) {\n      E = i === -1 ? O : arguments[i];\n      if (isConcatSpreadable(E)) {\n        len = toLength(E.length);\n        if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n      } else {\n        if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n        createProperty(A, n++, E);\n      }\n    }\n    A.length = n;\n    return A;\n  }\n});\n","import VCard from './VCard'\nimport { createSimpleFunctional } from '../../util/helpers'\n\nconst VCardActions = createSimpleFunctional('v-card__actions')\nconst VCardSubtitle = createSimpleFunctional('v-card__subtitle')\nconst VCardText = createSimpleFunctional('v-card__text')\nconst VCardTitle = createSimpleFunctional('v-card__title')\n\nexport {\n  VCard,\n  VCardActions,\n  VCardSubtitle,\n  VCardText,\n  VCardTitle,\n}\n\nexport default {\n  $_vuetify_subcomponents: {\n    VCard,\n    VCardActions,\n    VCardSubtitle,\n    VCardText,\n    VCardTitle,\n  },\n}\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n  var iteratorMethod = getIteratorMethod(it);\n  if (typeof iteratorMethod != 'function') {\n    throw TypeError(String(it) + ' is not iterable');\n  } return anObject(iteratorMethod.call(it));\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (error) {\n    var returnMethod = iterator['return'];\n    if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n    throw error;\n  }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return nativeDefineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","import VIcon from './VIcon'\n\nexport { VIcon }\nexport default VIcon\n","// Utilities\nimport { removed } from '../../util/console'\n\n// Types\nimport Vue, { VNode } from 'vue'\ninterface Toggleable extends Vue {\n  isActive?: boolean\n}\n\n/**\n * Bootable\n * @mixin\n *\n * Used to add lazy content functionality to components\n * Looks for change in \"isActive\" to automatically boot\n * Otherwise can be set manually\n */\n/* @vue/component */\nexport default Vue.extend<Vue & Toggleable>().extend({\n  name: 'bootable',\n\n  props: {\n    eager: Boolean,\n  },\n\n  data: () => ({\n    isBooted: false,\n  }),\n\n  computed: {\n    hasContent (): boolean | undefined {\n      return this.isBooted || this.eager || this.isActive\n    },\n  },\n\n  watch: {\n    isActive () {\n      this.isBooted = true\n    },\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if ('lazy' in this.$attrs) {\n      removed('lazy', this)\n    }\n  },\n\n  methods: {\n    showLazyContent (content?: () => VNode[]): VNode[] {\n      return (this.hasContent && content) ? content() : [this.$createElement()]\n    },\n  },\n})\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n  return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n  // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n  var re = RE('a', 'y');\n  re.lastIndex = 2;\n  return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n  var re = RE('^r', 'gy');\n  re.lastIndex = 2;\n  return re.exec('str') != null;\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n  join: function join(separator) {\n    return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n  }\n});\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'roundable',\n\n  props: {\n    rounded: [Boolean, String],\n    tile: Boolean,\n  },\n\n  computed: {\n    roundedClasses (): Record<string, boolean> {\n      const composite = []\n      const rounded = typeof this.rounded === 'string'\n        ? String(this.rounded)\n        : this.rounded === true\n\n      if (this.tile) {\n        composite.push('rounded-0')\n      } else if (typeof rounded === 'string') {\n        const values = rounded.split(' ')\n\n        for (const value of values) {\n          composite.push(`rounded-${value}`)\n        }\n      } else if (rounded) {\n        composite.push('rounded')\n      }\n\n      return composite.length > 0 ? {\n        [composite.join(' ')]: true,\n      } : {}\n    },\n  },\n})\n","import { VNodeDirective } from 'vue/types/vnode'\n\ninterface ClickOutsideBindingArgs {\n  handler: (e: Event) => void\n  closeConditional?: (e: Event) => boolean\n  include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirective extends VNodeDirective {\n  value?: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n  return true\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirective): void {\n  const handler = typeof binding.value === 'function' ? binding.value : binding.value!.handler\n\n  const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n  // The include element callbacks below can be expensive\n  // so we should avoid calling them when we're not active.\n  // Explicitly check for false to allow fallback compatibility\n  // with non-toggleable components\n  if (!e || isActive(e) === false) return\n\n  // If click was triggered programmaticaly (domEl.click()) then\n  // it shouldn't be treated as click-outside\n  // Chrome/Firefox support isTrusted property\n  // IE/Edge support pointerType property (empty if not triggered\n  // by pointing device)\n  if (('isTrusted' in e && !e.isTrusted) ||\n    ('pointerType' in e && !e.pointerType)\n  ) return\n\n  // Check if additional elements were passed to be included in check\n  // (click must be outside all included elements, if any)\n  const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n  // Add the root element for the component this directive was defined on\n  elements.push(el)\n\n  // Check if it's a click outside our elements, and then if our callback returns true.\n  // Non-toggleable components should take action in their callback and return falsy.\n  // Toggleable can return true if it wants to deactivate.\n  // Note that, because we're in the capture phase, this callback will occur before\n  // the bubbling click event on any outside elements.\n  !elements.some(el => el.contains(e.target as Node)) && setTimeout(() => {\n    isActive(e) && handler && handler(e)\n  }, 0)\n}\n\nexport const ClickOutside = {\n  // [data-app] may not be found\n  // if using bind, inserted makes\n  // sure that the root element is\n  // available, iOS does not support\n  // clicks on body\n  inserted (el: HTMLElement, binding: ClickOutsideDirective) {\n    const onClick = (e: Event) => directive(e as PointerEvent, el, binding)\n    // iOS does not recognize click events on document\n    // or body, this is the entire purpose of the v-app\n    // component and [data-app], stop removing this\n    const app = document.querySelector('[data-app]') ||\n      document.body // This is only for unit tests\n    app.addEventListener('click', onClick, true)\n    el._clickOutside = onClick\n  },\n\n  unbind (el: HTMLElement) {\n    if (!el._clickOutside) return\n\n    const app = document.querySelector('[data-app]') ||\n      document.body // This is only for unit tests\n    app && app.removeEventListener('click', el._clickOutside, true)\n    delete el._clickOutside\n  },\n}\n\nexport default ClickOutside\n","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n  var targetIndex = start;\n  var sourceIndex = 0;\n  var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n  var element;\n\n  while (sourceIndex < sourceLen) {\n    if (sourceIndex in source) {\n      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n      if (depth > 0 && isArray(element)) {\n        targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n      } else {\n        if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n        target[targetIndex] = element;\n      }\n\n      targetIndex++;\n    }\n    sourceIndex++;\n  }\n  return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n  splice: function splice(start, deleteCount /* , ...items */) {\n    var O = toObject(this);\n    var len = toLength(O.length);\n    var actualStart = toAbsoluteIndex(start, len);\n    var argumentsLength = arguments.length;\n    var insertCount, actualDeleteCount, A, k, from, to;\n    if (argumentsLength === 0) {\n      insertCount = actualDeleteCount = 0;\n    } else if (argumentsLength === 1) {\n      insertCount = 0;\n      actualDeleteCount = len - actualStart;\n    } else {\n      insertCount = argumentsLength - 2;\n      actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n    }\n    if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n      throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n    }\n    A = arraySpeciesCreate(O, actualDeleteCount);\n    for (k = 0; k < actualDeleteCount; k++) {\n      from = actualStart + k;\n      if (from in O) createProperty(A, k, O[from]);\n    }\n    A.length = actualDeleteCount;\n    if (insertCount < actualDeleteCount) {\n      for (k = actualStart; k < len - actualDeleteCount; k++) {\n        from = k + actualDeleteCount;\n        to = k + insertCount;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n      for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n    } else if (insertCount > actualDeleteCount) {\n      for (k = len - actualDeleteCount; k > actualStart; k--) {\n        from = k + actualDeleteCount - 1;\n        to = k + insertCount - 1;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n    }\n    for (k = 0; k < insertCount; k++) {\n      O[k + actualStart] = arguments[k + 2];\n    }\n    O.length = len - actualDeleteCount + insertCount;\n    return A;\n  }\n});\n","import Vue, { VueConstructor } from 'vue'\n\n/* eslint-disable-next-line no-use-before-define */\nexport type Proxyable<T extends string = 'value'> = VueConstructor<Vue & {\n  internalLazyValue: unknown\n  internalValue: unknown\n} & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Proxyable<T>\nexport function factory (\n  prop = 'value',\n  event = 'change'\n) {\n  return Vue.extend({\n    name: 'proxyable',\n\n    model: {\n      prop,\n      event,\n    },\n\n    props: {\n      [prop]: {\n        required: false,\n      },\n    },\n\n    data () {\n      return {\n        internalLazyValue: this[prop] as unknown,\n      }\n    },\n\n    computed: {\n      internalValue: {\n        get (): unknown {\n          return this.internalLazyValue\n        },\n        set (val: any) {\n          if (val === this.internalLazyValue) return\n\n          this.internalLazyValue = val\n\n          this.$emit(event, val)\n        },\n      },\n    },\n\n    watch: {\n      [prop] (val) {\n        this.internalLazyValue = val\n      },\n    },\n  })\n}\n\n/* eslint-disable-next-line no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n  return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (O, P, Attributes) {\n  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n  nativeDefineProperty(O, P, Attributes);\n  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n  }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n  var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n  setInternalState(symbol, {\n    type: SYMBOL,\n    tag: tag,\n    description: description\n  });\n  if (!DESCRIPTORS) symbol.description = description;\n  return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n  anObject(O);\n  var key = toPrimitive(P, true);\n  anObject(Attributes);\n  if (has(AllSymbols, key)) {\n    if (!Attributes.enumerable) {\n      if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n      O[HIDDEN][key] = true;\n    } else {\n      if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n    } return setSymbolDescriptor(O, key, Attributes);\n  } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n  anObject(O);\n  var properties = toIndexedObject(Properties);\n  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n  $forEach(keys, function (key) {\n    if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n  });\n  return O;\n};\n\nvar $create = function create(O, Properties) {\n  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n  var P = toPrimitive(V, true);\n  var enumerable = nativePropertyIsEnumerable.call(this, P);\n  if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n  return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n  var it = toIndexedObject(O);\n  var key = toPrimitive(P, true);\n  if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n  var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n  if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n    descriptor.enumerable = true;\n  }\n  return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n  var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n  });\n  return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n  var result = [];\n  $forEach(names, function (key) {\n    if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n      result.push(AllSymbols[key]);\n    }\n  });\n  return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n    var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var tag = uid(description);\n    var setter = function (value) {\n      if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n    };\n    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n    return wrap(tag, description);\n  };\n\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return getInternalState(this).tag;\n  });\n\n  redefine($Symbol, 'withoutSetter', function (description) {\n    return wrap(uid(description), description);\n  });\n\n  propertyIsEnumerableModule.f = $propertyIsEnumerable;\n  definePropertyModule.f = $defineProperty;\n  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n  wrappedWellKnownSymbolModule.f = function (name) {\n    return wrap(wellKnownSymbol(name), name);\n  };\n\n  if (DESCRIPTORS) {\n    // https://github.com/tc39/proposal-Symbol-description\n    nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n      configurable: true,\n      get: function description() {\n        return getInternalState(this).description;\n      }\n    });\n    if (!IS_PURE) {\n      redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n    }\n  }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n  Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n  defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Symbol.for` method\n  // https://tc39.github.io/ecma262/#sec-symbol.for\n  'for': function (key) {\n    var string = String(key);\n    if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n    var symbol = $Symbol(string);\n    StringToSymbolRegistry[string] = symbol;\n    SymbolToStringRegistry[symbol] = string;\n    return symbol;\n  },\n  // `Symbol.keyFor` method\n  // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n    if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n  },\n  useSetter: function () { USE_SETTER = true; },\n  useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n  // `Object.create` method\n  // https://tc39.github.io/ecma262/#sec-object.create\n  create: $create,\n  // `Object.defineProperty` method\n  // https://tc39.github.io/ecma262/#sec-object.defineproperty\n  defineProperty: $defineProperty,\n  // `Object.defineProperties` method\n  // https://tc39.github.io/ecma262/#sec-object.defineproperties\n  defineProperties: $defineProperties,\n  // `Object.getOwnPropertyDescriptor` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n  // `Object.getOwnPropertyNames` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // `Object.getOwnPropertySymbols` method\n  // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    return getOwnPropertySymbolsModule.f(toObject(it));\n  }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n  var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n    var symbol = $Symbol();\n    // MS Edge converts symbol values to JSON as {}\n    return $stringify([symbol]) != '[null]'\n      // WebKit converts symbol values to JSON as null\n      || $stringify({ a: symbol }) != '{}'\n      // V8 throws on boxed symbols\n      || $stringify(Object(symbol)) != '{}';\n  });\n\n  $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n    // eslint-disable-next-line no-unused-vars\n    stringify: function stringify(it, replacer, space) {\n      var args = [it];\n      var index = 1;\n      var $replacer;\n      while (arguments.length > index) args.push(arguments[index++]);\n      $replacer = replacer;\n      if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n      if (!isArray(replacer)) replacer = function (key, value) {\n        if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n        if (!isSymbol(value)) return value;\n      };\n      args[1] = replacer;\n      return $stringify.apply(null, args);\n    }\n  });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n  createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// Types\nimport Vue, { VNode } from 'vue'\n\nexport default function VGrid (name: string) {\n  /* @vue/component */\n  return Vue.extend({\n    name: `v-${name}`,\n\n    functional: true,\n\n    props: {\n      id: String,\n      tag: {\n        type: String,\n        default: 'div',\n      },\n    },\n\n    render (h, { props, data, children }): VNode {\n      data.staticClass = (`${name} ${data.staticClass || ''}`).trim()\n\n      const { attrs } = data\n      if (attrs) {\n        // reset attrs to extract utility clases like pa-3\n        data.attrs = {}\n        const classes = Object.keys(attrs).filter(key => {\n          // TODO: Remove once resolved\n          // https://github.com/vuejs/vue/issues/7841\n          if (key === 'slot') return false\n\n          const value = attrs[key]\n\n          // add back data attributes like data-test=\"foo\" but do not\n          // add them as classes\n          if (key.startsWith('data-')) {\n            data.attrs![key] = value\n            return false\n          }\n\n          return value || typeof value === 'string'\n        })\n\n        if (classes.length) data.staticClass += ` ${classes.join(' ')}`\n      }\n\n      if (props.id) {\n        data.domProps = data.domProps || {}\n        data.domProps.id = props.id\n      }\n\n      return h(props.tag, data, children)\n    },\n  })\n}\n","import './_grid.sass'\nimport './VGrid.sass'\n\nimport Grid from './grid'\n\nimport mergeData from '../../util/mergeData'\n\n/* @vue/component */\nexport default Grid('container').extend({\n  name: 'v-container',\n  functional: true,\n  props: {\n    id: String,\n    tag: {\n      type: String,\n      default: 'div',\n    },\n    fluid: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  render (h, { props, data, children }) {\n    let classes\n    const { attrs } = data\n    if (attrs) {\n      // reset attrs to extract utility clases like pa-3\n      data.attrs = {}\n      classes = Object.keys(attrs).filter(key => {\n        // TODO: Remove once resolved\n        // https://github.com/vuejs/vue/issues/7841\n        if (key === 'slot') return false\n\n        const value = attrs[key]\n\n        // add back data attributes like data-test=\"foo\" but do not\n        // add them as classes\n        if (key.startsWith('data-')) {\n          data.attrs![key] = value\n          return false\n        }\n\n        return value || typeof value === 'string'\n      })\n    }\n\n    if (props.id) {\n      data.domProps = data.domProps || {}\n      data.domProps.id = props.id\n    }\n\n    return h(\n      props.tag,\n      mergeData(data, {\n        staticClass: 'container',\n        class: Array<any>({\n          'container--fluid': props.fluid,\n        }).concat(classes || []),\n      }),\n      children\n    )\n  },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('every');\n\n// `Array.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n  every: function every(callbackfn /* , thisArg */) {\n    return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n  Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n  from: from\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n  var method = [][METHOD_NAME];\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call,no-throw-literal\n    method.call(null, argument || function () { throw 1; }, 1);\n  });\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n  name: 'v-main',\n\n  props: {\n    tag: {\n      type: String,\n      default: 'main',\n    },\n  },\n\n  computed: {\n    styles (): object {\n      const {\n        bar, top, right, footer, insetFooter, bottom, left,\n      } = this.$vuetify.application\n\n      return {\n        paddingTop: `${top + bar}px`,\n        paddingRight: `${right}px`,\n        paddingBottom: `${footer + insetFooter + bottom}px`,\n        paddingLeft: `${left}px`,\n      }\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-main',\n      style: this.styles,\n      ref: 'main',\n    }\n\n    return h(this.tag, data, [\n      h(\n        'div',\n        { staticClass: 'v-main__wrap' },\n        this.$slots.default\n      ),\n    ])\n  },\n})\n","// Types\nimport { VNode } from 'vue'\n\n// Extensions\nimport VMain from '../VMain/VMain'\nimport { deprecate } from '../../util/console'\n\n/* @vue/component */\nexport default VMain.extend({\n  name: 'v-main',\n\n  created () {\n    deprecate('v-content', 'v-main', this)\n  },\n\n  render (h): VNode {\n    // Add the legacy class names\n    const node = VMain.options.render.call(this, h)\n\n    node.data!.staticClass += ' v-content'\n    node.children![0]!.data!.staticClass += ' v-content__wrap'\n\n    return h(node.tag, node.data, node.children)\n  },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n  NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n  'finally': function (onFinally) {\n    var C = speciesConstructor(this, getBuiltIn('Promise'));\n    var isFunction = typeof onFinally == 'function';\n    return this.then(\n      isFunction ? function (x) {\n        return promiseResolve(C, onFinally()).then(function () { return x; });\n      } : onFinally,\n      isFunction ? function (e) {\n        return promiseResolve(C, onFinally()).then(function () { throw e; });\n      } : onFinally\n    );\n  }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n  redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","import Vue from 'vue'\nimport { VNodeData } from 'vue/types/vnode'\nimport { consoleError } from '../../util/console'\nimport { isCssColor } from '../../util/colorUtils'\n\nexport default Vue.extend({\n  name: 'colorable',\n\n  props: {\n    color: String,\n  },\n\n  methods: {\n    setBackgroundColor (color?: string | false, data: VNodeData = {}): VNodeData {\n      if (typeof data.style === 'string') {\n        // istanbul ignore next\n        consoleError('style must be an object', this)\n        // istanbul ignore next\n        return data\n      }\n      if (typeof data.class === 'string') {\n        // istanbul ignore next\n        consoleError('class must be an object', this)\n        // istanbul ignore next\n        return data\n      }\n      if (isCssColor(color)) {\n        data.style = {\n          ...data.style as object,\n          'background-color': `${color}`,\n          'border-color': `${color}`,\n        }\n      } else if (color) {\n        data.class = {\n          ...data.class,\n          [color]: true,\n        }\n      }\n\n      return data\n    },\n\n    setTextColor (color?: string | false, data: VNodeData = {}): VNodeData {\n      if (typeof data.style === 'string') {\n        // istanbul ignore next\n        consoleError('style must be an object', this)\n        // istanbul ignore next\n        return data\n      }\n      if (typeof data.class === 'string') {\n        // istanbul ignore next\n        consoleError('class must be an object', this)\n        // istanbul ignore next\n        return data\n      }\n      if (isCssColor(color)) {\n        data.style = {\n          ...data.style as object,\n          color: `${color}`,\n          'caret-color': `${color}`,\n        }\n      } else if (color) {\n        const [colorName, colorModifier] = color.toString().trim().split(' ', 2) as (string | undefined)[]\n        data.class = {\n          ...data.class,\n          [colorName + '--text']: true,\n        }\n        if (colorModifier) {\n          data.class['text--' + colorModifier] = true\n        }\n      }\n      return data\n    },\n  },\n})\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n  var it = toPrimitive(argument, false);\n  var first, third, radix, maxCode, digits, length, index, code;\n  if (typeof it == 'string' && it.length > 2) {\n    it = trim(it);\n    first = it.charCodeAt(0);\n    if (first === 43 || first === 45) {\n      third = it.charCodeAt(2);\n      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n    } else if (first === 48) {\n      switch (it.charCodeAt(1)) {\n        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n        default: return +it;\n      }\n      digits = it.slice(2);\n      length = digits.length;\n      for (index = 0; index < length; index++) {\n        code = digits.charCodeAt(index);\n        // parseInt parses a string to a first unavailable symbol\n        // but ToNumber should return NaN if a string contains unavailable symbols\n        if (code < 48 || code > maxCode) return NaN;\n      } return parseInt(digits, radix);\n    }\n  } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n  var NumberWrapper = function Number(value) {\n    var it = arguments.length < 1 ? 0 : value;\n    var dummy = this;\n    return dummy instanceof NumberWrapper\n      // check on 1..constructor(foo) case\n      && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n        ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n  };\n  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n    // ES3:\n    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n    // ES2015 (in case, if modules with ES2015 Number statics required before):\n    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n  ).split(','), j = 0, key; keys.length > j; j++) {\n    if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n      defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n    }\n  }\n  NumberWrapper.prototype = NumberPrototype;\n  NumberPrototype.constructor = NumberWrapper;\n  redefine(global, NUMBER, NumberWrapper);\n}\n","/**!\n * Sortable 1.10.2\n * @author\tRubaXa   <trash@rubaxa.org>\n * @author\towenm    <owen23355@gmail.com>\n * @license MIT\n */\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(source);\n\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n\n    ownKeys.forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    });\n  }\n\n  return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n\n  var target = _objectWithoutPropertiesLoose(source, excluded);\n\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n    return arr2;\n  }\n}\n\nfunction _iterableToArray(iter) {\n  if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n  if (typeof window !== 'undefined' && window.navigator) {\n    return !!\n    /*@__PURE__*/\n    navigator.userAgent.match(pattern);\n  }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n  capture: false,\n  passive: false\n};\n\nfunction on(el, event, fn) {\n  el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n  el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n  if (!selector) return;\n  selector[0] === '>' && (selector = selector.substring(1));\n\n  if (el) {\n    try {\n      if (el.matches) {\n        return el.matches(selector);\n      } else if (el.msMatchesSelector) {\n        return el.msMatchesSelector(selector);\n      } else if (el.webkitMatchesSelector) {\n        return el.webkitMatchesSelector(selector);\n      }\n    } catch (_) {\n      return false;\n    }\n  }\n\n  return false;\n}\n\nfunction getParentOrHost(el) {\n  return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n  if (el) {\n    ctx = ctx || document;\n\n    do {\n      if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n        return el;\n      }\n\n      if (el === ctx) break;\n      /* jshint boss:true */\n    } while (el = getParentOrHost(el));\n  }\n\n  return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n  if (el && name) {\n    if (el.classList) {\n      el.classList[state ? 'add' : 'remove'](name);\n    } else {\n      var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n      el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n    }\n  }\n}\n\nfunction css(el, prop, val) {\n  var style = el && el.style;\n\n  if (style) {\n    if (val === void 0) {\n      if (document.defaultView && document.defaultView.getComputedStyle) {\n        val = document.defaultView.getComputedStyle(el, '');\n      } else if (el.currentStyle) {\n        val = el.currentStyle;\n      }\n\n      return prop === void 0 ? val : val[prop];\n    } else {\n      if (!(prop in style) && prop.indexOf('webkit') === -1) {\n        prop = '-webkit-' + prop;\n      }\n\n      style[prop] = val + (typeof val === 'string' ? '' : 'px');\n    }\n  }\n}\n\nfunction matrix(el, selfOnly) {\n  var appliedTransforms = '';\n\n  if (typeof el === 'string') {\n    appliedTransforms = el;\n  } else {\n    do {\n      var transform = css(el, 'transform');\n\n      if (transform && transform !== 'none') {\n        appliedTransforms = transform + ' ' + appliedTransforms;\n      }\n      /* jshint boss:true */\n\n    } while (!selfOnly && (el = el.parentNode));\n  }\n\n  var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n  /*jshint -W056 */\n\n  return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n  if (ctx) {\n    var list = ctx.getElementsByTagName(tagName),\n        i = 0,\n        n = list.length;\n\n    if (iterator) {\n      for (; i < n; i++) {\n        iterator(list[i], i);\n      }\n    }\n\n    return list;\n  }\n\n  return [];\n}\n\nfunction getWindowScrollingElement() {\n  var scrollingElement = document.scrollingElement;\n\n  if (scrollingElement) {\n    return scrollingElement;\n  } else {\n    return document.documentElement;\n  }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param  {HTMLElement} el                       The element whose boundingClientRect is wanted\r\n * @param  {[Boolean]} relativeToContainingBlock  Whether the rect should be relative to the containing block of (including) the container\r\n * @param  {[Boolean]} relativeToNonStaticParent  Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param  {[Boolean]} undoScale                  Whether the container's scale() should be undone\r\n * @param  {[HTMLElement]} container              The parent the element will be placed in\r\n * @return {Object}                               The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n  if (!el.getBoundingClientRect && el !== window) return;\n  var elRect, top, left, bottom, right, height, width;\n\n  if (el !== window && el !== getWindowScrollingElement()) {\n    elRect = el.getBoundingClientRect();\n    top = elRect.top;\n    left = elRect.left;\n    bottom = elRect.bottom;\n    right = elRect.right;\n    height = elRect.height;\n    width = elRect.width;\n  } else {\n    top = 0;\n    left = 0;\n    bottom = window.innerHeight;\n    right = window.innerWidth;\n    height = window.innerHeight;\n    width = window.innerWidth;\n  }\n\n  if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n    // Adjust for translate()\n    container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n    // Not needed on <= IE11\n\n    if (!IE11OrLess) {\n      do {\n        if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n          var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n          top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n          left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n          bottom = top + elRect.height;\n          right = left + elRect.width;\n          break;\n        }\n        /* jshint boss:true */\n\n      } while (container = container.parentNode);\n    }\n  }\n\n  if (undoScale && el !== window) {\n    // Adjust for scale()\n    var elMatrix = matrix(container || el),\n        scaleX = elMatrix && elMatrix.a,\n        scaleY = elMatrix && elMatrix.d;\n\n    if (elMatrix) {\n      top /= scaleY;\n      left /= scaleX;\n      width /= scaleX;\n      height /= scaleY;\n      bottom = top + height;\n      right = left + width;\n    }\n  }\n\n  return {\n    top: top,\n    left: left,\n    bottom: bottom,\n    right: right,\n    width: width,\n    height: height\n  };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param  {HTMLElement}  el           The element who's side being scrolled out of view is in question\r\n * @param  {String}       elSide       Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param  {String}       parentSide   Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement}               The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n  var parent = getParentAutoScrollElement(el, true),\n      elSideVal = getRect(el)[elSide];\n  /* jshint boss:true */\n\n  while (parent) {\n    var parentSideVal = getRect(parent)[parentSide],\n        visible = void 0;\n\n    if (parentSide === 'top' || parentSide === 'left') {\n      visible = elSideVal >= parentSideVal;\n    } else {\n      visible = elSideVal <= parentSideVal;\n    }\n\n    if (!visible) return parent;\n    if (parent === getWindowScrollingElement()) break;\n    parent = getParentAutoScrollElement(parent, false);\n  }\n\n  return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param  {HTMLElement} el       The parent element\r\n * @param  {Number} childNum      The index of the child\r\n * @param  {Object} options       Parent Sortable's options\r\n * @return {HTMLElement}          The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n  var currentChild = 0,\n      i = 0,\n      children = el.children;\n\n  while (i < children.length) {\n    if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n      if (currentChild === childNum) {\n        return children[i];\n      }\n\n      currentChild++;\n    }\n\n    i++;\n  }\n\n  return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param  {HTMLElement} el       Parent element\r\n * @param  {selector} selector    Any other elements that should be ignored\r\n * @return {HTMLElement}          The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n  var last = el.lastElementChild;\n\n  while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n    last = last.previousElementSibling;\n  }\n\n  return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param  {HTMLElement} el\r\n * @param  {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n  var index = 0;\n\n  if (!el || !el.parentNode) {\n    return -1;\n  }\n  /* jshint boss:true */\n\n\n  while (el = el.previousElementSibling) {\n    if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n      index++;\n    }\n  }\n\n  return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param  {HTMLElement} el\r\n * @return {Array}             Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n  var offsetLeft = 0,\n      offsetTop = 0,\n      winScroller = getWindowScrollingElement();\n\n  if (el) {\n    do {\n      var elMatrix = matrix(el),\n          scaleX = elMatrix.a,\n          scaleY = elMatrix.d;\n      offsetLeft += el.scrollLeft * scaleX;\n      offsetTop += el.scrollTop * scaleY;\n    } while (el !== winScroller && (el = el.parentNode));\n  }\n\n  return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param  {Array} arr   Array that may or may not hold the object\r\n * @param  {Object} obj  An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number}      The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n  for (var i in arr) {\n    if (!arr.hasOwnProperty(i)) continue;\n\n    for (var key in obj) {\n      if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n    }\n  }\n\n  return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n  // skip to window\n  if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n  var elem = el;\n  var gotSelf = false;\n\n  do {\n    // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n    if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n      var elemCSS = css(elem);\n\n      if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n        if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n        if (gotSelf || includeSelf) return elem;\n        gotSelf = true;\n      }\n    }\n    /* jshint boss:true */\n\n  } while (elem = elem.parentNode);\n\n  return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n  if (dst && src) {\n    for (var key in src) {\n      if (src.hasOwnProperty(key)) {\n        dst[key] = src[key];\n      }\n    }\n  }\n\n  return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n  return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n  return function () {\n    if (!_throttleTimeout) {\n      var args = arguments,\n          _this = this;\n\n      if (args.length === 1) {\n        callback.call(_this, args[0]);\n      } else {\n        callback.apply(_this, args);\n      }\n\n      _throttleTimeout = setTimeout(function () {\n        _throttleTimeout = void 0;\n      }, ms);\n    }\n  };\n}\n\nfunction cancelThrottle() {\n  clearTimeout(_throttleTimeout);\n  _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n  el.scrollLeft += x;\n  el.scrollTop += y;\n}\n\nfunction clone(el) {\n  var Polymer = window.Polymer;\n  var $ = window.jQuery || window.Zepto;\n\n  if (Polymer && Polymer.dom) {\n    return Polymer.dom(el).cloneNode(true);\n  } else if ($) {\n    return $(el).clone(true)[0];\n  } else {\n    return el.cloneNode(true);\n  }\n}\n\nfunction setRect(el, rect) {\n  css(el, 'position', 'absolute');\n  css(el, 'top', rect.top);\n  css(el, 'left', rect.left);\n  css(el, 'width', rect.width);\n  css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n  css(el, 'position', '');\n  css(el, 'top', '');\n  css(el, 'left', '');\n  css(el, 'width', '');\n  css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n  var animationStates = [],\n      animationCallbackId;\n  return {\n    captureAnimationState: function captureAnimationState() {\n      animationStates = [];\n      if (!this.options.animation) return;\n      var children = [].slice.call(this.el.children);\n      children.forEach(function (child) {\n        if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n        animationStates.push({\n          target: child,\n          rect: getRect(child)\n        });\n\n        var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n        if (child.thisAnimationDuration) {\n          var childMatrix = matrix(child, true);\n\n          if (childMatrix) {\n            fromRect.top -= childMatrix.f;\n            fromRect.left -= childMatrix.e;\n          }\n        }\n\n        child.fromRect = fromRect;\n      });\n    },\n    addAnimationState: function addAnimationState(state) {\n      animationStates.push(state);\n    },\n    removeAnimationState: function removeAnimationState(target) {\n      animationStates.splice(indexOfObject(animationStates, {\n        target: target\n      }), 1);\n    },\n    animateAll: function animateAll(callback) {\n      var _this = this;\n\n      if (!this.options.animation) {\n        clearTimeout(animationCallbackId);\n        if (typeof callback === 'function') callback();\n        return;\n      }\n\n      var animating = false,\n          animationTime = 0;\n      animationStates.forEach(function (state) {\n        var time = 0,\n            target = state.target,\n            fromRect = target.fromRect,\n            toRect = getRect(target),\n            prevFromRect = target.prevFromRect,\n            prevToRect = target.prevToRect,\n            animatingRect = state.rect,\n            targetMatrix = matrix(target, true);\n\n        if (targetMatrix) {\n          // Compensate for current animation\n          toRect.top -= targetMatrix.f;\n          toRect.left -= targetMatrix.e;\n        }\n\n        target.toRect = toRect;\n\n        if (target.thisAnimationDuration) {\n          // Could also check if animatingRect is between fromRect and toRect\n          if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n          (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n            // If returning to same place as started from animation and on same axis\n            time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n          }\n        } // if fromRect != toRect: animate\n\n\n        if (!isRectEqual(toRect, fromRect)) {\n          target.prevFromRect = fromRect;\n          target.prevToRect = toRect;\n\n          if (!time) {\n            time = _this.options.animation;\n          }\n\n          _this.animate(target, animatingRect, toRect, time);\n        }\n\n        if (time) {\n          animating = true;\n          animationTime = Math.max(animationTime, time);\n          clearTimeout(target.animationResetTimer);\n          target.animationResetTimer = setTimeout(function () {\n            target.animationTime = 0;\n            target.prevFromRect = null;\n            target.fromRect = null;\n            target.prevToRect = null;\n            target.thisAnimationDuration = null;\n          }, time);\n          target.thisAnimationDuration = time;\n        }\n      });\n      clearTimeout(animationCallbackId);\n\n      if (!animating) {\n        if (typeof callback === 'function') callback();\n      } else {\n        animationCallbackId = setTimeout(function () {\n          if (typeof callback === 'function') callback();\n        }, animationTime);\n      }\n\n      animationStates = [];\n    },\n    animate: function animate(target, currentRect, toRect, duration) {\n      if (duration) {\n        css(target, 'transition', '');\n        css(target, 'transform', '');\n        var elMatrix = matrix(this.el),\n            scaleX = elMatrix && elMatrix.a,\n            scaleY = elMatrix && elMatrix.d,\n            translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n            translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n        target.animatingX = !!translateX;\n        target.animatingY = !!translateY;\n        css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n        repaint(target); // repaint\n\n        css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n        css(target, 'transform', 'translate3d(0,0,0)');\n        typeof target.animated === 'number' && clearTimeout(target.animated);\n        target.animated = setTimeout(function () {\n          css(target, 'transition', '');\n          css(target, 'transform', '');\n          target.animated = false;\n          target.animatingX = false;\n          target.animatingY = false;\n        }, duration);\n      }\n    }\n  };\n}\n\nfunction repaint(target) {\n  return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n  return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n  initializeByDefault: true\n};\nvar PluginManager = {\n  mount: function mount(plugin) {\n    // Set default static properties\n    for (var option in defaults) {\n      if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n        plugin[option] = defaults[option];\n      }\n    }\n\n    plugins.push(plugin);\n  },\n  pluginEvent: function pluginEvent(eventName, sortable, evt) {\n    var _this = this;\n\n    this.eventCanceled = false;\n\n    evt.cancel = function () {\n      _this.eventCanceled = true;\n    };\n\n    var eventNameGlobal = eventName + 'Global';\n    plugins.forEach(function (plugin) {\n      if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n      if (sortable[plugin.pluginName][eventNameGlobal]) {\n        sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n          sortable: sortable\n        }, evt));\n      } // Only fire plugin event if plugin is enabled in this sortable,\n      // and plugin has event defined\n\n\n      if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n        sortable[plugin.pluginName][eventName](_objectSpread({\n          sortable: sortable\n        }, evt));\n      }\n    });\n  },\n  initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n    plugins.forEach(function (plugin) {\n      var pluginName = plugin.pluginName;\n      if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n      var initialized = new plugin(sortable, el, sortable.options);\n      initialized.sortable = sortable;\n      initialized.options = sortable.options;\n      sortable[pluginName] = initialized; // Add default options from plugin\n\n      _extends(defaults, initialized.defaults);\n    });\n\n    for (var option in sortable.options) {\n      if (!sortable.options.hasOwnProperty(option)) continue;\n      var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n      if (typeof modified !== 'undefined') {\n        sortable.options[option] = modified;\n      }\n    }\n  },\n  getEventProperties: function getEventProperties(name, sortable) {\n    var eventProperties = {};\n    plugins.forEach(function (plugin) {\n      if (typeof plugin.eventProperties !== 'function') return;\n\n      _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n    });\n    return eventProperties;\n  },\n  modifyOption: function modifyOption(sortable, name, value) {\n    var modifiedValue;\n    plugins.forEach(function (plugin) {\n      // Plugin must exist on the Sortable\n      if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n      if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n        modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n      }\n    });\n    return modifiedValue;\n  }\n};\n\nfunction dispatchEvent(_ref) {\n  var sortable = _ref.sortable,\n      rootEl = _ref.rootEl,\n      name = _ref.name,\n      targetEl = _ref.targetEl,\n      cloneEl = _ref.cloneEl,\n      toEl = _ref.toEl,\n      fromEl = _ref.fromEl,\n      oldIndex = _ref.oldIndex,\n      newIndex = _ref.newIndex,\n      oldDraggableIndex = _ref.oldDraggableIndex,\n      newDraggableIndex = _ref.newDraggableIndex,\n      originalEvent = _ref.originalEvent,\n      putSortable = _ref.putSortable,\n      extraEventProperties = _ref.extraEventProperties;\n  sortable = sortable || rootEl && rootEl[expando];\n  if (!sortable) return;\n  var evt,\n      options = sortable.options,\n      onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n  if (window.CustomEvent && !IE11OrLess && !Edge) {\n    evt = new CustomEvent(name, {\n      bubbles: true,\n      cancelable: true\n    });\n  } else {\n    evt = document.createEvent('Event');\n    evt.initEvent(name, true, true);\n  }\n\n  evt.to = toEl || rootEl;\n  evt.from = fromEl || rootEl;\n  evt.item = targetEl || rootEl;\n  evt.clone = cloneEl;\n  evt.oldIndex = oldIndex;\n  evt.newIndex = newIndex;\n  evt.oldDraggableIndex = oldDraggableIndex;\n  evt.newDraggableIndex = newDraggableIndex;\n  evt.originalEvent = originalEvent;\n  evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n  var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n  for (var option in allEventProperties) {\n    evt[option] = allEventProperties[option];\n  }\n\n  if (rootEl) {\n    rootEl.dispatchEvent(evt);\n  }\n\n  if (options[onName]) {\n    options[onName].call(sortable, evt);\n  }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n  var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n      originalEvent = _ref.evt,\n      data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n  PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n    dragEl: dragEl,\n    parentEl: parentEl,\n    ghostEl: ghostEl,\n    rootEl: rootEl,\n    nextEl: nextEl,\n    lastDownEl: lastDownEl,\n    cloneEl: cloneEl,\n    cloneHidden: cloneHidden,\n    dragStarted: moved,\n    putSortable: putSortable,\n    activeSortable: Sortable.active,\n    originalEvent: originalEvent,\n    oldIndex: oldIndex,\n    oldDraggableIndex: oldDraggableIndex,\n    newIndex: newIndex,\n    newDraggableIndex: newDraggableIndex,\n    hideGhostForTarget: _hideGhostForTarget,\n    unhideGhostForTarget: _unhideGhostForTarget,\n    cloneNowHidden: function cloneNowHidden() {\n      cloneHidden = true;\n    },\n    cloneNowShown: function cloneNowShown() {\n      cloneHidden = false;\n    },\n    dispatchSortableEvent: function dispatchSortableEvent(name) {\n      _dispatchEvent({\n        sortable: sortable,\n        name: name,\n        originalEvent: originalEvent\n      });\n    }\n  }, data));\n};\n\nfunction _dispatchEvent(info) {\n  dispatchEvent(_objectSpread({\n    putSortable: putSortable,\n    cloneEl: cloneEl,\n    targetEl: dragEl,\n    rootEl: rootEl,\n    oldIndex: oldIndex,\n    oldDraggableIndex: oldDraggableIndex,\n    newIndex: newIndex,\n    newDraggableIndex: newDraggableIndex\n  }, info));\n}\n\nvar dragEl,\n    parentEl,\n    ghostEl,\n    rootEl,\n    nextEl,\n    lastDownEl,\n    cloneEl,\n    cloneHidden,\n    oldIndex,\n    newIndex,\n    oldDraggableIndex,\n    newDraggableIndex,\n    activeGroup,\n    putSortable,\n    awaitingDragStarted = false,\n    ignoreNextClick = false,\n    sortables = [],\n    tapEvt,\n    touchEvt,\n    lastDx,\n    lastDy,\n    tapDistanceLeft,\n    tapDistanceTop,\n    moved,\n    lastTarget,\n    lastDirection,\n    pastFirstInvertThresh = false,\n    isCircumstantialInvert = false,\n    targetMoveDistance,\n    // For positioning ghost absolutely\nghostRelativeParent,\n    ghostRelativeParentInitialScroll = [],\n    // (left, top)\n_silent = false,\n    savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n    PositionGhostAbsolutely = IOS,\n    CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n    // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n    supportCssPointerEvents = function () {\n  if (!documentExists) return; // false when <= IE11\n\n  if (IE11OrLess) {\n    return false;\n  }\n\n  var el = document.createElement('x');\n  el.style.cssText = 'pointer-events:auto';\n  return el.style.pointerEvents === 'auto';\n}(),\n    _detectDirection = function _detectDirection(el, options) {\n  var elCSS = css(el),\n      elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n      child1 = getChild(el, 0, options),\n      child2 = getChild(el, 1, options),\n      firstChildCSS = child1 && css(child1),\n      secondChildCSS = child2 && css(child2),\n      firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n      secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n  if (elCSS.display === 'flex') {\n    return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n  }\n\n  if (elCSS.display === 'grid') {\n    return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n  }\n\n  if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n    var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n    return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n  }\n\n  return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n    _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n  var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n      dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n      dragElOppLength = vertical ? dragRect.width : dragRect.height,\n      targetS1Opp = vertical ? targetRect.left : targetRect.top,\n      targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n      targetOppLength = vertical ? targetRect.width : targetRect.height;\n  return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param  {Number} x      X position\n * @param  {Number} y      Y position\n * @return {HTMLElement}   Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n  var ret;\n  sortables.some(function (sortable) {\n    if (lastChild(sortable)) return;\n    var rect = getRect(sortable),\n        threshold = sortable[expando].options.emptyInsertThreshold,\n        insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n        insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n    if (threshold && insideHorizontally && insideVertically) {\n      return ret = sortable;\n    }\n  });\n  return ret;\n},\n    _prepareGroup = function _prepareGroup(options) {\n  function toFn(value, pull) {\n    return function (to, from, dragEl, evt) {\n      var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n      if (value == null && (pull || sameGroup)) {\n        // Default pull value\n        // Default pull and put value if same group\n        return true;\n      } else if (value == null || value === false) {\n        return false;\n      } else if (pull && value === 'clone') {\n        return value;\n      } else if (typeof value === 'function') {\n        return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n      } else {\n        var otherGroup = (pull ? to : from).options.group.name;\n        return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n      }\n    };\n  }\n\n  var group = {};\n  var originalGroup = options.group;\n\n  if (!originalGroup || _typeof(originalGroup) != 'object') {\n    originalGroup = {\n      name: originalGroup\n    };\n  }\n\n  group.name = originalGroup.name;\n  group.checkPull = toFn(originalGroup.pull, true);\n  group.checkPut = toFn(originalGroup.put);\n  group.revertClone = originalGroup.revertClone;\n  options.group = group;\n},\n    _hideGhostForTarget = function _hideGhostForTarget() {\n  if (!supportCssPointerEvents && ghostEl) {\n    css(ghostEl, 'display', 'none');\n  }\n},\n    _unhideGhostForTarget = function _unhideGhostForTarget() {\n  if (!supportCssPointerEvents && ghostEl) {\n    css(ghostEl, 'display', '');\n  }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n  document.addEventListener('click', function (evt) {\n    if (ignoreNextClick) {\n      evt.preventDefault();\n      evt.stopPropagation && evt.stopPropagation();\n      evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n      ignoreNextClick = false;\n      return false;\n    }\n  }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n  if (dragEl) {\n    evt = evt.touches ? evt.touches[0] : evt;\n\n    var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n    if (nearest) {\n      // Create imitation event\n      var event = {};\n\n      for (var i in evt) {\n        if (evt.hasOwnProperty(i)) {\n          event[i] = evt[i];\n        }\n      }\n\n      event.target = event.rootEl = nearest;\n      event.preventDefault = void 0;\n      event.stopPropagation = void 0;\n\n      nearest[expando]._onDragOver(event);\n    }\n  }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n  if (dragEl) {\n    dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n  }\n};\n/**\n * @class  Sortable\n * @param  {HTMLElement}  el\n * @param  {Object}       [options]\n */\n\n\nfunction Sortable(el, options) {\n  if (!(el && el.nodeType && el.nodeType === 1)) {\n    throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n  }\n\n  this.el = el; // root element\n\n  this.options = options = _extends({}, options); // Export instance\n\n  el[expando] = this;\n  var defaults = {\n    group: null,\n    sort: true,\n    disabled: false,\n    store: null,\n    handle: null,\n    draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n    swapThreshold: 1,\n    // percentage; 0 <= x <= 1\n    invertSwap: false,\n    // invert always\n    invertedSwapThreshold: null,\n    // will be set to same as swapThreshold if default\n    removeCloneOnHide: true,\n    direction: function direction() {\n      return _detectDirection(el, this.options);\n    },\n    ghostClass: 'sortable-ghost',\n    chosenClass: 'sortable-chosen',\n    dragClass: 'sortable-drag',\n    ignore: 'a, img',\n    filter: null,\n    preventOnFilter: true,\n    animation: 0,\n    easing: null,\n    setData: function setData(dataTransfer, dragEl) {\n      dataTransfer.setData('Text', dragEl.textContent);\n    },\n    dropBubble: false,\n    dragoverBubble: false,\n    dataIdAttr: 'data-id',\n    delay: 0,\n    delayOnTouchOnly: false,\n    touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n    forceFallback: false,\n    fallbackClass: 'sortable-fallback',\n    fallbackOnBody: false,\n    fallbackTolerance: 0,\n    fallbackOffset: {\n      x: 0,\n      y: 0\n    },\n    supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n    emptyInsertThreshold: 5\n  };\n  PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n  for (var name in defaults) {\n    !(name in options) && (options[name] = defaults[name]);\n  }\n\n  _prepareGroup(options); // Bind all private methods\n\n\n  for (var fn in this) {\n    if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n      this[fn] = this[fn].bind(this);\n    }\n  } // Setup drag mode\n\n\n  this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n  if (this.nativeDraggable) {\n    // Touch start threshold cannot be greater than the native dragstart threshold\n    this.options.touchStartThreshold = 1;\n  } // Bind events\n\n\n  if (options.supportPointer) {\n    on(el, 'pointerdown', this._onTapStart);\n  } else {\n    on(el, 'mousedown', this._onTapStart);\n    on(el, 'touchstart', this._onTapStart);\n  }\n\n  if (this.nativeDraggable) {\n    on(el, 'dragover', this);\n    on(el, 'dragenter', this);\n  }\n\n  sortables.push(this.el); // Restore sorting\n\n  options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n  _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n  constructor: Sortable,\n  _isOutsideThisEl: function _isOutsideThisEl(target) {\n    if (!this.el.contains(target) && target !== this.el) {\n      lastTarget = null;\n    }\n  },\n  _getDirection: function _getDirection(evt, target) {\n    return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n  },\n  _onTapStart: function _onTapStart(\n  /** Event|TouchEvent */\n  evt) {\n    if (!evt.cancelable) return;\n\n    var _this = this,\n        el = this.el,\n        options = this.options,\n        preventOnFilter = options.preventOnFilter,\n        type = evt.type,\n        touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n        target = (touch || evt).target,\n        originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n        filter = options.filter;\n\n    _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n    if (dragEl) {\n      return;\n    }\n\n    if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n      return; // only left button and enabled\n    } // cancel dnd if original target is content editable\n\n\n    if (originalTarget.isContentEditable) {\n      return;\n    }\n\n    target = closest(target, options.draggable, el, false);\n\n    if (target && target.animated) {\n      return;\n    }\n\n    if (lastDownEl === target) {\n      // Ignoring duplicate `down`\n      return;\n    } // Get the index of the dragged element within its parent\n\n\n    oldIndex = index(target);\n    oldDraggableIndex = index(target, options.draggable); // Check filter\n\n    if (typeof filter === 'function') {\n      if (filter.call(this, evt, target, this)) {\n        _dispatchEvent({\n          sortable: _this,\n          rootEl: originalTarget,\n          name: 'filter',\n          targetEl: target,\n          toEl: el,\n          fromEl: el\n        });\n\n        pluginEvent('filter', _this, {\n          evt: evt\n        });\n        preventOnFilter && evt.cancelable && evt.preventDefault();\n        return; // cancel dnd\n      }\n    } else if (filter) {\n      filter = filter.split(',').some(function (criteria) {\n        criteria = closest(originalTarget, criteria.trim(), el, false);\n\n        if (criteria) {\n          _dispatchEvent({\n            sortable: _this,\n            rootEl: criteria,\n            name: 'filter',\n            targetEl: target,\n            fromEl: el,\n            toEl: el\n          });\n\n          pluginEvent('filter', _this, {\n            evt: evt\n          });\n          return true;\n        }\n      });\n\n      if (filter) {\n        preventOnFilter && evt.cancelable && evt.preventDefault();\n        return; // cancel dnd\n      }\n    }\n\n    if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n      return;\n    } // Prepare `dragstart`\n\n\n    this._prepareDragStart(evt, touch, target);\n  },\n  _prepareDragStart: function _prepareDragStart(\n  /** Event */\n  evt,\n  /** Touch */\n  touch,\n  /** HTMLElement */\n  target) {\n    var _this = this,\n        el = _this.el,\n        options = _this.options,\n        ownerDocument = el.ownerDocument,\n        dragStartFn;\n\n    if (target && !dragEl && target.parentNode === el) {\n      var dragRect = getRect(target);\n      rootEl = el;\n      dragEl = target;\n      parentEl = dragEl.parentNode;\n      nextEl = dragEl.nextSibling;\n      lastDownEl = target;\n      activeGroup = options.group;\n      Sortable.dragged = dragEl;\n      tapEvt = {\n        target: dragEl,\n        clientX: (touch || evt).clientX,\n        clientY: (touch || evt).clientY\n      };\n      tapDistanceLeft = tapEvt.clientX - dragRect.left;\n      tapDistanceTop = tapEvt.clientY - dragRect.top;\n      this._lastX = (touch || evt).clientX;\n      this._lastY = (touch || evt).clientY;\n      dragEl.style['will-change'] = 'all';\n\n      dragStartFn = function dragStartFn() {\n        pluginEvent('delayEnded', _this, {\n          evt: evt\n        });\n\n        if (Sortable.eventCanceled) {\n          _this._onDrop();\n\n          return;\n        } // Delayed drag has been triggered\n        // we can re-enable the events: touchmove/mousemove\n\n\n        _this._disableDelayedDragEvents();\n\n        if (!FireFox && _this.nativeDraggable) {\n          dragEl.draggable = true;\n        } // Bind the events: dragstart/dragend\n\n\n        _this._triggerDragStart(evt, touch); // Drag start event\n\n\n        _dispatchEvent({\n          sortable: _this,\n          name: 'choose',\n          originalEvent: evt\n        }); // Chosen item\n\n\n        toggleClass(dragEl, options.chosenClass, true);\n      }; // Disable \"draggable\"\n\n\n      options.ignore.split(',').forEach(function (criteria) {\n        find(dragEl, criteria.trim(), _disableDraggable);\n      });\n      on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n      on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n      on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n      on(ownerDocument, 'mouseup', _this._onDrop);\n      on(ownerDocument, 'touchend', _this._onDrop);\n      on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n      if (FireFox && this.nativeDraggable) {\n        this.options.touchStartThreshold = 4;\n        dragEl.draggable = true;\n      }\n\n      pluginEvent('delayStart', this, {\n        evt: evt\n      }); // Delay is impossible for native DnD in Edge or IE\n\n      if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n        if (Sortable.eventCanceled) {\n          this._onDrop();\n\n          return;\n        } // If the user moves the pointer or let go the click or touch\n        // before the delay has been reached:\n        // disable the delayed drag\n\n\n        on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n        on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n        on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n        on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n        on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n        options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n        _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n      } else {\n        dragStartFn();\n      }\n    }\n  },\n  _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n  /** TouchEvent|PointerEvent **/\n  e) {\n    var touch = e.touches ? e.touches[0] : e;\n\n    if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n      this._disableDelayedDrag();\n    }\n  },\n  _disableDelayedDrag: function _disableDelayedDrag() {\n    dragEl && _disableDraggable(dragEl);\n    clearTimeout(this._dragStartTimer);\n\n    this._disableDelayedDragEvents();\n  },\n  _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n    var ownerDocument = this.el.ownerDocument;\n    off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n    off(ownerDocument, 'touchend', this._disableDelayedDrag);\n    off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n    off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n    off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n    off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n  },\n  _triggerDragStart: function _triggerDragStart(\n  /** Event */\n  evt,\n  /** Touch */\n  touch) {\n    touch = touch || evt.pointerType == 'touch' && evt;\n\n    if (!this.nativeDraggable || touch) {\n      if (this.options.supportPointer) {\n        on(document, 'pointermove', this._onTouchMove);\n      } else if (touch) {\n        on(document, 'touchmove', this._onTouchMove);\n      } else {\n        on(document, 'mousemove', this._onTouchMove);\n      }\n    } else {\n      on(dragEl, 'dragend', this);\n      on(rootEl, 'dragstart', this._onDragStart);\n    }\n\n    try {\n      if (document.selection) {\n        // Timeout neccessary for IE9\n        _nextTick(function () {\n          document.selection.empty();\n        });\n      } else {\n        window.getSelection().removeAllRanges();\n      }\n    } catch (err) {}\n  },\n  _dragStarted: function _dragStarted(fallback, evt) {\n\n    awaitingDragStarted = false;\n\n    if (rootEl && dragEl) {\n      pluginEvent('dragStarted', this, {\n        evt: evt\n      });\n\n      if (this.nativeDraggable) {\n        on(document, 'dragover', _checkOutsideTargetEl);\n      }\n\n      var options = this.options; // Apply effect\n\n      !fallback && toggleClass(dragEl, options.dragClass, false);\n      toggleClass(dragEl, options.ghostClass, true);\n      Sortable.active = this;\n      fallback && this._appendGhost(); // Drag start event\n\n      _dispatchEvent({\n        sortable: this,\n        name: 'start',\n        originalEvent: evt\n      });\n    } else {\n      this._nulling();\n    }\n  },\n  _emulateDragOver: function _emulateDragOver() {\n    if (touchEvt) {\n      this._lastX = touchEvt.clientX;\n      this._lastY = touchEvt.clientY;\n\n      _hideGhostForTarget();\n\n      var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n      var parent = target;\n\n      while (target && target.shadowRoot) {\n        target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n        if (target === parent) break;\n        parent = target;\n      }\n\n      dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n      if (parent) {\n        do {\n          if (parent[expando]) {\n            var inserted = void 0;\n            inserted = parent[expando]._onDragOver({\n              clientX: touchEvt.clientX,\n              clientY: touchEvt.clientY,\n              target: target,\n              rootEl: parent\n            });\n\n            if (inserted && !this.options.dragoverBubble) {\n              break;\n            }\n          }\n\n          target = parent; // store last element\n        }\n        /* jshint boss:true */\n        while (parent = parent.parentNode);\n      }\n\n      _unhideGhostForTarget();\n    }\n  },\n  _onTouchMove: function _onTouchMove(\n  /**TouchEvent*/\n  evt) {\n    if (tapEvt) {\n      var options = this.options,\n          fallbackTolerance = options.fallbackTolerance,\n          fallbackOffset = options.fallbackOffset,\n          touch = evt.touches ? evt.touches[0] : evt,\n          ghostMatrix = ghostEl && matrix(ghostEl, true),\n          scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n          scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n          relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n          dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n          dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n      if (!Sortable.active && !awaitingDragStarted) {\n        if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n          return;\n        }\n\n        this._onDragStart(evt, true);\n      }\n\n      if (ghostEl) {\n        if (ghostMatrix) {\n          ghostMatrix.e += dx - (lastDx || 0);\n          ghostMatrix.f += dy - (lastDy || 0);\n        } else {\n          ghostMatrix = {\n            a: 1,\n            b: 0,\n            c: 0,\n            d: 1,\n            e: dx,\n            f: dy\n          };\n        }\n\n        var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n        css(ghostEl, 'webkitTransform', cssMatrix);\n        css(ghostEl, 'mozTransform', cssMatrix);\n        css(ghostEl, 'msTransform', cssMatrix);\n        css(ghostEl, 'transform', cssMatrix);\n        lastDx = dx;\n        lastDy = dy;\n        touchEvt = touch;\n      }\n\n      evt.cancelable && evt.preventDefault();\n    }\n  },\n  _appendGhost: function _appendGhost() {\n    // Bug if using scale(): https://stackoverflow.com/questions/2637058\n    // Not being adjusted for\n    if (!ghostEl) {\n      var container = this.options.fallbackOnBody ? document.body : rootEl,\n          rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n          options = this.options; // Position absolutely\n\n      if (PositionGhostAbsolutely) {\n        // Get relatively positioned parent\n        ghostRelativeParent = container;\n\n        while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n          ghostRelativeParent = ghostRelativeParent.parentNode;\n        }\n\n        if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n          if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n          rect.top += ghostRelativeParent.scrollTop;\n          rect.left += ghostRelativeParent.scrollLeft;\n        } else {\n          ghostRelativeParent = getWindowScrollingElement();\n        }\n\n        ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n      }\n\n      ghostEl = dragEl.cloneNode(true);\n      toggleClass(ghostEl, options.ghostClass, false);\n      toggleClass(ghostEl, options.fallbackClass, true);\n      toggleClass(ghostEl, options.dragClass, true);\n      css(ghostEl, 'transition', '');\n      css(ghostEl, 'transform', '');\n      css(ghostEl, 'box-sizing', 'border-box');\n      css(ghostEl, 'margin', 0);\n      css(ghostEl, 'top', rect.top);\n      css(ghostEl, 'left', rect.left);\n      css(ghostEl, 'width', rect.width);\n      css(ghostEl, 'height', rect.height);\n      css(ghostEl, 'opacity', '0.8');\n      css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n      css(ghostEl, 'zIndex', '100000');\n      css(ghostEl, 'pointerEvents', 'none');\n      Sortable.ghost = ghostEl;\n      container.appendChild(ghostEl); // Set transform-origin\n\n      css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n    }\n  },\n  _onDragStart: function _onDragStart(\n  /**Event*/\n  evt,\n  /**boolean*/\n  fallback) {\n    var _this = this;\n\n    var dataTransfer = evt.dataTransfer;\n    var options = _this.options;\n    pluginEvent('dragStart', this, {\n      evt: evt\n    });\n\n    if (Sortable.eventCanceled) {\n      this._onDrop();\n\n      return;\n    }\n\n    pluginEvent('setupClone', this);\n\n    if (!Sortable.eventCanceled) {\n      cloneEl = clone(dragEl);\n      cloneEl.draggable = false;\n      cloneEl.style['will-change'] = '';\n\n      this._hideClone();\n\n      toggleClass(cloneEl, this.options.chosenClass, false);\n      Sortable.clone = cloneEl;\n    } // #1143: IFrame support workaround\n\n\n    _this.cloneId = _nextTick(function () {\n      pluginEvent('clone', _this);\n      if (Sortable.eventCanceled) return;\n\n      if (!_this.options.removeCloneOnHide) {\n        rootEl.insertBefore(cloneEl, dragEl);\n      }\n\n      _this._hideClone();\n\n      _dispatchEvent({\n        sortable: _this,\n        name: 'clone'\n      });\n    });\n    !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n    if (fallback) {\n      ignoreNextClick = true;\n      _this._loopId = setInterval(_this._emulateDragOver, 50);\n    } else {\n      // Undo what was set in _prepareDragStart before drag started\n      off(document, 'mouseup', _this._onDrop);\n      off(document, 'touchend', _this._onDrop);\n      off(document, 'touchcancel', _this._onDrop);\n\n      if (dataTransfer) {\n        dataTransfer.effectAllowed = 'move';\n        options.setData && options.setData.call(_this, dataTransfer, dragEl);\n      }\n\n      on(document, 'drop', _this); // #1276 fix:\n\n      css(dragEl, 'transform', 'translateZ(0)');\n    }\n\n    awaitingDragStarted = true;\n    _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n    on(document, 'selectstart', _this);\n    moved = true;\n\n    if (Safari) {\n      css(document.body, 'user-select', 'none');\n    }\n  },\n  // Returns true - if no further action is needed (either inserted or another condition)\n  _onDragOver: function _onDragOver(\n  /**Event*/\n  evt) {\n    var el = this.el,\n        target = evt.target,\n        dragRect,\n        targetRect,\n        revert,\n        options = this.options,\n        group = options.group,\n        activeSortable = Sortable.active,\n        isOwner = activeGroup === group,\n        canSort = options.sort,\n        fromSortable = putSortable || activeSortable,\n        vertical,\n        _this = this,\n        completedFired = false;\n\n    if (_silent) return;\n\n    function dragOverEvent(name, extra) {\n      pluginEvent(name, _this, _objectSpread({\n        evt: evt,\n        isOwner: isOwner,\n        axis: vertical ? 'vertical' : 'horizontal',\n        revert: revert,\n        dragRect: dragRect,\n        targetRect: targetRect,\n        canSort: canSort,\n        fromSortable: fromSortable,\n        target: target,\n        completed: completed,\n        onMove: function onMove(target, after) {\n          return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n        },\n        changed: changed\n      }, extra));\n    } // Capture animation state\n\n\n    function capture() {\n      dragOverEvent('dragOverAnimationCapture');\n\n      _this.captureAnimationState();\n\n      if (_this !== fromSortable) {\n        fromSortable.captureAnimationState();\n      }\n    } // Return invocation when dragEl is inserted (or completed)\n\n\n    function completed(insertion) {\n      dragOverEvent('dragOverCompleted', {\n        insertion: insertion\n      });\n\n      if (insertion) {\n        // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n        if (isOwner) {\n          activeSortable._hideClone();\n        } else {\n          activeSortable._showClone(_this);\n        }\n\n        if (_this !== fromSortable) {\n          // Set ghost class to new sortable's ghost class\n          toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n          toggleClass(dragEl, options.ghostClass, true);\n        }\n\n        if (putSortable !== _this && _this !== Sortable.active) {\n          putSortable = _this;\n        } else if (_this === Sortable.active && putSortable) {\n          putSortable = null;\n        } // Animation\n\n\n        if (fromSortable === _this) {\n          _this._ignoreWhileAnimating = target;\n        }\n\n        _this.animateAll(function () {\n          dragOverEvent('dragOverAnimationComplete');\n          _this._ignoreWhileAnimating = null;\n        });\n\n        if (_this !== fromSortable) {\n          fromSortable.animateAll();\n          fromSortable._ignoreWhileAnimating = null;\n        }\n      } // Null lastTarget if it is not inside a previously swapped element\n\n\n      if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n        lastTarget = null;\n      } // no bubbling and not fallback\n\n\n      if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n        dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n        !insertion && nearestEmptyInsertDetectEvent(evt);\n      }\n\n      !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n      return completedFired = true;\n    } // Call when dragEl has been inserted\n\n\n    function changed() {\n      newIndex = index(dragEl);\n      newDraggableIndex = index(dragEl, options.draggable);\n\n      _dispatchEvent({\n        sortable: _this,\n        name: 'change',\n        toEl: el,\n        newIndex: newIndex,\n        newDraggableIndex: newDraggableIndex,\n        originalEvent: evt\n      });\n    }\n\n    if (evt.preventDefault !== void 0) {\n      evt.cancelable && evt.preventDefault();\n    }\n\n    target = closest(target, options.draggable, el, true);\n    dragOverEvent('dragOver');\n    if (Sortable.eventCanceled) return completedFired;\n\n    if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n      return completed(false);\n    }\n\n    ignoreNextClick = false;\n\n    if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n    : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n      vertical = this._getDirection(evt, target) === 'vertical';\n      dragRect = getRect(dragEl);\n      dragOverEvent('dragOverValid');\n      if (Sortable.eventCanceled) return completedFired;\n\n      if (revert) {\n        parentEl = rootEl; // actualization\n\n        capture();\n\n        this._hideClone();\n\n        dragOverEvent('revert');\n\n        if (!Sortable.eventCanceled) {\n          if (nextEl) {\n            rootEl.insertBefore(dragEl, nextEl);\n          } else {\n            rootEl.appendChild(dragEl);\n          }\n        }\n\n        return completed(true);\n      }\n\n      var elLastChild = lastChild(el, options.draggable);\n\n      if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n        // If already at end of list: Do not insert\n        if (elLastChild === dragEl) {\n          return completed(false);\n        } // assign target only if condition is true\n\n\n        if (elLastChild && el === evt.target) {\n          target = elLastChild;\n        }\n\n        if (target) {\n          targetRect = getRect(target);\n        }\n\n        if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n          capture();\n          el.appendChild(dragEl);\n          parentEl = el; // actualization\n\n          changed();\n          return completed(true);\n        }\n      } else if (target.parentNode === el) {\n        targetRect = getRect(target);\n        var direction = 0,\n            targetBeforeFirstSwap,\n            differentLevel = dragEl.parentNode !== el,\n            differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n            side1 = vertical ? 'top' : 'left',\n            scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n            scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n        if (lastTarget !== target) {\n          targetBeforeFirstSwap = targetRect[side1];\n          pastFirstInvertThresh = false;\n          isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n        }\n\n        direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n        var sibling;\n\n        if (direction !== 0) {\n          // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n          var dragIndex = index(dragEl);\n\n          do {\n            dragIndex -= direction;\n            sibling = parentEl.children[dragIndex];\n          } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n        } // If dragEl is already beside target: Do not insert\n\n\n        if (direction === 0 || sibling === target) {\n          return completed(false);\n        }\n\n        lastTarget = target;\n        lastDirection = direction;\n        var nextSibling = target.nextElementSibling,\n            after = false;\n        after = direction === 1;\n\n        var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n        if (moveVector !== false) {\n          if (moveVector === 1 || moveVector === -1) {\n            after = moveVector === 1;\n          }\n\n          _silent = true;\n          setTimeout(_unsilent, 30);\n          capture();\n\n          if (after && !nextSibling) {\n            el.appendChild(dragEl);\n          } else {\n            target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n          } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n          if (scrolledPastTop) {\n            scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n          }\n\n          parentEl = dragEl.parentNode; // actualization\n          // must be done before animation\n\n          if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n            targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n          }\n\n          changed();\n          return completed(true);\n        }\n      }\n\n      if (el.contains(dragEl)) {\n        return completed(false);\n      }\n    }\n\n    return false;\n  },\n  _ignoreWhileAnimating: null,\n  _offMoveEvents: function _offMoveEvents() {\n    off(document, 'mousemove', this._onTouchMove);\n    off(document, 'touchmove', this._onTouchMove);\n    off(document, 'pointermove', this._onTouchMove);\n    off(document, 'dragover', nearestEmptyInsertDetectEvent);\n    off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n    off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n  },\n  _offUpEvents: function _offUpEvents() {\n    var ownerDocument = this.el.ownerDocument;\n    off(ownerDocument, 'mouseup', this._onDrop);\n    off(ownerDocument, 'touchend', this._onDrop);\n    off(ownerDocument, 'pointerup', this._onDrop);\n    off(ownerDocument, 'touchcancel', this._onDrop);\n    off(document, 'selectstart', this);\n  },\n  _onDrop: function _onDrop(\n  /**Event*/\n  evt) {\n    var el = this.el,\n        options = this.options; // Get the index of the dragged element within its parent\n\n    newIndex = index(dragEl);\n    newDraggableIndex = index(dragEl, options.draggable);\n    pluginEvent('drop', this, {\n      evt: evt\n    });\n    parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n    newIndex = index(dragEl);\n    newDraggableIndex = index(dragEl, options.draggable);\n\n    if (Sortable.eventCanceled) {\n      this._nulling();\n\n      return;\n    }\n\n    awaitingDragStarted = false;\n    isCircumstantialInvert = false;\n    pastFirstInvertThresh = false;\n    clearInterval(this._loopId);\n    clearTimeout(this._dragStartTimer);\n\n    _cancelNextTick(this.cloneId);\n\n    _cancelNextTick(this._dragStartId); // Unbind events\n\n\n    if (this.nativeDraggable) {\n      off(document, 'drop', this);\n      off(el, 'dragstart', this._onDragStart);\n    }\n\n    this._offMoveEvents();\n\n    this._offUpEvents();\n\n    if (Safari) {\n      css(document.body, 'user-select', '');\n    }\n\n    css(dragEl, 'transform', '');\n\n    if (evt) {\n      if (moved) {\n        evt.cancelable && evt.preventDefault();\n        !options.dropBubble && evt.stopPropagation();\n      }\n\n      ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n      if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n        // Remove clone(s)\n        cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n      }\n\n      if (dragEl) {\n        if (this.nativeDraggable) {\n          off(dragEl, 'dragend', this);\n        }\n\n        _disableDraggable(dragEl);\n\n        dragEl.style['will-change'] = ''; // Remove classes\n        // ghostClass is added in dragStarted\n\n        if (moved && !awaitingDragStarted) {\n          toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n        }\n\n        toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n        _dispatchEvent({\n          sortable: this,\n          name: 'unchoose',\n          toEl: parentEl,\n          newIndex: null,\n          newDraggableIndex: null,\n          originalEvent: evt\n        });\n\n        if (rootEl !== parentEl) {\n          if (newIndex >= 0) {\n            // Add event\n            _dispatchEvent({\n              rootEl: parentEl,\n              name: 'add',\n              toEl: parentEl,\n              fromEl: rootEl,\n              originalEvent: evt\n            }); // Remove event\n\n\n            _dispatchEvent({\n              sortable: this,\n              name: 'remove',\n              toEl: parentEl,\n              originalEvent: evt\n            }); // drag from one list and drop into another\n\n\n            _dispatchEvent({\n              rootEl: parentEl,\n              name: 'sort',\n              toEl: parentEl,\n              fromEl: rootEl,\n              originalEvent: evt\n            });\n\n            _dispatchEvent({\n              sortable: this,\n              name: 'sort',\n              toEl: parentEl,\n              originalEvent: evt\n            });\n          }\n\n          putSortable && putSortable.save();\n        } else {\n          if (newIndex !== oldIndex) {\n            if (newIndex >= 0) {\n              // drag & drop within the same list\n              _dispatchEvent({\n                sortable: this,\n                name: 'update',\n                toEl: parentEl,\n                originalEvent: evt\n              });\n\n              _dispatchEvent({\n                sortable: this,\n                name: 'sort',\n                toEl: parentEl,\n                originalEvent: evt\n              });\n            }\n          }\n        }\n\n        if (Sortable.active) {\n          /* jshint eqnull:true */\n          if (newIndex == null || newIndex === -1) {\n            newIndex = oldIndex;\n            newDraggableIndex = oldDraggableIndex;\n          }\n\n          _dispatchEvent({\n            sortable: this,\n            name: 'end',\n            toEl: parentEl,\n            originalEvent: evt\n          }); // Save sorting\n\n\n          this.save();\n        }\n      }\n    }\n\n    this._nulling();\n  },\n  _nulling: function _nulling() {\n    pluginEvent('nulling', this);\n    rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n    savedInputChecked.forEach(function (el) {\n      el.checked = true;\n    });\n    savedInputChecked.length = lastDx = lastDy = 0;\n  },\n  handleEvent: function handleEvent(\n  /**Event*/\n  evt) {\n    switch (evt.type) {\n      case 'drop':\n      case 'dragend':\n        this._onDrop(evt);\n\n        break;\n\n      case 'dragenter':\n      case 'dragover':\n        if (dragEl) {\n          this._onDragOver(evt);\n\n          _globalDragOver(evt);\n        }\n\n        break;\n\n      case 'selectstart':\n        evt.preventDefault();\n        break;\n    }\n  },\n\n  /**\n   * Serializes the item into an array of string.\n   * @returns {String[]}\n   */\n  toArray: function toArray() {\n    var order = [],\n        el,\n        children = this.el.children,\n        i = 0,\n        n = children.length,\n        options = this.options;\n\n    for (; i < n; i++) {\n      el = children[i];\n\n      if (closest(el, options.draggable, this.el, false)) {\n        order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n      }\n    }\n\n    return order;\n  },\n\n  /**\n   * Sorts the elements according to the array.\n   * @param  {String[]}  order  order of the items\n   */\n  sort: function sort(order) {\n    var items = {},\n        rootEl = this.el;\n    this.toArray().forEach(function (id, i) {\n      var el = rootEl.children[i];\n\n      if (closest(el, this.options.draggable, rootEl, false)) {\n        items[id] = el;\n      }\n    }, this);\n    order.forEach(function (id) {\n      if (items[id]) {\n        rootEl.removeChild(items[id]);\n        rootEl.appendChild(items[id]);\n      }\n    });\n  },\n\n  /**\n   * Save the current sorting\n   */\n  save: function save() {\n    var store = this.options.store;\n    store && store.set && store.set(this);\n  },\n\n  /**\n   * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n   * @param   {HTMLElement}  el\n   * @param   {String}       [selector]  default: `options.draggable`\n   * @returns {HTMLElement|null}\n   */\n  closest: function closest$1(el, selector) {\n    return closest(el, selector || this.options.draggable, this.el, false);\n  },\n\n  /**\n   * Set/get option\n   * @param   {string} name\n   * @param   {*}      [value]\n   * @returns {*}\n   */\n  option: function option(name, value) {\n    var options = this.options;\n\n    if (value === void 0) {\n      return options[name];\n    } else {\n      var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n      if (typeof modifiedValue !== 'undefined') {\n        options[name] = modifiedValue;\n      } else {\n        options[name] = value;\n      }\n\n      if (name === 'group') {\n        _prepareGroup(options);\n      }\n    }\n  },\n\n  /**\n   * Destroy\n   */\n  destroy: function destroy() {\n    pluginEvent('destroy', this);\n    var el = this.el;\n    el[expando] = null;\n    off(el, 'mousedown', this._onTapStart);\n    off(el, 'touchstart', this._onTapStart);\n    off(el, 'pointerdown', this._onTapStart);\n\n    if (this.nativeDraggable) {\n      off(el, 'dragover', this);\n      off(el, 'dragenter', this);\n    } // Remove draggable attributes\n\n\n    Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n      el.removeAttribute('draggable');\n    });\n\n    this._onDrop();\n\n    this._disableDelayedDragEvents();\n\n    sortables.splice(sortables.indexOf(this.el), 1);\n    this.el = el = null;\n  },\n  _hideClone: function _hideClone() {\n    if (!cloneHidden) {\n      pluginEvent('hideClone', this);\n      if (Sortable.eventCanceled) return;\n      css(cloneEl, 'display', 'none');\n\n      if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n        cloneEl.parentNode.removeChild(cloneEl);\n      }\n\n      cloneHidden = true;\n    }\n  },\n  _showClone: function _showClone(putSortable) {\n    if (putSortable.lastPutMode !== 'clone') {\n      this._hideClone();\n\n      return;\n    }\n\n    if (cloneHidden) {\n      pluginEvent('showClone', this);\n      if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n      if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n        rootEl.insertBefore(cloneEl, dragEl);\n      } else if (nextEl) {\n        rootEl.insertBefore(cloneEl, nextEl);\n      } else {\n        rootEl.appendChild(cloneEl);\n      }\n\n      if (this.options.group.revertClone) {\n        this.animate(dragEl, cloneEl);\n      }\n\n      css(cloneEl, 'display', '');\n      cloneHidden = false;\n    }\n  }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n  if (evt.dataTransfer) {\n    evt.dataTransfer.dropEffect = 'move';\n  }\n\n  evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n  var evt,\n      sortable = fromEl[expando],\n      onMoveFn = sortable.options.onMove,\n      retVal; // Support for new CustomEvent feature\n\n  if (window.CustomEvent && !IE11OrLess && !Edge) {\n    evt = new CustomEvent('move', {\n      bubbles: true,\n      cancelable: true\n    });\n  } else {\n    evt = document.createEvent('Event');\n    evt.initEvent('move', true, true);\n  }\n\n  evt.to = toEl;\n  evt.from = fromEl;\n  evt.dragged = dragEl;\n  evt.draggedRect = dragRect;\n  evt.related = targetEl || toEl;\n  evt.relatedRect = targetRect || getRect(toEl);\n  evt.willInsertAfter = willInsertAfter;\n  evt.originalEvent = originalEvent;\n  fromEl.dispatchEvent(evt);\n\n  if (onMoveFn) {\n    retVal = onMoveFn.call(sortable, evt, originalEvent);\n  }\n\n  return retVal;\n}\n\nfunction _disableDraggable(el) {\n  el.draggable = false;\n}\n\nfunction _unsilent() {\n  _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n  var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n  var spacer = 10;\n  return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n  var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n      targetLength = vertical ? targetRect.height : targetRect.width,\n      targetS1 = vertical ? targetRect.top : targetRect.left,\n      targetS2 = vertical ? targetRect.bottom : targetRect.right,\n      invert = false;\n\n  if (!invertSwap) {\n    // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n    if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n      // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n      // check if past first invert threshold on side opposite of lastDirection\n      if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n        // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n        pastFirstInvertThresh = true;\n      }\n\n      if (!pastFirstInvertThresh) {\n        // dragEl shadow (target move distance shadow)\n        if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n        : mouseOnAxis > targetS2 - targetMoveDistance) {\n          return -lastDirection;\n        }\n      } else {\n        invert = true;\n      }\n    } else {\n      // Regular\n      if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n        return _getInsertDirection(target);\n      }\n    }\n  }\n\n  invert = invert || invertSwap;\n\n  if (invert) {\n    // Invert of regular\n    if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n      return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n    }\n  }\n\n  return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param  {HTMLElement} target       The target whose position dragEl is being inserted at\n * @return {Number}                   Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n  if (index(dragEl) < index(target)) {\n    return 1;\n  } else {\n    return -1;\n  }\n}\n/**\n * Generate id\n * @param   {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n  var str = el.tagName + el.className + el.src + el.href + el.textContent,\n      i = str.length,\n      sum = 0;\n\n  while (i--) {\n    sum += str.charCodeAt(i);\n  }\n\n  return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n  savedInputChecked.length = 0;\n  var inputs = root.getElementsByTagName('input');\n  var idx = inputs.length;\n\n  while (idx--) {\n    var el = inputs[idx];\n    el.checked && savedInputChecked.push(el);\n  }\n}\n\nfunction _nextTick(fn) {\n  return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n  return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n  on(document, 'touchmove', function (evt) {\n    if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n      evt.preventDefault();\n    }\n  });\n} // Export utils\n\n\nSortable.utils = {\n  on: on,\n  off: off,\n  css: css,\n  find: find,\n  is: function is(el, selector) {\n    return !!closest(el, selector, el, false);\n  },\n  extend: extend,\n  throttle: throttle,\n  closest: closest,\n  toggleClass: toggleClass,\n  clone: clone,\n  index: index,\n  nextTick: _nextTick,\n  cancelNextTick: _cancelNextTick,\n  detectDirection: _detectDirection,\n  getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param  {HTMLElement} element The element\n * @return {Sortable|undefined}         The instance of Sortable\n */\n\nSortable.get = function (element) {\n  return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param  {...SortablePlugin|SortablePlugin[]} plugins       Plugins being mounted\n */\n\n\nSortable.mount = function () {\n  for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n    plugins[_key] = arguments[_key];\n  }\n\n  if (plugins[0].constructor === Array) plugins = plugins[0];\n  plugins.forEach(function (plugin) {\n    if (!plugin.prototype || !plugin.prototype.constructor) {\n      throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n    }\n\n    if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n    PluginManager.mount(plugin);\n  });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement}  el\n * @param {Object}      [options]\n */\n\n\nSortable.create = function (el, options) {\n  return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n    scrollEl,\n    scrollRootEl,\n    scrolling = false,\n    lastAutoScrollX,\n    lastAutoScrollY,\n    touchEvt$1,\n    pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n  function AutoScroll() {\n    this.defaults = {\n      scroll: true,\n      scrollSensitivity: 30,\n      scrollSpeed: 10,\n      bubbleScroll: true\n    }; // Bind all private methods\n\n    for (var fn in this) {\n      if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n        this[fn] = this[fn].bind(this);\n      }\n    }\n  }\n\n  AutoScroll.prototype = {\n    dragStarted: function dragStarted(_ref) {\n      var originalEvent = _ref.originalEvent;\n\n      if (this.sortable.nativeDraggable) {\n        on(document, 'dragover', this._handleAutoScroll);\n      } else {\n        if (this.options.supportPointer) {\n          on(document, 'pointermove', this._handleFallbackAutoScroll);\n        } else if (originalEvent.touches) {\n          on(document, 'touchmove', this._handleFallbackAutoScroll);\n        } else {\n          on(document, 'mousemove', this._handleFallbackAutoScroll);\n        }\n      }\n    },\n    dragOverCompleted: function dragOverCompleted(_ref2) {\n      var originalEvent = _ref2.originalEvent;\n\n      // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n      if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n        this._handleAutoScroll(originalEvent);\n      }\n    },\n    drop: function drop() {\n      if (this.sortable.nativeDraggable) {\n        off(document, 'dragover', this._handleAutoScroll);\n      } else {\n        off(document, 'pointermove', this._handleFallbackAutoScroll);\n        off(document, 'touchmove', this._handleFallbackAutoScroll);\n        off(document, 'mousemove', this._handleFallbackAutoScroll);\n      }\n\n      clearPointerElemChangedInterval();\n      clearAutoScrolls();\n      cancelThrottle();\n    },\n    nulling: function nulling() {\n      touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n      autoScrolls.length = 0;\n    },\n    _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n      this._handleAutoScroll(evt, true);\n    },\n    _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n      var _this = this;\n\n      var x = (evt.touches ? evt.touches[0] : evt).clientX,\n          y = (evt.touches ? evt.touches[0] : evt).clientY,\n          elem = document.elementFromPoint(x, y);\n      touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n      // Edge's autoscroll seems too conditional,\n      // MACOS Safari does not have autoscroll,\n      // Firefox and Chrome are good\n\n      if (fallback || Edge || IE11OrLess || Safari) {\n        autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n        var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n        if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n          pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n          pointerElemChangedInterval = setInterval(function () {\n            var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n            if (newElem !== ogElemScroller) {\n              ogElemScroller = newElem;\n              clearAutoScrolls();\n            }\n\n            autoScroll(evt, _this.options, newElem, fallback);\n          }, 10);\n          lastAutoScrollX = x;\n          lastAutoScrollY = y;\n        }\n      } else {\n        // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n        if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n          clearAutoScrolls();\n          return;\n        }\n\n        autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n      }\n    }\n  };\n  return _extends(AutoScroll, {\n    pluginName: 'scroll',\n    initializeByDefault: true\n  });\n}\n\nfunction clearAutoScrolls() {\n  autoScrolls.forEach(function (autoScroll) {\n    clearInterval(autoScroll.pid);\n  });\n  autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n  clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n  // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n  if (!options.scroll) return;\n  var x = (evt.touches ? evt.touches[0] : evt).clientX,\n      y = (evt.touches ? evt.touches[0] : evt).clientY,\n      sens = options.scrollSensitivity,\n      speed = options.scrollSpeed,\n      winScroller = getWindowScrollingElement();\n  var scrollThisInstance = false,\n      scrollCustomFn; // New scroll root, set scrollEl\n\n  if (scrollRootEl !== rootEl) {\n    scrollRootEl = rootEl;\n    clearAutoScrolls();\n    scrollEl = options.scroll;\n    scrollCustomFn = options.scrollFn;\n\n    if (scrollEl === true) {\n      scrollEl = getParentAutoScrollElement(rootEl, true);\n    }\n  }\n\n  var layersOut = 0;\n  var currentParent = scrollEl;\n\n  do {\n    var el = currentParent,\n        rect = getRect(el),\n        top = rect.top,\n        bottom = rect.bottom,\n        left = rect.left,\n        right = rect.right,\n        width = rect.width,\n        height = rect.height,\n        canScrollX = void 0,\n        canScrollY = void 0,\n        scrollWidth = el.scrollWidth,\n        scrollHeight = el.scrollHeight,\n        elCSS = css(el),\n        scrollPosX = el.scrollLeft,\n        scrollPosY = el.scrollTop;\n\n    if (el === winScroller) {\n      canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n      canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n    } else {\n      canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n      canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n    }\n\n    var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n    var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n    if (!autoScrolls[layersOut]) {\n      for (var i = 0; i <= layersOut; i++) {\n        if (!autoScrolls[i]) {\n          autoScrolls[i] = {};\n        }\n      }\n    }\n\n    if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n      autoScrolls[layersOut].el = el;\n      autoScrolls[layersOut].vx = vx;\n      autoScrolls[layersOut].vy = vy;\n      clearInterval(autoScrolls[layersOut].pid);\n\n      if (vx != 0 || vy != 0) {\n        scrollThisInstance = true;\n        /* jshint loopfunc:true */\n\n        autoScrolls[layersOut].pid = setInterval(function () {\n          // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n          if (isFallback && this.layer === 0) {\n            Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n          }\n\n          var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n          var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n          if (typeof scrollCustomFn === 'function') {\n            if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n              return;\n            }\n          }\n\n          scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n        }.bind({\n          layer: layersOut\n        }), 24);\n      }\n    }\n\n    layersOut++;\n  } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n  scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n  var originalEvent = _ref.originalEvent,\n      putSortable = _ref.putSortable,\n      dragEl = _ref.dragEl,\n      activeSortable = _ref.activeSortable,\n      dispatchSortableEvent = _ref.dispatchSortableEvent,\n      hideGhostForTarget = _ref.hideGhostForTarget,\n      unhideGhostForTarget = _ref.unhideGhostForTarget;\n  if (!originalEvent) return;\n  var toSortable = putSortable || activeSortable;\n  hideGhostForTarget();\n  var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n  var target = document.elementFromPoint(touch.clientX, touch.clientY);\n  unhideGhostForTarget();\n\n  if (toSortable && !toSortable.el.contains(target)) {\n    dispatchSortableEvent('spill');\n    this.onSpill({\n      dragEl: dragEl,\n      putSortable: putSortable\n    });\n  }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n  startIndex: null,\n  dragStart: function dragStart(_ref2) {\n    var oldDraggableIndex = _ref2.oldDraggableIndex;\n    this.startIndex = oldDraggableIndex;\n  },\n  onSpill: function onSpill(_ref3) {\n    var dragEl = _ref3.dragEl,\n        putSortable = _ref3.putSortable;\n    this.sortable.captureAnimationState();\n\n    if (putSortable) {\n      putSortable.captureAnimationState();\n    }\n\n    var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n    if (nextSibling) {\n      this.sortable.el.insertBefore(dragEl, nextSibling);\n    } else {\n      this.sortable.el.appendChild(dragEl);\n    }\n\n    this.sortable.animateAll();\n\n    if (putSortable) {\n      putSortable.animateAll();\n    }\n  },\n  drop: drop\n};\n\n_extends(Revert, {\n  pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n  onSpill: function onSpill(_ref4) {\n    var dragEl = _ref4.dragEl,\n        putSortable = _ref4.putSortable;\n    var parentSortable = putSortable || this.sortable;\n    parentSortable.captureAnimationState();\n    dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n    parentSortable.animateAll();\n  },\n  drop: drop\n};\n\n_extends(Remove, {\n  pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n  function Swap() {\n    this.defaults = {\n      swapClass: 'sortable-swap-highlight'\n    };\n  }\n\n  Swap.prototype = {\n    dragStart: function dragStart(_ref) {\n      var dragEl = _ref.dragEl;\n      lastSwapEl = dragEl;\n    },\n    dragOverValid: function dragOverValid(_ref2) {\n      var completed = _ref2.completed,\n          target = _ref2.target,\n          onMove = _ref2.onMove,\n          activeSortable = _ref2.activeSortable,\n          changed = _ref2.changed,\n          cancel = _ref2.cancel;\n      if (!activeSortable.options.swap) return;\n      var el = this.sortable.el,\n          options = this.options;\n\n      if (target && target !== el) {\n        var prevSwapEl = lastSwapEl;\n\n        if (onMove(target) !== false) {\n          toggleClass(target, options.swapClass, true);\n          lastSwapEl = target;\n        } else {\n          lastSwapEl = null;\n        }\n\n        if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n          toggleClass(prevSwapEl, options.swapClass, false);\n        }\n      }\n\n      changed();\n      completed(true);\n      cancel();\n    },\n    drop: function drop(_ref3) {\n      var activeSortable = _ref3.activeSortable,\n          putSortable = _ref3.putSortable,\n          dragEl = _ref3.dragEl;\n      var toSortable = putSortable || this.sortable;\n      var options = this.options;\n      lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n      if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n        if (dragEl !== lastSwapEl) {\n          toSortable.captureAnimationState();\n          if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n          swapNodes(dragEl, lastSwapEl);\n          toSortable.animateAll();\n          if (toSortable !== activeSortable) activeSortable.animateAll();\n        }\n      }\n    },\n    nulling: function nulling() {\n      lastSwapEl = null;\n    }\n  };\n  return _extends(Swap, {\n    pluginName: 'swap',\n    eventProperties: function eventProperties() {\n      return {\n        swapItem: lastSwapEl\n      };\n    }\n  });\n}\n\nfunction swapNodes(n1, n2) {\n  var p1 = n1.parentNode,\n      p2 = n2.parentNode,\n      i1,\n      i2;\n  if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n  i1 = index(n1);\n  i2 = index(n2);\n\n  if (p1.isEqualNode(p2) && i1 < i2) {\n    i2++;\n  }\n\n  p1.insertBefore(n2, p1.children[i1]);\n  p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n    multiDragClones = [],\n    lastMultiDragSelect,\n    // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n    initialFolding = false,\n    // Initial multi-drag fold when drag started\nfolding = false,\n    // Folding any other time\ndragStarted = false,\n    dragEl$1,\n    clonesFromRect,\n    clonesHidden;\n\nfunction MultiDragPlugin() {\n  function MultiDrag(sortable) {\n    // Bind all private methods\n    for (var fn in this) {\n      if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n        this[fn] = this[fn].bind(this);\n      }\n    }\n\n    if (sortable.options.supportPointer) {\n      on(document, 'pointerup', this._deselectMultiDrag);\n    } else {\n      on(document, 'mouseup', this._deselectMultiDrag);\n      on(document, 'touchend', this._deselectMultiDrag);\n    }\n\n    on(document, 'keydown', this._checkKeyDown);\n    on(document, 'keyup', this._checkKeyUp);\n    this.defaults = {\n      selectedClass: 'sortable-selected',\n      multiDragKey: null,\n      setData: function setData(dataTransfer, dragEl) {\n        var data = '';\n\n        if (multiDragElements.length && multiDragSortable === sortable) {\n          multiDragElements.forEach(function (multiDragElement, i) {\n            data += (!i ? '' : ', ') + multiDragElement.textContent;\n          });\n        } else {\n          data = dragEl.textContent;\n        }\n\n        dataTransfer.setData('Text', data);\n      }\n    };\n  }\n\n  MultiDrag.prototype = {\n    multiDragKeyDown: false,\n    isMultiDrag: false,\n    delayStartGlobal: function delayStartGlobal(_ref) {\n      var dragged = _ref.dragEl;\n      dragEl$1 = dragged;\n    },\n    delayEnded: function delayEnded() {\n      this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n    },\n    setupClone: function setupClone(_ref2) {\n      var sortable = _ref2.sortable,\n          cancel = _ref2.cancel;\n      if (!this.isMultiDrag) return;\n\n      for (var i = 0; i < multiDragElements.length; i++) {\n        multiDragClones.push(clone(multiDragElements[i]));\n        multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n        multiDragClones[i].draggable = false;\n        multiDragClones[i].style['will-change'] = '';\n        toggleClass(multiDragClones[i], this.options.selectedClass, false);\n        multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n      }\n\n      sortable._hideClone();\n\n      cancel();\n    },\n    clone: function clone(_ref3) {\n      var sortable = _ref3.sortable,\n          rootEl = _ref3.rootEl,\n          dispatchSortableEvent = _ref3.dispatchSortableEvent,\n          cancel = _ref3.cancel;\n      if (!this.isMultiDrag) return;\n\n      if (!this.options.removeCloneOnHide) {\n        if (multiDragElements.length && multiDragSortable === sortable) {\n          insertMultiDragClones(true, rootEl);\n          dispatchSortableEvent('clone');\n          cancel();\n        }\n      }\n    },\n    showClone: function showClone(_ref4) {\n      var cloneNowShown = _ref4.cloneNowShown,\n          rootEl = _ref4.rootEl,\n          cancel = _ref4.cancel;\n      if (!this.isMultiDrag) return;\n      insertMultiDragClones(false, rootEl);\n      multiDragClones.forEach(function (clone) {\n        css(clone, 'display', '');\n      });\n      cloneNowShown();\n      clonesHidden = false;\n      cancel();\n    },\n    hideClone: function hideClone(_ref5) {\n      var _this = this;\n\n      var sortable = _ref5.sortable,\n          cloneNowHidden = _ref5.cloneNowHidden,\n          cancel = _ref5.cancel;\n      if (!this.isMultiDrag) return;\n      multiDragClones.forEach(function (clone) {\n        css(clone, 'display', 'none');\n\n        if (_this.options.removeCloneOnHide && clone.parentNode) {\n          clone.parentNode.removeChild(clone);\n        }\n      });\n      cloneNowHidden();\n      clonesHidden = true;\n      cancel();\n    },\n    dragStartGlobal: function dragStartGlobal(_ref6) {\n      var sortable = _ref6.sortable;\n\n      if (!this.isMultiDrag && multiDragSortable) {\n        multiDragSortable.multiDrag._deselectMultiDrag();\n      }\n\n      multiDragElements.forEach(function (multiDragElement) {\n        multiDragElement.sortableIndex = index(multiDragElement);\n      }); // Sort multi-drag elements\n\n      multiDragElements = multiDragElements.sort(function (a, b) {\n        return a.sortableIndex - b.sortableIndex;\n      });\n      dragStarted = true;\n    },\n    dragStarted: function dragStarted(_ref7) {\n      var _this2 = this;\n\n      var sortable = _ref7.sortable;\n      if (!this.isMultiDrag) return;\n\n      if (this.options.sort) {\n        // Capture rects,\n        // hide multi drag elements (by positioning them absolute),\n        // set multi drag elements rects to dragRect,\n        // show multi drag elements,\n        // animate to rects,\n        // unset rects & remove from DOM\n        sortable.captureAnimationState();\n\n        if (this.options.animation) {\n          multiDragElements.forEach(function (multiDragElement) {\n            if (multiDragElement === dragEl$1) return;\n            css(multiDragElement, 'position', 'absolute');\n          });\n          var dragRect = getRect(dragEl$1, false, true, true);\n          multiDragElements.forEach(function (multiDragElement) {\n            if (multiDragElement === dragEl$1) return;\n            setRect(multiDragElement, dragRect);\n          });\n          folding = true;\n          initialFolding = true;\n        }\n      }\n\n      sortable.animateAll(function () {\n        folding = false;\n        initialFolding = false;\n\n        if (_this2.options.animation) {\n          multiDragElements.forEach(function (multiDragElement) {\n            unsetRect(multiDragElement);\n          });\n        } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n        if (_this2.options.sort) {\n          removeMultiDragElements();\n        }\n      });\n    },\n    dragOver: function dragOver(_ref8) {\n      var target = _ref8.target,\n          completed = _ref8.completed,\n          cancel = _ref8.cancel;\n\n      if (folding && ~multiDragElements.indexOf(target)) {\n        completed(false);\n        cancel();\n      }\n    },\n    revert: function revert(_ref9) {\n      var fromSortable = _ref9.fromSortable,\n          rootEl = _ref9.rootEl,\n          sortable = _ref9.sortable,\n          dragRect = _ref9.dragRect;\n\n      if (multiDragElements.length > 1) {\n        // Setup unfold animation\n        multiDragElements.forEach(function (multiDragElement) {\n          sortable.addAnimationState({\n            target: multiDragElement,\n            rect: folding ? getRect(multiDragElement) : dragRect\n          });\n          unsetRect(multiDragElement);\n          multiDragElement.fromRect = dragRect;\n          fromSortable.removeAnimationState(multiDragElement);\n        });\n        folding = false;\n        insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n      }\n    },\n    dragOverCompleted: function dragOverCompleted(_ref10) {\n      var sortable = _ref10.sortable,\n          isOwner = _ref10.isOwner,\n          insertion = _ref10.insertion,\n          activeSortable = _ref10.activeSortable,\n          parentEl = _ref10.parentEl,\n          putSortable = _ref10.putSortable;\n      var options = this.options;\n\n      if (insertion) {\n        // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n        if (isOwner) {\n          activeSortable._hideClone();\n        }\n\n        initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n        if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n          // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n          var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n          multiDragElements.forEach(function (multiDragElement) {\n            if (multiDragElement === dragEl$1) return;\n            setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n            // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n            parentEl.appendChild(multiDragElement);\n          });\n          folding = true;\n        } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n        if (!isOwner) {\n          // Only remove if not folding (folding will remove them anyways)\n          if (!folding) {\n            removeMultiDragElements();\n          }\n\n          if (multiDragElements.length > 1) {\n            var clonesHiddenBefore = clonesHidden;\n\n            activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n            if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n              multiDragClones.forEach(function (clone) {\n                activeSortable.addAnimationState({\n                  target: clone,\n                  rect: clonesFromRect\n                });\n                clone.fromRect = clonesFromRect;\n                clone.thisAnimationDuration = null;\n              });\n            }\n          } else {\n            activeSortable._showClone(sortable);\n          }\n        }\n      }\n    },\n    dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n      var dragRect = _ref11.dragRect,\n          isOwner = _ref11.isOwner,\n          activeSortable = _ref11.activeSortable;\n      multiDragElements.forEach(function (multiDragElement) {\n        multiDragElement.thisAnimationDuration = null;\n      });\n\n      if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n        clonesFromRect = _extends({}, dragRect);\n        var dragMatrix = matrix(dragEl$1, true);\n        clonesFromRect.top -= dragMatrix.f;\n        clonesFromRect.left -= dragMatrix.e;\n      }\n    },\n    dragOverAnimationComplete: function dragOverAnimationComplete() {\n      if (folding) {\n        folding = false;\n        removeMultiDragElements();\n      }\n    },\n    drop: function drop(_ref12) {\n      var evt = _ref12.originalEvent,\n          rootEl = _ref12.rootEl,\n          parentEl = _ref12.parentEl,\n          sortable = _ref12.sortable,\n          dispatchSortableEvent = _ref12.dispatchSortableEvent,\n          oldIndex = _ref12.oldIndex,\n          putSortable = _ref12.putSortable;\n      var toSortable = putSortable || this.sortable;\n      if (!evt) return;\n      var options = this.options,\n          children = parentEl.children; // Multi-drag selection\n\n      if (!dragStarted) {\n        if (options.multiDragKey && !this.multiDragKeyDown) {\n          this._deselectMultiDrag();\n        }\n\n        toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n        if (!~multiDragElements.indexOf(dragEl$1)) {\n          multiDragElements.push(dragEl$1);\n          dispatchEvent({\n            sortable: sortable,\n            rootEl: rootEl,\n            name: 'select',\n            targetEl: dragEl$1,\n            originalEvt: evt\n          }); // Modifier activated, select from last to dragEl\n\n          if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n            var lastIndex = index(lastMultiDragSelect),\n                currentIndex = index(dragEl$1);\n\n            if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n              // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n              // (but previous selection existed)\n              var n, i;\n\n              if (currentIndex > lastIndex) {\n                i = lastIndex;\n                n = currentIndex;\n              } else {\n                i = currentIndex;\n                n = lastIndex + 1;\n              }\n\n              for (; i < n; i++) {\n                if (~multiDragElements.indexOf(children[i])) continue;\n                toggleClass(children[i], options.selectedClass, true);\n                multiDragElements.push(children[i]);\n                dispatchEvent({\n                  sortable: sortable,\n                  rootEl: rootEl,\n                  name: 'select',\n                  targetEl: children[i],\n                  originalEvt: evt\n                });\n              }\n            }\n          } else {\n            lastMultiDragSelect = dragEl$1;\n          }\n\n          multiDragSortable = toSortable;\n        } else {\n          multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n          lastMultiDragSelect = null;\n          dispatchEvent({\n            sortable: sortable,\n            rootEl: rootEl,\n            name: 'deselect',\n            targetEl: dragEl$1,\n            originalEvt: evt\n          });\n        }\n      } // Multi-drag drop\n\n\n      if (dragStarted && this.isMultiDrag) {\n        // Do not \"unfold\" after around dragEl if reverted\n        if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n          var dragRect = getRect(dragEl$1),\n              multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n          if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n          toSortable.captureAnimationState();\n\n          if (!initialFolding) {\n            if (options.animation) {\n              dragEl$1.fromRect = dragRect;\n              multiDragElements.forEach(function (multiDragElement) {\n                multiDragElement.thisAnimationDuration = null;\n\n                if (multiDragElement !== dragEl$1) {\n                  var rect = folding ? getRect(multiDragElement) : dragRect;\n                  multiDragElement.fromRect = rect; // Prepare unfold animation\n\n                  toSortable.addAnimationState({\n                    target: multiDragElement,\n                    rect: rect\n                  });\n                }\n              });\n            } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n            // properly they must all be removed\n\n\n            removeMultiDragElements();\n            multiDragElements.forEach(function (multiDragElement) {\n              if (children[multiDragIndex]) {\n                parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n              } else {\n                parentEl.appendChild(multiDragElement);\n              }\n\n              multiDragIndex++;\n            }); // If initial folding is done, the elements may have changed position because they are now\n            // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n            // must be fired here as Sortable will not.\n\n            if (oldIndex === index(dragEl$1)) {\n              var update = false;\n              multiDragElements.forEach(function (multiDragElement) {\n                if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n                  update = true;\n                  return;\n                }\n              });\n\n              if (update) {\n                dispatchSortableEvent('update');\n              }\n            }\n          } // Must be done after capturing individual rects (scroll bar)\n\n\n          multiDragElements.forEach(function (multiDragElement) {\n            unsetRect(multiDragElement);\n          });\n          toSortable.animateAll();\n        }\n\n        multiDragSortable = toSortable;\n      } // Remove clones if necessary\n\n\n      if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n        multiDragClones.forEach(function (clone) {\n          clone.parentNode && clone.parentNode.removeChild(clone);\n        });\n      }\n    },\n    nullingGlobal: function nullingGlobal() {\n      this.isMultiDrag = dragStarted = false;\n      multiDragClones.length = 0;\n    },\n    destroyGlobal: function destroyGlobal() {\n      this._deselectMultiDrag();\n\n      off(document, 'pointerup', this._deselectMultiDrag);\n      off(document, 'mouseup', this._deselectMultiDrag);\n      off(document, 'touchend', this._deselectMultiDrag);\n      off(document, 'keydown', this._checkKeyDown);\n      off(document, 'keyup', this._checkKeyUp);\n    },\n    _deselectMultiDrag: function _deselectMultiDrag(evt) {\n      if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n      if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n      if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n      if (evt && evt.button !== 0) return;\n\n      while (multiDragElements.length) {\n        var el = multiDragElements[0];\n        toggleClass(el, this.options.selectedClass, false);\n        multiDragElements.shift();\n        dispatchEvent({\n          sortable: this.sortable,\n          rootEl: this.sortable.el,\n          name: 'deselect',\n          targetEl: el,\n          originalEvt: evt\n        });\n      }\n    },\n    _checkKeyDown: function _checkKeyDown(evt) {\n      if (evt.key === this.options.multiDragKey) {\n        this.multiDragKeyDown = true;\n      }\n    },\n    _checkKeyUp: function _checkKeyUp(evt) {\n      if (evt.key === this.options.multiDragKey) {\n        this.multiDragKeyDown = false;\n      }\n    }\n  };\n  return _extends(MultiDrag, {\n    // Static methods & properties\n    pluginName: 'multiDrag',\n    utils: {\n      /**\r\n       * Selects the provided multi-drag item\r\n       * @param  {HTMLElement} el    The element to be selected\r\n       */\n      select: function select(el) {\n        var sortable = el.parentNode[expando];\n        if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n        if (multiDragSortable && multiDragSortable !== sortable) {\n          multiDragSortable.multiDrag._deselectMultiDrag();\n\n          multiDragSortable = sortable;\n        }\n\n        toggleClass(el, sortable.options.selectedClass, true);\n        multiDragElements.push(el);\n      },\n\n      /**\r\n       * Deselects the provided multi-drag item\r\n       * @param  {HTMLElement} el    The element to be deselected\r\n       */\n      deselect: function deselect(el) {\n        var sortable = el.parentNode[expando],\n            index = multiDragElements.indexOf(el);\n        if (!sortable || !sortable.options.multiDrag || !~index) return;\n        toggleClass(el, sortable.options.selectedClass, false);\n        multiDragElements.splice(index, 1);\n      }\n    },\n    eventProperties: function eventProperties() {\n      var _this3 = this;\n\n      var oldIndicies = [],\n          newIndicies = [];\n      multiDragElements.forEach(function (multiDragElement) {\n        oldIndicies.push({\n          multiDragElement: multiDragElement,\n          index: multiDragElement.sortableIndex\n        }); // multiDragElements will already be sorted if folding\n\n        var newIndex;\n\n        if (folding && multiDragElement !== dragEl$1) {\n          newIndex = -1;\n        } else if (folding) {\n          newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n        } else {\n          newIndex = index(multiDragElement);\n        }\n\n        newIndicies.push({\n          multiDragElement: multiDragElement,\n          index: newIndex\n        });\n      });\n      return {\n        items: _toConsumableArray(multiDragElements),\n        clones: [].concat(multiDragClones),\n        oldIndicies: oldIndicies,\n        newIndicies: newIndicies\n      };\n    },\n    optionListeners: {\n      multiDragKey: function multiDragKey(key) {\n        key = key.toLowerCase();\n\n        if (key === 'ctrl') {\n          key = 'Control';\n        } else if (key.length > 1) {\n          key = key.charAt(0).toUpperCase() + key.substr(1);\n        }\n\n        return key;\n      }\n    }\n  });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n  multiDragElements.forEach(function (multiDragElement, i) {\n    var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n    if (target) {\n      rootEl.insertBefore(multiDragElement, target);\n    } else {\n      rootEl.appendChild(multiDragElement);\n    }\n  });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param  {[Boolean]} elementsInserted  Whether the multi-drag elements are inserted\r\n * @param  {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n  multiDragClones.forEach(function (clone, i) {\n    var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n    if (target) {\n      rootEl.insertBefore(clone, target);\n    } else {\n      rootEl.appendChild(clone);\n    }\n  });\n}\n\nfunction removeMultiDragElements() {\n  multiDragElements.forEach(function (multiDragElement) {\n    if (multiDragElement === dragEl$1) return;\n    multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n  });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n  var regexp = /./;\n  try {\n    '/./'[METHOD_NAME](regexp);\n  } catch (e) {\n    try {\n      regexp[MATCH] = false;\n      return '/./'[METHOD_NAME](regexp);\n    } catch (f) { /* empty */ }\n  } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n  exec: exec\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.dotAll) result += 's';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n","import './VResponsive.sass'\n\n// Mixins\nimport Measurable, { NumberOrNumberString } from '../../mixins/measurable'\n\n// Types\nimport { VNode } from 'vue'\n\n// Utils\nimport mixins from '../../util/mixins'\n\n/* @vue/component */\nexport default mixins(Measurable).extend({\n  name: 'v-responsive',\n\n  props: {\n    aspectRatio: [String, Number] as NumberOrNumberString,\n  },\n\n  computed: {\n    computedAspectRatio (): number {\n      return Number(this.aspectRatio)\n    },\n    aspectStyle (): object | undefined {\n      return this.computedAspectRatio\n        ? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }\n        : undefined\n    },\n    __cachedSizer (): VNode | [] {\n      if (!this.aspectStyle) return []\n\n      return this.$createElement('div', {\n        style: this.aspectStyle,\n        staticClass: 'v-responsive__sizer',\n      })\n    },\n  },\n\n  methods: {\n    genContent (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-responsive__content',\n      }, this.$slots.default)\n    },\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: 'v-responsive',\n      style: this.measurableStyles,\n      on: this.$listeners,\n    }, [\n      this.__cachedSizer,\n      this.genContent(),\n    ])\n  },\n})\n","import VResponsive from './VResponsive'\n\nexport { VResponsive }\nexport default VResponsive\n","// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n  src: string\n  srcset?: string\n  lazySrc: string\n  aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n  VResponsive,\n  Themeable,\n).extend({\n  name: 'v-img',\n\n  directives: { intersect },\n\n  props: {\n    alt: String,\n    contain: Boolean,\n    eager: Boolean,\n    gradient: String,\n    lazySrc: String,\n    options: {\n      type: Object,\n      // For more information on types, navigate to:\n      // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n      default: () => ({\n        root: undefined,\n        rootMargin: undefined,\n        threshold: undefined,\n      }),\n    },\n    position: {\n      type: String,\n      default: 'center center',\n    },\n    sizes: String,\n    src: {\n      type: [String, Object],\n      default: '',\n    } as PropValidator<string | srcObject>,\n    srcset: String,\n    transition: {\n      type: [Boolean, String],\n      default: 'fade-transition',\n    },\n  },\n\n  data () {\n    return {\n      currentSrc: '', // Set from srcset\n      image: null as HTMLImageElement | null,\n      isLoading: true,\n      calculatedAspectRatio: undefined as number | undefined,\n      naturalWidth: undefined as number | undefined,\n      hasError: false,\n    }\n  },\n\n  computed: {\n    computedAspectRatio (): number {\n      return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n    },\n    normalisedSrc (): srcObject {\n      return typeof this.src === 'string'\n        ? {\n          src: this.src,\n          srcset: this.srcset,\n          lazySrc: this.lazySrc,\n          aspect: Number(this.aspectRatio || 0),\n        } : {\n          src: this.src.src,\n          srcset: this.srcset || this.src.srcset,\n          lazySrc: this.lazySrc || this.src.lazySrc,\n          aspect: Number(this.aspectRatio || this.src.aspect),\n        }\n    },\n    __cachedImage (): VNode | [] {\n      if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n      const backgroundImage: string[] = []\n      const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n      if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n      if (src) backgroundImage.push(`url(\"${src}\")`)\n\n      const image = this.$createElement('div', {\n        staticClass: 'v-image__image',\n        class: {\n          'v-image__image--preload': this.isLoading,\n          'v-image__image--contain': this.contain,\n          'v-image__image--cover': !this.contain,\n        },\n        style: {\n          backgroundImage: backgroundImage.join(', '),\n          backgroundPosition: this.position,\n        },\n        key: +this.isLoading,\n      })\n\n      /* istanbul ignore if */\n      if (!this.transition) return image\n\n      return this.$createElement('transition', {\n        attrs: {\n          name: this.transition,\n          mode: 'in-out',\n        },\n      }, [image])\n    },\n  },\n\n  watch: {\n    src () {\n      // Force re-init when src changes\n      if (!this.isLoading) this.init(undefined, undefined, true)\n      else this.loadImage()\n    },\n    '$vuetify.breakpoint.width': 'getSrc',\n  },\n\n  mounted () {\n    this.init()\n  },\n\n  methods: {\n    init (\n      entries?: IntersectionObserverEntry[],\n      observer?: IntersectionObserver,\n      isIntersecting?: boolean\n    ) {\n      // If the current browser supports the intersection\n      // observer api, the image is not observable, and\n      // the eager prop isn't being used, do not load\n      if (\n        hasIntersect &&\n        !isIntersecting &&\n        !this.eager\n      ) return\n\n      if (this.normalisedSrc.lazySrc) {\n        const lazyImg = new Image()\n        lazyImg.src = this.normalisedSrc.lazySrc\n        this.pollForSize(lazyImg, null)\n      }\n      /* istanbul ignore else */\n      if (this.normalisedSrc.src) this.loadImage()\n    },\n    onLoad () {\n      this.getSrc()\n      this.isLoading = false\n      this.$emit('load', this.src)\n    },\n    onError () {\n      this.hasError = true\n      this.$emit('error', this.src)\n    },\n    getSrc () {\n      /* istanbul ignore else */\n      if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n    },\n    loadImage () {\n      const image = new Image()\n      this.image = image\n\n      image.onload = () => {\n        /* istanbul ignore if */\n        if (image.decode) {\n          image.decode().catch((err: DOMException) => {\n            consoleWarn(\n              `Failed to decode image, trying to render anyway\\n\\n` +\n              `src: ${this.normalisedSrc.src}` +\n              (err.message ? `\\nOriginal error: ${err.message}` : ''),\n              this\n            )\n          }).then(this.onLoad)\n        } else {\n          this.onLoad()\n        }\n      }\n      image.onerror = this.onError\n\n      this.hasError = false\n      image.src = this.normalisedSrc.src\n      this.sizes && (image.sizes = this.sizes)\n      this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n\n      this.aspectRatio || this.pollForSize(image)\n      this.getSrc()\n    },\n    pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n      const poll = () => {\n        const { naturalHeight, naturalWidth } = img\n\n        if (naturalHeight || naturalWidth) {\n          this.naturalWidth = naturalWidth\n          this.calculatedAspectRatio = naturalWidth / naturalHeight\n        } else {\n          timeout != null && !this.hasError && setTimeout(poll, timeout)\n        }\n      }\n\n      poll()\n    },\n    genContent () {\n      const content: VNode = VResponsive.options.methods.genContent.call(this)\n      if (this.naturalWidth) {\n        this._b(content.data!, 'div', {\n          style: { width: `${this.naturalWidth}px` },\n        })\n      }\n\n      return content\n    },\n    __genPlaceholder (): VNode | void {\n      if (this.$slots.placeholder) {\n        const placeholder = this.isLoading\n          ? [this.$createElement('div', {\n            staticClass: 'v-image__placeholder',\n          }, this.$slots.placeholder)]\n          : []\n\n        if (!this.transition) return placeholder[0]\n\n        return this.$createElement('transition', {\n          props: {\n            appear: true,\n            name: this.transition,\n          },\n        }, placeholder)\n      }\n    },\n  },\n\n  render (h): VNode {\n    const node = VResponsive.options.render.call(this, h)\n\n    const data = mergeData(node.data!, {\n      staticClass: 'v-image',\n      attrs: {\n        'aria-label': this.alt,\n        role: this.alt ? 'img' : undefined,\n      },\n      class: this.themeClasses,\n      // Only load intersect directive if it\n      // will work in the current browser.\n      directives: hasIntersect\n        ? [{\n          name: 'intersect',\n          modifiers: { once: true },\n          value: {\n            handler: this.init,\n            options: this.options,\n          },\n        }]\n        : undefined,\n    })\n\n    node.children = [\n      this.__cachedSizer,\n      this.__cachedImage,\n      this.__genPlaceholder(),\n      this.genContent(),\n    ] as VNode[]\n\n    return h(node.tag, data, node.children)\n  },\n})\n","export default function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n  if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n  if (!options) options = {};\n  var method = [][METHOD_NAME];\n  var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n  var argument0 = has(options, 0) ? options[0] : thrower;\n  var argument1 = has(options, 1) ? options[1] : undefined;\n\n  return cache[METHOD_NAME] = !!method && !fails(function () {\n    if (ACCESSORS && !DESCRIPTORS) return true;\n    var O = { length: -1 };\n\n    if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n    else O[1] = 1;\n\n    method.call(O, argument0, argument1);\n  });\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    var test = ''[METHOD_NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  });\n};\n","import Vue from 'vue'\n\nexport default Vue.extend({\n  name: 'sizeable',\n\n  props: {\n    large: Boolean,\n    small: Boolean,\n    xLarge: Boolean,\n    xSmall: Boolean,\n  },\n\n  computed: {\n    medium (): boolean {\n      return Boolean(\n        !this.xSmall &&\n        !this.small &&\n        !this.large &&\n        !this.xLarge\n      )\n    },\n    sizeableClasses (): object {\n      return {\n        'v-size--x-small': this.xSmall,\n        'v-size--small': this.small,\n        'v-size--default': this.medium,\n        'v-size--large': this.large,\n        'v-size--x-large': this.xLarge,\n      }\n    },\n  },\n})\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n  return '[object ' + classof(this) + ']';\n};\n","// Styles\nimport './VCard.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Routable from '../../mixins/routable'\n\n// Helpers\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n  Loadable,\n  Routable,\n  VSheet\n).extend({\n  name: 'v-card',\n\n  props: {\n    flat: Boolean,\n    hover: Boolean,\n    img: String,\n    link: Boolean,\n    loaderHeight: {\n      type: [Number, String],\n      default: 4,\n    },\n    raised: Boolean,\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-card': true,\n        ...Routable.options.computed.classes.call(this),\n        'v-card--flat': this.flat,\n        'v-card--hover': this.hover,\n        'v-card--link': this.isClickable,\n        'v-card--loading': this.loading,\n        'v-card--disabled': this.disabled,\n        'v-card--raised': this.raised,\n        ...VSheet.options.computed.classes.call(this),\n      }\n    },\n    styles (): object {\n      const style: Dictionary<string> = {\n        ...VSheet.options.computed.styles.call(this),\n      }\n\n      if (this.img) {\n        style.background = `url(\"${this.img}\") center center / cover no-repeat`\n      }\n\n      return style\n    },\n  },\n\n  methods: {\n    genProgress () {\n      const render = Loadable.options.methods.genProgress.call(this)\n\n      if (!render) return null\n\n      return this.$createElement('div', {\n        staticClass: 'v-card__progress',\n        key: 'progress',\n      }, [render])\n    },\n  },\n\n  render (h): VNode {\n    const { tag, data } = this.generateRouteLink()\n\n    data.style = this.styles\n\n    if (this.isClickable) {\n      data.attrs = data.attrs || {}\n      data.attrs.tabindex = 0\n    }\n\n    return h(tag, this.setBackgroundColor(this.color, data), [\n      this.genProgress(),\n      this.$slots.default,\n    ])\n  },\n})\n","var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n  defineProperty(FunctionPrototype, NAME, {\n    configurable: true,\n    get: function () {\n      try {\n        return FunctionPrototypeToString.call(this).match(nameRE)[1];\n      } catch (error) {\n        return '';\n      }\n    }\n  });\n}\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n  flush = function () {\n    var parent, fn;\n    if (IS_NODE && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (error) {\n        if (head) notify();\n        else last = undefined;\n        throw error;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // Node.js\n  if (IS_NODE) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n  } else if (MutationObserver && !IS_IOS) {\n    toggle = true;\n    node = document.createTextNode('');\n    new MutationObserver(flush).observe(node, { characterData: true });\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    promise = Promise.resolve(undefined);\n    then = promise.then;\n    notify = function () {\n      then.call(promise, flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    notify = function () {\n      // strange IE + webpack dev server bug - use .call(global)\n      macrotask.call(global, flush);\n    };\n  }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n  var task = { fn: fn, next: undefined };\n  if (last) last.next = task;\n  if (!head) {\n    head = task;\n    notify();\n  } last = task;\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!has(WellKnownSymbolsStore, name)) {\n    if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n    else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n  keys: function keys(it) {\n    return nativeKeys(toObject(it));\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n  var n = 0;\n  var x2 = x;\n  while (x2 >= 4096) {\n    n += 12;\n    x2 /= 4096;\n  }\n  while (x2 >= 2) {\n    n += 1;\n    x2 /= 2;\n  } return n;\n};\n\nvar FORCED = nativeToFixed && (\n  0.00008.toFixed(3) !== '0.000' ||\n  0.9.toFixed(0) !== '1' ||\n  1.255.toFixed(2) !== '1.25' ||\n  1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n  // V8 ~ Android 4.3-\n  nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n  // eslint-disable-next-line max-statements\n  toFixed: function toFixed(fractionDigits) {\n    var number = thisNumberValue(this);\n    var fractDigits = toInteger(fractionDigits);\n    var data = [0, 0, 0, 0, 0, 0];\n    var sign = '';\n    var result = '0';\n    var e, z, j, k;\n\n    var multiply = function (n, c) {\n      var index = -1;\n      var c2 = c;\n      while (++index < 6) {\n        c2 += n * data[index];\n        data[index] = c2 % 1e7;\n        c2 = floor(c2 / 1e7);\n      }\n    };\n\n    var divide = function (n) {\n      var index = 6;\n      var c = 0;\n      while (--index >= 0) {\n        c += data[index];\n        data[index] = floor(c / n);\n        c = (c % n) * 1e7;\n      }\n    };\n\n    var dataToString = function () {\n      var index = 6;\n      var s = '';\n      while (--index >= 0) {\n        if (s !== '' || index === 0 || data[index] !== 0) {\n          var t = String(data[index]);\n          s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n        }\n      } return s;\n    };\n\n    if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n    // eslint-disable-next-line no-self-compare\n    if (number != number) return 'NaN';\n    if (number <= -1e21 || number >= 1e21) return String(number);\n    if (number < 0) {\n      sign = '-';\n      number = -number;\n    }\n    if (number > 1e-21) {\n      e = log(number * pow(2, 69, 1)) - 69;\n      z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n      z *= 0x10000000000000;\n      e = 52 - e;\n      if (e > 0) {\n        multiply(0, z);\n        j = fractDigits;\n        while (j >= 7) {\n          multiply(1e7, 0);\n          j -= 7;\n        }\n        multiply(pow(10, j, 1), 0);\n        j = e - 1;\n        while (j >= 23) {\n          divide(1 << 23);\n          j -= 23;\n        }\n        divide(1 << j);\n        multiply(1, 1);\n        divide(2);\n        result = dataToString();\n      } else {\n        multiply(0, z);\n        multiply(1 << -e, 0);\n        result = dataToString() + repeat.call('0', fractDigits);\n      }\n    }\n    if (fractDigits > 0) {\n      k = result.length;\n      result = sign + (k <= fractDigits\n        ? '0.' + repeat.call('0', fractDigits - k) + result\n        : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n    } else {\n      result = sign + result;\n    } return result;\n  }\n});\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push.call(target, value); // filter\n        } else if (IS_EVERY) return false;  // every\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6)\n};\n","import Vue from 'vue'\n\nimport mixins from '../../util/mixins'\nimport { VOverlay } from '../../components/VOverlay'\n\ninterface options extends Vue {\n  $el: HTMLElement\n  $refs: {\n    content: HTMLElement\n  }\n  overlay?: InstanceType<typeof VOverlay>\n}\n\ninterface DependentInstance extends Vue {\n  isActive?: boolean\n  isDependent?: boolean\n}\n\nfunction searchChildren (children: Vue[]): DependentInstance[] {\n  const results = []\n  for (let index = 0; index < children.length; index++) {\n    const child = children[index] as DependentInstance\n    if (child.isActive && child.isDependent) {\n      results.push(child)\n    } else {\n      results.push(...searchChildren(child.$children))\n    }\n  }\n\n  return results\n}\n\n/* @vue/component */\nexport default mixins<options>().extend({\n  name: 'dependent',\n\n  data () {\n    return {\n      closeDependents: true,\n      isActive: false,\n      isDependent: true,\n    }\n  },\n\n  watch: {\n    isActive (val) {\n      if (val) return\n\n      const openDependents = this.getOpenDependents()\n      for (let index = 0; index < openDependents.length; index++) {\n        openDependents[index].isActive = false\n      }\n    },\n  },\n\n  methods: {\n    getOpenDependents (): any[] {\n      if (this.closeDependents) return searchChildren(this.$children)\n\n      return []\n    },\n    getOpenDependentElements (): HTMLElement[] {\n      const result = []\n      const openDependents = this.getOpenDependents()\n\n      for (let index = 0; index < openDependents.length; index++) {\n        result.push(...openDependents[index].getClickableDependentElements())\n      }\n\n      return result\n    },\n    getClickableDependentElements (): HTMLElement[] {\n      const result = [this.$el]\n      if (this.$refs.content) result.push(this.$refs.content)\n      if (this.overlay) result.push(this.overlay.$el as HTMLElement)\n      result.push(...this.getOpenDependentElements())\n\n      return result\n    },\n  },\n})\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n  var it;\n\n  if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n    if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n      if (it) o = it;\n      var i = 0;\n\n      var F = function F() {};\n\n      return {\n        s: F,\n        n: function n() {\n          if (i >= o.length) return {\n            done: true\n          };\n          return {\n            done: false,\n            value: o[i++]\n          };\n        },\n        e: function e(_e) {\n          throw _e;\n        },\n        f: F\n      };\n    }\n\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  var normalCompletion = true,\n      didErr = false,\n      err;\n  return {\n    s: function s() {\n      it = o[Symbol.iterator]();\n    },\n    n: function n() {\n      var step = it.next();\n      normalCompletion = step.done;\n      return step;\n    },\n    e: function e(_e2) {\n      didErr = true;\n      err = _e2;\n    },\n    f: function f() {\n      try {\n        if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n      } finally {\n        if (didErr) throw err;\n      }\n    }\n  };\n}","// Styles\nimport './VChip.sass'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Components\nimport { VExpandXTransition } from '../transitions'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\nimport Routable from '../../mixins/routable'\nimport Sizeable from '../../mixins/sizeable'\n\n// Utilities\nimport { breaking } from '../../util/console'\n\n// Types\nimport { PropValidator, PropType } from 'vue/types/options'\n\n/* @vue/component */\nexport default mixins(\n  Colorable,\n  Sizeable,\n  Routable,\n  Themeable,\n  GroupableFactory('chipGroup'),\n  ToggleableFactory('inputValue')\n).extend({\n  name: 'v-chip',\n\n  props: {\n    active: {\n      type: Boolean,\n      default: true,\n    },\n    activeClass: {\n      type: String,\n      default (): string | undefined {\n        if (!this.chipGroup) return ''\n\n        return this.chipGroup.activeClass\n      },\n    } as any as PropValidator<string>,\n    close: Boolean,\n    closeIcon: {\n      type: String,\n      default: '$delete',\n    },\n    disabled: Boolean,\n    draggable: Boolean,\n    filter: Boolean,\n    filterIcon: {\n      type: String,\n      default: '$complete',\n    },\n    label: Boolean,\n    link: Boolean,\n    outlined: Boolean,\n    pill: Boolean,\n    tag: {\n      type: String,\n      default: 'span',\n    },\n    textColor: String,\n    value: null as any as PropType<any>,\n  },\n\n  data: () => ({\n    proxyClass: 'v-chip--active',\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        'v-chip': true,\n        ...Routable.options.computed.classes.call(this),\n        'v-chip--clickable': this.isClickable,\n        'v-chip--disabled': this.disabled,\n        'v-chip--draggable': this.draggable,\n        'v-chip--label': this.label,\n        'v-chip--link': this.isLink,\n        'v-chip--no-color': !this.color,\n        'v-chip--outlined': this.outlined,\n        'v-chip--pill': this.pill,\n        'v-chip--removable': this.hasClose,\n        ...this.themeClasses,\n        ...this.sizeableClasses,\n        ...this.groupClasses,\n      }\n    },\n    hasClose (): boolean {\n      return Boolean(this.close)\n    },\n    isClickable (): boolean {\n      return Boolean(\n        Routable.options.computed.isClickable.call(this) ||\n        this.chipGroup\n      )\n    },\n  },\n\n  created () {\n    const breakingProps = [\n      ['outline', 'outlined'],\n      ['selected', 'input-value'],\n      ['value', 'active'],\n      ['@input', '@active.sync'],\n    ]\n\n    /* istanbul ignore next */\n    breakingProps.forEach(([original, replacement]) => {\n      if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n    })\n  },\n\n  methods: {\n    click (e: MouseEvent): void {\n      this.$emit('click', e)\n\n      this.chipGroup && this.toggle()\n    },\n    genFilter (): VNode {\n      const children = []\n\n      if (this.isActive) {\n        children.push(\n          this.$createElement(VIcon, {\n            staticClass: 'v-chip__filter',\n            props: { left: true },\n          }, this.filterIcon)\n        )\n      }\n\n      return this.$createElement(VExpandXTransition, children)\n    },\n    genClose (): VNode {\n      return this.$createElement(VIcon, {\n        staticClass: 'v-chip__close',\n        props: {\n          right: true,\n          size: 18,\n        },\n        on: {\n          click: (e: Event) => {\n            e.stopPropagation()\n            e.preventDefault()\n\n            this.$emit('click:close')\n            this.$emit('update:active', false)\n          },\n        },\n      }, this.closeIcon)\n    },\n    genContent (): VNode {\n      return this.$createElement('span', {\n        staticClass: 'v-chip__content',\n      }, [\n        this.filter && this.genFilter(),\n        this.$slots.default,\n        this.hasClose && this.genClose(),\n      ])\n    },\n  },\n\n  render (h): VNode {\n    const children = [this.genContent()]\n    let { tag, data } = this.generateRouteLink()\n\n    data.attrs = {\n      ...data.attrs,\n      draggable: this.draggable ? 'true' : undefined,\n      tabindex: this.chipGroup && !this.disabled ? 0 : data.attrs!.tabindex,\n    }\n    data.directives!.push({\n      name: 'show',\n      value: this.active,\n    })\n    data = this.setBackgroundColor(this.color, data)\n\n    const color = this.textColor || (this.outlined && this.color)\n\n    return h(tag, this.setTextColor(color, data), children)\n  },\n})\n","import VChip from './VChip'\n\nexport { VChip }\nexport default VChip\n","import './VSimpleCheckbox.sass'\n\nimport ripple from '../../directives/ripple'\n\nimport Vue, { VNode, VNodeDirective } from 'vue'\nimport { VIcon } from '../VIcon'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport { mergeListeners } from '../../util/mergeData'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default Vue.extend({\n  name: 'v-simple-checkbox',\n\n  functional: true,\n\n  directives: {\n    ripple,\n  },\n\n  props: {\n    ...Colorable.options.props,\n    ...Themeable.options.props,\n    disabled: Boolean,\n    ripple: {\n      type: Boolean,\n      default: true,\n    },\n    value: Boolean,\n    indeterminate: Boolean,\n    indeterminateIcon: {\n      type: String,\n      default: '$checkboxIndeterminate',\n    },\n    onIcon: {\n      type: String,\n      default: '$checkboxOn',\n    },\n    offIcon: {\n      type: String,\n      default: '$checkboxOff',\n    },\n  },\n\n  render (h, { props, data, listeners }): VNode {\n    const children = []\n\n    if (props.ripple && !props.disabled) {\n      const ripple = h('div', Colorable.options.methods.setTextColor(props.color, {\n        staticClass: 'v-input--selection-controls__ripple',\n        directives: [{\n          name: 'ripple',\n          value: { center: true },\n        }] as VNodeDirective[],\n      }))\n\n      children.push(ripple)\n    }\n\n    let icon = props.offIcon\n    if (props.indeterminate) icon = props.indeterminateIcon\n    else if (props.value) icon = props.onIcon\n\n    children.push(h(VIcon, Colorable.options.methods.setTextColor(props.value && props.color, {\n      props: {\n        disabled: props.disabled,\n        dark: props.dark,\n        light: props.light,\n      },\n    }), icon))\n\n    const classes = {\n      'v-simple-checkbox': true,\n      'v-simple-checkbox--disabled': props.disabled,\n    }\n\n    return h('div', {\n      ...data,\n      class: classes,\n      on: mergeListeners({\n        click: (e: MouseEvent) => {\n          e.stopPropagation()\n\n          if (data.on && data.on.input && !props.disabled) {\n            wrapInArray(data.on.input).forEach(f => f(!props.value))\n          }\n        },\n      }, listeners),\n    }, children)\n  },\n})\n","// Styles\nimport './VDivider.sass'\n\n// Types\nimport { VNode } from 'vue'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\nexport default Themeable.extend({\n  name: 'v-divider',\n\n  props: {\n    inset: Boolean,\n    vertical: Boolean,\n  },\n\n  render (h): VNode {\n    // WAI-ARIA attributes\n    let orientation\n    if (!this.$attrs.role || this.$attrs.role === 'separator') {\n      orientation = this.vertical ? 'vertical' : 'horizontal'\n    }\n    return h('hr', {\n      class: {\n        'v-divider': true,\n        'v-divider--inset': this.inset,\n        'v-divider--vertical': this.vertical,\n        ...this.themeClasses,\n      },\n      attrs: {\n        role: 'separator',\n        'aria-orientation': orientation,\n        ...this.$attrs,\n      },\n      on: this.$listeners,\n    })\n  },\n})\n","import VDivider from './VDivider'\n\nexport { VDivider }\nexport default VDivider\n","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n  Themeable\n  /* @vue/component */\n).extend({\n  name: 'v-subheader',\n\n  props: {\n    inset: Boolean,\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: 'v-subheader',\n      class: {\n        'v-subheader--inset': this.inset,\n        ...this.themeClasses,\n      },\n      attrs: this.$attrs,\n      on: this.$listeners,\n    }, this.$slots.default)\n  },\n})\n","import VSubheader from './VSubheader'\n\nexport { VSubheader }\nexport default VSubheader\n","// Components\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VDivider from '../VDivider'\nimport VSubheader from '../VSubheader'\nimport {\n  VList,\n  VListItem,\n  VListItemAction,\n  VListItemContent,\n  VListItemTitle,\n} from '../VList'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport {\n  escapeHTML,\n  getPropertyFromItem,\n} from '../../util/helpers'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, PropType, VNodeChildren } from 'vue'\nimport { SelectItemKey } from 'vuetify/types'\n\ntype ListTile = { item: any, disabled?: null | boolean, value?: boolean, index: number };\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n  name: 'v-select-list',\n\n  // https://github.com/vuejs/vue/issues/6872\n  directives: {\n    ripple,\n  },\n\n  props: {\n    action: Boolean,\n    dense: Boolean,\n    hideSelected: Boolean,\n    items: {\n      type: Array as PropType<any[]>,\n      default: () => [],\n    },\n    itemDisabled: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'disabled',\n    },\n    itemText: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'text',\n    },\n    itemValue: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'value',\n    },\n    noDataText: String,\n    noFilter: Boolean,\n    searchInput: null as unknown as PropType<any>,\n    selectedItems: {\n      type: Array as PropType<any[]>,\n      default: () => [],\n    },\n  },\n\n  computed: {\n    parsedItems (): any[] {\n      return this.selectedItems.map(item => this.getValue(item))\n    },\n    tileActiveClass (): string {\n      return Object.keys(this.setTextColor(this.color).class || {}).join(' ')\n    },\n    staticNoDataTile (): VNode {\n      const tile = {\n        attrs: {\n          role: undefined,\n        },\n        on: {\n          mousedown: (e: Event) => e.preventDefault(), // Prevent onBlur from being called\n        },\n      }\n\n      return this.$createElement(VListItem, tile, [\n        this.genTileContent(this.noDataText),\n      ])\n    },\n  },\n\n  methods: {\n    genAction (item: object, inputValue: any): VNode {\n      return this.$createElement(VListItemAction, [\n        this.$createElement(VSimpleCheckbox, {\n          props: {\n            color: this.color,\n            value: inputValue,\n          },\n          on: {\n            input: () => this.$emit('select', item),\n          },\n        }),\n      ])\n    },\n    genDivider (props: { [key: string]: any }) {\n      return this.$createElement(VDivider, { props })\n    },\n    genFilteredText (text: string) {\n      text = text || ''\n\n      if (!this.searchInput || this.noFilter) return escapeHTML(text)\n\n      const { start, middle, end } = this.getMaskedCharacters(text)\n\n      return `${escapeHTML(start)}${this.genHighlight(middle)}${escapeHTML(end)}`\n    },\n    genHeader (props: { [key: string]: any }): VNode {\n      return this.$createElement(VSubheader, { props }, props.header)\n    },\n    genHighlight (text: string): string {\n      return `<span class=\"v-list-item__mask\">${escapeHTML(text)}</span>`\n    },\n    getMaskedCharacters (text: string): {\n      start: string\n      middle: string\n      end: string\n    } {\n      const searchInput = (this.searchInput || '').toString().toLocaleLowerCase()\n      const index = text.toLocaleLowerCase().indexOf(searchInput)\n\n      if (index < 0) return { start: '', middle: text, end: '' }\n\n      const start = text.slice(0, index)\n      const middle = text.slice(index, index + searchInput.length)\n      const end = text.slice(index + searchInput.length)\n      return { start, middle, end }\n    },\n    genTile ({\n      item,\n      index,\n      disabled = null,\n      value = false,\n    }: ListTile): VNode | VNode[] | undefined {\n      if (!value) value = this.hasItem(item)\n\n      if (item === Object(item)) {\n        disabled = disabled !== null\n          ? disabled\n          : this.getDisabled(item)\n      }\n\n      const tile = {\n        attrs: {\n          // Default behavior in list does not\n          // contain aria-selected by default\n          'aria-selected': String(value),\n          id: `list-item-${this._uid}-${index}`,\n          role: 'option',\n        },\n        on: {\n          mousedown: (e: Event) => {\n            // Prevent onBlur from being called\n            e.preventDefault()\n          },\n          click: () => disabled || this.$emit('select', item),\n        },\n        props: {\n          activeClass: this.tileActiveClass,\n          disabled,\n          ripple: true,\n          inputValue: value,\n        },\n      }\n\n      if (!this.$scopedSlots.item) {\n        return this.$createElement(VListItem, tile, [\n          this.action && !this.hideSelected && this.items.length > 0\n            ? this.genAction(item, value)\n            : null,\n          this.genTileContent(item, index),\n        ])\n      }\n\n      const parent = this\n      const scopedSlot = this.$scopedSlots.item({\n        parent,\n        item,\n        attrs: {\n          ...tile.attrs,\n          ...tile.props,\n        },\n        on: tile.on,\n      })\n\n      return this.needsTile(scopedSlot)\n        ? this.$createElement(VListItem, tile, scopedSlot)\n        : scopedSlot\n    },\n    genTileContent (item: any, index = 0): VNode {\n      const innerHTML = this.genFilteredText(this.getText(item))\n\n      return this.$createElement(VListItemContent,\n        [this.$createElement(VListItemTitle, {\n          domProps: { innerHTML },\n        })]\n      )\n    },\n    hasItem (item: object) {\n      return this.parsedItems.indexOf(this.getValue(item)) > -1\n    },\n    needsTile (slot: VNode[] | undefined) {\n      return slot!.length !== 1 ||\n        slot![0].componentOptions == null ||\n        slot![0].componentOptions.Ctor.options.name !== 'v-list-item'\n    },\n    getDisabled (item: object) {\n      return Boolean(getPropertyFromItem(item, this.itemDisabled, false))\n    },\n    getText (item: object) {\n      return String(getPropertyFromItem(item, this.itemText, item))\n    },\n    getValue (item: object) {\n      return getPropertyFromItem(item, this.itemValue, this.getText(item))\n    },\n  },\n\n  render (): VNode {\n    const children: VNodeChildren = []\n    const itemsLength = this.items.length\n    for (let index = 0; index < itemsLength; index++) {\n      const item = this.items[index]\n\n      if (this.hideSelected &&\n        this.hasItem(item)\n      ) continue\n\n      if (item == null) children.push(this.genTile({ item, index }))\n      else if (item.header) children.push(this.genHeader(item))\n      else if (item.divider) children.push(this.genDivider(item))\n      else children.push(this.genTile({ item, index }))\n    }\n\n    children.length || children.push(this.$slots['no-data'] || this.staticNoDataTile)\n\n    this.$slots['prepend-item'] && children.unshift(this.$slots['prepend-item'])\n\n    this.$slots['append-item'] && children.push(this.$slots['append-item'])\n\n    return this.$createElement(VList, {\n      staticClass: 'v-select-list',\n      class: this.themeClasses,\n      attrs: {\n        role: 'listbox',\n        tabindex: -1,\n      },\n      props: { dense: this.dense },\n    }, children)\n  },\n})\n","import Vue, { PropType } from 'vue'\nimport { deepEqual } from '../../util/helpers'\n\nexport default Vue.extend({\n  name: 'comparable',\n  props: {\n    valueComparator: {\n      type: Function as PropType<typeof deepEqual>,\n      default: deepEqual,\n    },\n  },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'filterable',\n\n  props: {\n    noDataText: {\n      type: String,\n      default: '$vuetify.noDataText',\n    },\n  },\n})\n","// Styles\nimport '../VTextField/VTextField.sass'\nimport './VSelect.sass'\n\n// Components\nimport VChip from '../VChip'\nimport VMenu from '../VMenu'\nimport VSelectList from './VSelectList'\n\n// Extensions\nimport VInput from '../VInput'\nimport VTextField from '../VTextField/VTextField'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Filterable from '../../mixins/filterable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Utilities\nimport mergeData from '../../util/mergeData'\nimport { getPropertyFromItem, getObjectValueByPath, keyCodes } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode, VNodeDirective, PropType, VNodeData } from 'vue'\nimport { SelectItemKey } from 'vuetify/types'\n\nexport const defaultMenuProps = {\n  closeOnClick: false,\n  closeOnContentClick: false,\n  disableKeys: true,\n  openOnClick: false,\n  maxHeight: 304,\n}\n\n// Types\nconst baseMixins = mixins(\n  VTextField,\n  Comparable,\n  Filterable\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n  $refs: {\n    menu: InstanceType<typeof VMenu>\n    label: HTMLElement\n    input: HTMLInputElement\n    'prepend-inner': HTMLElement\n    'append-inner': HTMLElement\n    prefix: HTMLElement\n    suffix: HTMLElement\n  }\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n  name: 'v-select',\n\n  directives: {\n    ClickOutside,\n  },\n\n  props: {\n    appendIcon: {\n      type: String,\n      default: '$dropdown',\n    },\n    attach: {\n      type: null as unknown as PropType<string | boolean | Element | VNode>,\n      default: false,\n    },\n    cacheItems: Boolean,\n    chips: Boolean,\n    clearable: Boolean,\n    deletableChips: Boolean,\n    disableLookup: Boolean,\n    eager: Boolean,\n    hideSelected: Boolean,\n    items: {\n      type: Array,\n      default: () => [],\n    },\n    itemColor: {\n      type: String,\n      default: 'primary',\n    },\n    itemDisabled: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'disabled',\n    },\n    itemText: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'text',\n    },\n    itemValue: {\n      type: [String, Array, Function] as PropType<SelectItemKey>,\n      default: 'value',\n    },\n    menuProps: {\n      type: [String, Array, Object],\n      default: () => defaultMenuProps,\n    },\n    multiple: Boolean,\n    openOnClear: Boolean,\n    returnObject: Boolean,\n    smallChips: Boolean,\n  },\n\n  data () {\n    return {\n      cachedItems: this.cacheItems ? this.items : [],\n      menuIsBooted: false,\n      isMenuActive: false,\n      lastItem: 20,\n      // As long as a value is defined, show it\n      // Otherwise, check if multiple\n      // to determine which default to provide\n      lazyValue: this.value !== undefined\n        ? this.value\n        : this.multiple ? [] : undefined,\n      selectedIndex: -1,\n      selectedItems: [] as any[],\n      keyboardLookupPrefix: '',\n      keyboardLookupLastTime: 0,\n    }\n  },\n\n  computed: {\n    /* All items that the select has */\n    allItems (): object[] {\n      return this.filterDuplicates(this.cachedItems.concat(this.items))\n    },\n    classes (): object {\n      return {\n        ...VTextField.options.computed.classes.call(this),\n        'v-select': true,\n        'v-select--chips': this.hasChips,\n        'v-select--chips--small': this.smallChips,\n        'v-select--is-menu-active': this.isMenuActive,\n        'v-select--is-multi': this.multiple,\n      }\n    },\n    /* Used by other components to overwrite */\n    computedItems (): object[] {\n      return this.allItems\n    },\n    computedOwns (): string {\n      return `list-${this._uid}`\n    },\n    computedCounterValue (): number {\n      return this.multiple\n        ? this.selectedItems.length\n        : (this.getText(this.selectedItems[0]) || '').toString().length\n    },\n    directives (): VNodeDirective[] | undefined {\n      return this.isFocused ? [{\n        name: 'click-outside',\n        value: {\n          handler: this.blur,\n          closeConditional: this.closeConditional,\n        },\n      }] : undefined\n    },\n    dynamicHeight () {\n      return 'auto'\n    },\n    hasChips (): boolean {\n      return this.chips || this.smallChips\n    },\n    hasSlot (): boolean {\n      return Boolean(this.hasChips || this.$scopedSlots.selection)\n    },\n    isDirty (): boolean {\n      return this.selectedItems.length > 0\n    },\n    listData (): object {\n      const scopeId = this.$vnode && (this.$vnode.context!.$options as { [key: string]: any })._scopeId\n      const attrs = scopeId ? {\n        [scopeId]: true,\n      } : {}\n\n      return {\n        attrs: {\n          ...attrs,\n          id: this.computedOwns,\n        },\n        props: {\n          action: this.multiple,\n          color: this.itemColor,\n          dense: this.dense,\n          hideSelected: this.hideSelected,\n          items: this.virtualizedItems,\n          itemDisabled: this.itemDisabled,\n          itemText: this.itemText,\n          itemValue: this.itemValue,\n          noDataText: this.$vuetify.lang.t(this.noDataText),\n          selectedItems: this.selectedItems,\n        },\n        on: {\n          select: this.selectItem,\n        },\n        scopedSlots: {\n          item: this.$scopedSlots.item,\n        },\n      }\n    },\n    staticList (): VNode {\n      if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n        consoleError('assert: staticList should not be called if slots are used')\n      }\n\n      return this.$createElement(VSelectList, this.listData)\n    },\n    virtualizedItems (): object[] {\n      return (this.$_menuProps as any).auto\n        ? this.computedItems\n        : this.computedItems.slice(0, this.lastItem)\n    },\n    menuCanShow: () => true,\n    $_menuProps (): object {\n      let normalisedProps = typeof this.menuProps === 'string'\n        ? this.menuProps.split(',')\n        : this.menuProps\n\n      if (Array.isArray(normalisedProps)) {\n        normalisedProps = normalisedProps.reduce((acc, p) => {\n          acc[p.trim()] = true\n          return acc\n        }, {})\n      }\n\n      return {\n        ...defaultMenuProps,\n        eager: this.eager,\n        value: this.menuCanShow && this.isMenuActive,\n        nudgeBottom: normalisedProps.offsetY ? 1 : 0, // convert to int\n        ...normalisedProps,\n      }\n    },\n  },\n\n  watch: {\n    internalValue (val) {\n      this.initialValue = val\n      this.setSelectedItems()\n    },\n    isMenuActive (val) {\n      window.setTimeout(() => this.onMenuActiveChange(val))\n    },\n    items: {\n      immediate: true,\n      handler (val) {\n        if (this.cacheItems) {\n          // Breaks vue-test-utils if\n          // this isn't calculated\n          // on the next tick\n          this.$nextTick(() => {\n            this.cachedItems = this.filterDuplicates(this.cachedItems.concat(val))\n          })\n        }\n\n        this.setSelectedItems()\n      },\n    },\n  },\n\n  methods: {\n    /** @public */\n    blur (e?: Event) {\n      VTextField.options.methods.blur.call(this, e)\n      this.isMenuActive = false\n      this.isFocused = false\n      this.selectedIndex = -1\n    },\n    /** @public */\n    activateMenu () {\n      if (\n        !this.isInteractive ||\n        this.isMenuActive\n      ) return\n\n      this.isMenuActive = true\n    },\n    clearableCallback () {\n      this.setValue(this.multiple ? [] : undefined)\n      this.setMenuIndex(-1)\n      this.$nextTick(() => this.$refs.input && this.$refs.input.focus())\n\n      if (this.openOnClear) this.isMenuActive = true\n    },\n    closeConditional (e: Event) {\n      if (!this.isMenuActive) return true\n\n      return (\n        !this._isDestroyed &&\n\n        // Click originates from outside the menu content\n        // Multiple selects don't close when an item is clicked\n        (!this.getContent() ||\n        !this.getContent().contains(e.target as Node)) &&\n\n        // Click originates from outside the element\n        this.$el &&\n        !this.$el.contains(e.target as Node) &&\n        e.target !== this.$el\n      )\n    },\n    filterDuplicates (arr: any[]) {\n      const uniqueValues = new Map()\n      for (let index = 0; index < arr.length; ++index) {\n        const item = arr[index]\n        const val = this.getValue(item)\n\n        // TODO: comparator\n        !uniqueValues.has(val) && uniqueValues.set(val, item)\n      }\n      return Array.from(uniqueValues.values())\n    },\n    findExistingIndex (item: object) {\n      const itemValue = this.getValue(item)\n\n      return (this.internalValue || []).findIndex((i: object) => this.valueComparator(this.getValue(i), itemValue))\n    },\n    getContent () {\n      return this.$refs.menu && this.$refs.menu.$refs.content\n    },\n    genChipSelection (item: object, index: number) {\n      const isDisabled = (\n        !this.isInteractive ||\n        this.getDisabled(item)\n      )\n\n      return this.$createElement(VChip, {\n        staticClass: 'v-chip--select',\n        attrs: { tabindex: -1 },\n        props: {\n          close: this.deletableChips && !isDisabled,\n          disabled: isDisabled,\n          inputValue: index === this.selectedIndex,\n          small: this.smallChips,\n        },\n        on: {\n          click: (e: MouseEvent) => {\n            if (isDisabled) return\n\n            e.stopPropagation()\n\n            this.selectedIndex = index\n          },\n          'click:close': () => this.onChipInput(item),\n        },\n        key: JSON.stringify(this.getValue(item)),\n      }, this.getText(item))\n    },\n    genCommaSelection (item: object, index: number, last: boolean) {\n      const color = index === this.selectedIndex && this.computedColor\n      const isDisabled = (\n        !this.isInteractive ||\n        this.getDisabled(item)\n      )\n\n      return this.$createElement('div', this.setTextColor(color, {\n        staticClass: 'v-select__selection v-select__selection--comma',\n        class: {\n          'v-select__selection--disabled': isDisabled,\n        },\n        key: JSON.stringify(this.getValue(item)),\n      }), `${this.getText(item)}${last ? '' : ', '}`)\n    },\n    genDefaultSlot (): (VNode | VNode[] | null)[] {\n      const selections = this.genSelections()\n      const input = this.genInput()\n\n      // If the return is an empty array\n      // push the input\n      if (Array.isArray(selections)) {\n        selections.push(input)\n      // Otherwise push it into children\n      } else {\n        selections.children = selections.children || []\n        selections.children.push(input)\n      }\n\n      return [\n        this.genFieldset(),\n        this.$createElement('div', {\n          staticClass: 'v-select__slot',\n          directives: this.directives,\n        }, [\n          this.genLabel(),\n          this.prefix ? this.genAffix('prefix') : null,\n          selections,\n          this.suffix ? this.genAffix('suffix') : null,\n          this.genClearIcon(),\n          this.genIconSlot(),\n          this.genHiddenInput(),\n        ]),\n        this.genMenu(),\n        this.genProgress(),\n      ]\n    },\n    genIcon (\n      type: string,\n      cb?: (e: Event) => void,\n      extraData?: VNodeData\n    ) {\n      const icon = VInput.options.methods.genIcon.call(this, type, cb, extraData)\n\n      if (type === 'append') {\n        // Don't allow the dropdown icon to be focused\n        icon.children![0].data = mergeData(icon.children![0].data!, {\n          attrs: {\n            tabindex: icon.children![0].componentOptions!.listeners && '-1',\n            'aria-hidden': 'true',\n            'aria-label': undefined,\n          },\n        })\n      }\n\n      return icon\n    },\n    genInput (): VNode {\n      const input = VTextField.options.methods.genInput.call(this)\n\n      delete input.data!.attrs!.name\n\n      input.data = mergeData(input.data!, {\n        domProps: { value: null },\n        attrs: {\n          readonly: true,\n          type: 'text',\n          'aria-readonly': String(this.isReadonly),\n          'aria-activedescendant': getObjectValueByPath(this.$refs.menu, 'activeTile.id'),\n          autocomplete: getObjectValueByPath(input.data!, 'attrs.autocomplete', 'off'),\n        },\n        on: { keypress: this.onKeyPress },\n      })\n\n      return input\n    },\n    genHiddenInput (): VNode {\n      return this.$createElement('input', {\n        domProps: { value: this.lazyValue },\n        attrs: {\n          type: 'hidden',\n          name: this.attrs$.name,\n        },\n      })\n    },\n    genInputSlot (): VNode {\n      const render = VTextField.options.methods.genInputSlot.call(this)\n\n      render.data!.attrs = {\n        ...render.data!.attrs,\n        role: 'button',\n        'aria-haspopup': 'listbox',\n        'aria-expanded': String(this.isMenuActive),\n        'aria-owns': this.computedOwns,\n      }\n\n      return render\n    },\n    genList (): VNode {\n      // If there's no slots, we can use a cached VNode to improve performance\n      if (this.$slots['no-data'] || this.$slots['prepend-item'] || this.$slots['append-item']) {\n        return this.genListWithSlot()\n      } else {\n        return this.staticList\n      }\n    },\n    genListWithSlot (): VNode {\n      const slots = ['prepend-item', 'no-data', 'append-item']\n        .filter(slotName => this.$slots[slotName])\n        .map(slotName => this.$createElement('template', {\n          slot: slotName,\n        }, this.$slots[slotName]))\n      // Requires destructuring due to Vue\n      // modifying the `on` property when passed\n      // as a referenced object\n      return this.$createElement(VSelectList, {\n        ...this.listData,\n      }, slots)\n    },\n    genMenu (): VNode {\n      const props = this.$_menuProps as any\n      props.activator = this.$refs['input-slot']\n\n      // Attach to root el so that\n      // menu covers prepend/append icons\n      if (\n        // TODO: make this a computed property or helper or something\n        this.attach === '' || // If used as a boolean prop (<v-menu attach>)\n        this.attach === true || // If bound to a boolean (<v-menu :attach=\"true\">)\n        this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n      ) {\n        props.attach = this.$el\n      } else {\n        props.attach = this.attach\n      }\n\n      return this.$createElement(VMenu, {\n        attrs: { role: undefined },\n        props,\n        on: {\n          input: (val: boolean) => {\n            this.isMenuActive = val\n            this.isFocused = val\n          },\n          scroll: this.onScroll,\n        },\n        ref: 'menu',\n      }, [this.genList()])\n    },\n    genSelections (): VNode {\n      let length = this.selectedItems.length\n      const children = new Array(length)\n\n      let genSelection\n      if (this.$scopedSlots.selection) {\n        genSelection = this.genSlotSelection\n      } else if (this.hasChips) {\n        genSelection = this.genChipSelection\n      } else {\n        genSelection = this.genCommaSelection\n      }\n\n      while (length--) {\n        children[length] = genSelection(\n          this.selectedItems[length],\n          length,\n          length === children.length - 1\n        )\n      }\n\n      return this.$createElement('div', {\n        staticClass: 'v-select__selections',\n      }, children)\n    },\n    genSlotSelection (item: object, index: number): VNode[] | undefined {\n      return this.$scopedSlots.selection!({\n        attrs: {\n          class: 'v-chip--select',\n        },\n        parent: this,\n        item,\n        index,\n        select: (e: Event) => {\n          e.stopPropagation()\n          this.selectedIndex = index\n        },\n        selected: index === this.selectedIndex,\n        disabled: !this.isInteractive,\n      })\n    },\n    getMenuIndex () {\n      return this.$refs.menu ? (this.$refs.menu as { [key: string]: any }).listIndex : -1\n    },\n    getDisabled (item: object) {\n      return getPropertyFromItem(item, this.itemDisabled, false)\n    },\n    getText (item: object) {\n      return getPropertyFromItem(item, this.itemText, item)\n    },\n    getValue (item: object) {\n      return getPropertyFromItem(item, this.itemValue, this.getText(item))\n    },\n    onBlur (e?: Event) {\n      e && this.$emit('blur', e)\n    },\n    onChipInput (item: object) {\n      if (this.multiple) this.selectItem(item)\n      else this.setValue(null)\n      // If all items have been deleted,\n      // open `v-menu`\n      if (this.selectedItems.length === 0) {\n        this.isMenuActive = true\n      } else {\n        this.isMenuActive = false\n      }\n      this.selectedIndex = -1\n    },\n    onClick (e: MouseEvent) {\n      if (!this.isInteractive) return\n\n      if (!this.isAppendInner(e.target)) {\n        this.isMenuActive = true\n      }\n\n      if (!this.isFocused) {\n        this.isFocused = true\n        this.$emit('focus')\n      }\n\n      this.$emit('click', e)\n    },\n    onEscDown (e: Event) {\n      e.preventDefault()\n      if (this.isMenuActive) {\n        e.stopPropagation()\n        this.isMenuActive = false\n      }\n    },\n    onKeyPress (e: KeyboardEvent) {\n      if (\n        this.multiple ||\n        !this.isInteractive ||\n        this.disableLookup\n      ) return\n\n      const KEYBOARD_LOOKUP_THRESHOLD = 1000 // milliseconds\n      const now = performance.now()\n      if (now - this.keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {\n        this.keyboardLookupPrefix = ''\n      }\n      this.keyboardLookupPrefix += e.key.toLowerCase()\n      this.keyboardLookupLastTime = now\n\n      const index = this.allItems.findIndex(item => {\n        const text = (this.getText(item) || '').toString()\n\n        return text.toLowerCase().startsWith(this.keyboardLookupPrefix)\n      })\n      const item = this.allItems[index]\n      if (index !== -1) {\n        this.lastItem = Math.max(this.lastItem, index + 5)\n        this.setValue(this.returnObject ? item : this.getValue(item))\n        this.$nextTick(() => this.$refs.menu.getTiles())\n        setTimeout(() => this.setMenuIndex(index))\n      }\n    },\n    onKeyDown (e: KeyboardEvent) {\n      if (this.isReadonly && e.keyCode !== keyCodes.tab) return\n\n      const keyCode = e.keyCode\n      const menu = this.$refs.menu\n\n      // If enter, space, open menu\n      if ([\n        keyCodes.enter,\n        keyCodes.space,\n      ].includes(keyCode)) this.activateMenu()\n\n      this.$emit('keydown', e)\n\n      if (!menu) return\n\n      // If menu is active, allow default\n      // listIndex change from menu\n      if (this.isMenuActive && keyCode !== keyCodes.tab) {\n        this.$nextTick(() => {\n          menu.changeListIndex(e)\n          this.$emit('update:list-index', menu.listIndex)\n        })\n      }\n\n      // If menu is not active, up and down can do\n      // one of 2 things. If multiple, opens the\n      // menu, if not, will cycle through all\n      // available options\n      if (\n        !this.isMenuActive &&\n        [keyCodes.up, keyCodes.down].includes(keyCode)\n      ) return this.onUpDown(e)\n\n      // If escape deactivate the menu\n      if (keyCode === keyCodes.esc) return this.onEscDown(e)\n\n      // If tab - select item or close menu\n      if (keyCode === keyCodes.tab) return this.onTabDown(e)\n\n      // If space preventDefault\n      if (keyCode === keyCodes.space) return this.onSpaceDown(e)\n    },\n    onMenuActiveChange (val: boolean) {\n      // If menu is closing and mulitple\n      // or menuIndex is already set\n      // skip menu index recalculation\n      if (\n        (this.multiple && !val) ||\n        this.getMenuIndex() > -1\n      ) return\n\n      const menu = this.$refs.menu\n\n      if (!menu || !this.isDirty) return\n\n      // When menu opens, set index of first active item\n      for (let i = 0; i < menu.tiles.length; i++) {\n        if (menu.tiles[i].getAttribute('aria-selected') === 'true') {\n          this.setMenuIndex(i)\n          break\n        }\n      }\n    },\n    onMouseUp (e: MouseEvent) {\n      if (\n        this.hasMouseDown &&\n        e.which !== 3 &&\n        this.isInteractive\n      ) {\n        // If append inner is present\n        // and the target is itself\n        // or inside, toggle menu\n        if (this.isAppendInner(e.target)) {\n          this.$nextTick(() => (this.isMenuActive = !this.isMenuActive))\n        // If user is clicking in the container\n        // and field is enclosed, activate it\n        } else if (this.isEnclosed) {\n          this.isMenuActive = true\n        }\n      }\n\n      VTextField.options.methods.onMouseUp.call(this, e)\n    },\n    onScroll () {\n      if (!this.isMenuActive) {\n        requestAnimationFrame(() => (this.getContent().scrollTop = 0))\n      } else {\n        if (this.lastItem > this.computedItems.length) return\n\n        const showMoreItems = (\n          this.getContent().scrollHeight -\n          (this.getContent().scrollTop +\n          this.getContent().clientHeight)\n        ) < 200\n\n        if (showMoreItems) {\n          this.lastItem += 20\n        }\n      }\n    },\n    onSpaceDown (e: KeyboardEvent) {\n      e.preventDefault()\n    },\n    onTabDown (e: KeyboardEvent) {\n      const menu = this.$refs.menu\n\n      if (!menu) return\n\n      const activeTile = menu.activeTile\n\n      // An item that is selected by\n      // menu-index should toggled\n      if (\n        !this.multiple &&\n        activeTile &&\n        this.isMenuActive\n      ) {\n        e.preventDefault()\n        e.stopPropagation()\n\n        activeTile.click()\n      } else {\n        // If we make it here,\n        // the user has no selected indexes\n        // and is probably tabbing out\n        this.blur(e)\n      }\n    },\n    onUpDown (e: KeyboardEvent) {\n      const menu = this.$refs.menu\n\n      if (!menu) return\n\n      e.preventDefault()\n\n      // Multiple selects do not cycle their value\n      // when pressing up or down, instead activate\n      // the menu\n      if (this.multiple) return this.activateMenu()\n\n      const keyCode = e.keyCode\n\n      // Cycle through available values to achieve\n      // select native behavior\n      menu.isBooted = true\n\n      window.requestAnimationFrame(() => {\n        menu.getTiles()\n        keyCodes.up === keyCode ? menu.prevTile() : menu.nextTile()\n        menu.activeTile && menu.activeTile.click()\n      })\n    },\n    selectItem (item: object) {\n      if (!this.multiple) {\n        this.setValue(this.returnObject ? item : this.getValue(item))\n        this.isMenuActive = false\n      } else {\n        const internalValue = (this.internalValue || []).slice()\n        const i = this.findExistingIndex(item)\n\n        i !== -1 ? internalValue.splice(i, 1) : internalValue.push(item)\n        this.setValue(internalValue.map((i: object) => {\n          return this.returnObject ? i : this.getValue(i)\n        }))\n\n        // When selecting multiple\n        // adjust menu after each\n        // selection\n        this.$nextTick(() => {\n          this.$refs.menu &&\n            (this.$refs.menu as { [key: string]: any }).updateDimensions()\n        })\n\n        // We only need to reset list index for multiple\n        // to keep highlight when an item is toggled\n        // on and off\n        if (!this.multiple) return\n\n        const listIndex = this.getMenuIndex()\n\n        this.setMenuIndex(-1)\n\n        // There is no item to re-highlight\n        // when selections are hidden\n        if (this.hideSelected) return\n\n        this.$nextTick(() => this.setMenuIndex(listIndex))\n      }\n    },\n    setMenuIndex (index: number) {\n      this.$refs.menu && ((this.$refs.menu as { [key: string]: any }).listIndex = index)\n    },\n    setSelectedItems () {\n      const selectedItems = []\n      const values = !this.multiple || !Array.isArray(this.internalValue)\n        ? [this.internalValue]\n        : this.internalValue\n\n      for (const value of values) {\n        const index = this.allItems.findIndex(v => this.valueComparator(\n          this.getValue(v),\n          this.getValue(value)\n        ))\n\n        if (index > -1) {\n          selectedItems.push(this.allItems[index])\n        }\n      }\n\n      this.selectedItems = selectedItems\n    },\n    setValue (value: any) {\n      const oldValue = this.internalValue\n      this.internalValue = value\n      value !== oldValue && this.$emit('change', value)\n    },\n    isAppendInner (target: any) {\n      // return true if append inner is present\n      // and the target is itself or inside\n      const appendInner = this.$refs['append-inner']\n\n      return appendInner && (appendInner === target || appendInner.contains(target))\n    },\n  },\n})\n","import './VSlider.sass'\n\n// Components\nimport VInput from '../VInput'\nimport { VScaleTransition } from '../transitions'\n\n// Mixins\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport Loadable from '../../mixins/loadable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport { addOnceEventListener, deepEqual, keyCodes, createRange, convertToUnit, passiveSupported } from '../../util/helpers'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { ScopedSlotChildren } from 'vue/types/vnode'\n\ninterface options extends Vue {\n  $refs: {\n    track: HTMLElement\n  }\n}\n\nexport default mixins<options &\n/* eslint-disable indent */\n  ExtractVue<[\n    typeof VInput,\n    typeof Loadable\n  ]>\n/* eslint-enable indent */\n>(\n  VInput,\n  Loadable\n/* @vue/component */\n).extend({\n  name: 'v-slider',\n\n  directives: {\n    ClickOutside,\n  },\n\n  mixins: [Loadable],\n\n  props: {\n    disabled: Boolean,\n    inverseLabel: Boolean,\n    max: {\n      type: [Number, String],\n      default: 100,\n    },\n    min: {\n      type: [Number, String],\n      default: 0,\n    },\n    step: {\n      type: [Number, String],\n      default: 1,\n    },\n    thumbColor: String,\n    thumbLabel: {\n      type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n      default: undefined,\n      validator: v => typeof v === 'boolean' || v === 'always',\n    },\n    thumbSize: {\n      type: [Number, String],\n      default: 32,\n    },\n    tickLabels: {\n      type: Array as PropType<string[]>,\n      default: () => ([]),\n    },\n    ticks: {\n      type: [Boolean, String] as PropType<boolean | 'always'>,\n      default: false,\n      validator: v => typeof v === 'boolean' || v === 'always',\n    },\n    tickSize: {\n      type: [Number, String],\n      default: 2,\n    },\n    trackColor: String,\n    trackFillColor: String,\n    value: [Number, String],\n    vertical: Boolean,\n  },\n\n  data: () => ({\n    app: null as any,\n    oldValue: null as any,\n    keyPressed: 0,\n    isFocused: false,\n    isActive: false,\n    noClick: false, // Prevent click event if dragging took place, hack for #7915\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        ...VInput.options.computed.classes.call(this),\n        'v-input__slider': true,\n        'v-input__slider--vertical': this.vertical,\n        'v-input__slider--inverse-label': this.inverseLabel,\n      }\n    },\n    internalValue: {\n      get (): number {\n        return this.lazyValue\n      },\n      set (val: number) {\n        val = isNaN(val) ? this.minValue : val\n        // Round value to ensure the\n        // entire slider range can\n        // be selected with step\n        const value = this.roundValue(Math.min(Math.max(val, this.minValue), this.maxValue))\n\n        if (value === this.lazyValue) return\n\n        this.lazyValue = value\n\n        this.$emit('input', value)\n      },\n    },\n    trackTransition (): string {\n      return this.keyPressed >= 2 ? 'none' : ''\n    },\n    minValue (): number {\n      return parseFloat(this.min)\n    },\n    maxValue (): number {\n      return parseFloat(this.max)\n    },\n    stepNumeric (): number {\n      return this.step > 0 ? parseFloat(this.step) : 0\n    },\n    inputWidth (): number {\n      const value = (this.roundValue(this.internalValue) - this.minValue) / (this.maxValue - this.minValue) * 100\n\n      return value\n    },\n    trackFillStyles (): Partial<CSSStyleDeclaration> {\n      const startDir = this.vertical ? 'bottom' : 'left'\n      const endDir = this.vertical ? 'top' : 'right'\n      const valueDir = this.vertical ? 'height' : 'width'\n\n      const start = this.$vuetify.rtl ? 'auto' : '0'\n      const end = this.$vuetify.rtl ? '0' : 'auto'\n      const value = this.isDisabled ? `calc(${this.inputWidth}% - 10px)` : `${this.inputWidth}%`\n\n      return {\n        transition: this.trackTransition,\n        [startDir]: start,\n        [endDir]: end,\n        [valueDir]: value,\n      }\n    },\n    trackStyles (): Partial<CSSStyleDeclaration> {\n      const startDir = this.vertical ? this.$vuetify.rtl ? 'bottom' : 'top' : this.$vuetify.rtl ? 'left' : 'right'\n      const endDir = this.vertical ? 'height' : 'width'\n\n      const start = '0px'\n      const end = this.isDisabled ? `calc(${100 - this.inputWidth}% - 10px)` : `calc(${100 - this.inputWidth}%)`\n\n      return {\n        transition: this.trackTransition,\n        [startDir]: start,\n        [endDir]: end,\n      }\n    },\n    showTicks (): boolean {\n      return this.tickLabels.length > 0 ||\n        !!(!this.isDisabled && this.stepNumeric && this.ticks)\n    },\n    numTicks (): number {\n      return Math.ceil((this.maxValue - this.minValue) / this.stepNumeric)\n    },\n    showThumbLabel (): boolean {\n      return !this.isDisabled && !!(\n        this.thumbLabel ||\n        this.$scopedSlots['thumb-label']\n      )\n    },\n    computedTrackColor (): string | undefined {\n      if (this.isDisabled) return undefined\n      if (this.trackColor) return this.trackColor\n      if (this.isDark) return this.validationState\n      return this.validationState || 'primary lighten-3'\n    },\n    computedTrackFillColor (): string | undefined {\n      if (this.isDisabled) return undefined\n      if (this.trackFillColor) return this.trackFillColor\n      return this.validationState || this.computedColor\n    },\n    computedThumbColor (): string | undefined {\n      if (this.thumbColor) return this.thumbColor\n      return this.validationState || this.computedColor\n    },\n  },\n\n  watch: {\n    min (val) {\n      const parsed = parseFloat(val)\n      parsed > this.internalValue && this.$emit('input', parsed)\n    },\n    max (val) {\n      const parsed = parseFloat(val)\n      parsed < this.internalValue && this.$emit('input', parsed)\n    },\n    value: {\n      handler (v: number) {\n        this.internalValue = v\n      },\n    },\n  },\n\n  // If done in as immediate in\n  // value watcher, causes issues\n  // with vue-test-utils\n  beforeMount () {\n    this.internalValue = this.value\n  },\n\n  mounted () {\n    // Without a v-app, iOS does not work with body selectors\n    this.app = document.querySelector('[data-app]') ||\n      consoleWarn('Missing v-app or a non-body wrapping element with the [data-app] attribute', this)\n  },\n\n  methods: {\n    genDefaultSlot (): VNodeChildrenArrayContents {\n      const children: VNodeChildrenArrayContents = [this.genLabel()]\n      const slider = this.genSlider()\n      this.inverseLabel\n        ? children.unshift(slider)\n        : children.push(slider)\n\n      children.push(this.genProgress())\n\n      return children\n    },\n    genSlider (): VNode {\n      return this.$createElement('div', {\n        class: {\n          'v-slider': true,\n          'v-slider--horizontal': !this.vertical,\n          'v-slider--vertical': this.vertical,\n          'v-slider--focused': this.isFocused,\n          'v-slider--active': this.isActive,\n          'v-slider--disabled': this.isDisabled,\n          'v-slider--readonly': this.isReadonly,\n          ...this.themeClasses,\n        },\n        directives: [{\n          name: 'click-outside',\n          value: this.onBlur,\n        }],\n        on: {\n          click: this.onSliderClick,\n        },\n      }, this.genChildren())\n    },\n    genChildren (): VNodeChildrenArrayContents {\n      return [\n        this.genInput(),\n        this.genTrackContainer(),\n        this.genSteps(),\n        this.genThumbContainer(\n          this.internalValue,\n          this.inputWidth,\n          this.isActive,\n          this.isFocused,\n          this.onThumbMouseDown,\n          this.onFocus,\n          this.onBlur,\n        ),\n      ]\n    },\n    genInput (): VNode {\n      return this.$createElement('input', {\n        attrs: {\n          value: this.internalValue,\n          id: this.computedId,\n          disabled: this.isDisabled,\n          readonly: true,\n          tabindex: -1,\n          ...this.$attrs,\n        },\n        // on: this.genListeners(), // TODO: do we need to attach the listeners to input?\n      })\n    },\n    genTrackContainer (): VNode {\n      const children = [\n        this.$createElement('div', this.setBackgroundColor(this.computedTrackColor, {\n          staticClass: 'v-slider__track-background',\n          style: this.trackStyles,\n        })),\n        this.$createElement('div', this.setBackgroundColor(this.computedTrackFillColor, {\n          staticClass: 'v-slider__track-fill',\n          style: this.trackFillStyles,\n        })),\n      ]\n\n      return this.$createElement('div', {\n        staticClass: 'v-slider__track-container',\n        ref: 'track',\n      }, children)\n    },\n    genSteps (): VNode | null {\n      if (!this.step || !this.showTicks) return null\n\n      const tickSize = parseFloat(this.tickSize)\n      const range = createRange(this.numTicks + 1)\n      const direction = this.vertical ? 'bottom' : (this.$vuetify.rtl ? 'right' : 'left')\n      const offsetDirection = this.vertical ? (this.$vuetify.rtl ? 'left' : 'right') : 'top'\n\n      if (this.vertical) range.reverse()\n\n      const ticks = range.map(index => {\n        const children = []\n\n        if (this.tickLabels[index]) {\n          children.push(this.$createElement('div', {\n            staticClass: 'v-slider__tick-label',\n          }, this.tickLabels[index]))\n        }\n\n        const width = index * (100 / this.numTicks)\n        const filled = this.$vuetify.rtl ? (100 - this.inputWidth) < width : width < this.inputWidth\n\n        return this.$createElement('span', {\n          key: index,\n          staticClass: 'v-slider__tick',\n          class: {\n            'v-slider__tick--filled': filled,\n          },\n          style: {\n            width: `${tickSize}px`,\n            height: `${tickSize}px`,\n            [direction]: `calc(${width}% - ${tickSize / 2}px)`,\n            [offsetDirection]: `calc(50% - ${tickSize / 2}px)`,\n          },\n        }, children)\n      })\n\n      return this.$createElement('div', {\n        staticClass: 'v-slider__ticks-container',\n        class: {\n          'v-slider__ticks-container--always-show': this.ticks === 'always' || this.tickLabels.length > 0,\n        },\n      }, ticks)\n    },\n    genThumbContainer (\n      value: number,\n      valueWidth: number,\n      isActive: boolean,\n      isFocused: boolean,\n      onDrag: Function,\n      onFocus: Function,\n      onBlur: Function,\n      ref = 'thumb'\n    ): VNode {\n      const children = [this.genThumb()]\n\n      const thumbLabelContent = this.genThumbLabelContent(value)\n      this.showThumbLabel && children.push(this.genThumbLabel(thumbLabelContent))\n\n      return this.$createElement('div', this.setTextColor(this.computedThumbColor, {\n        ref,\n        key: ref,\n        staticClass: 'v-slider__thumb-container',\n        class: {\n          'v-slider__thumb-container--active': isActive,\n          'v-slider__thumb-container--focused': isFocused,\n          'v-slider__thumb-container--show-label': this.showThumbLabel,\n        },\n        style: this.getThumbContainerStyles(valueWidth),\n        attrs: {\n          role: 'slider',\n          tabindex: this.isDisabled ? -1 : this.$attrs.tabindex ? this.$attrs.tabindex : 0,\n          'aria-label': this.label,\n          'aria-valuemin': this.min,\n          'aria-valuemax': this.max,\n          'aria-valuenow': this.internalValue,\n          'aria-readonly': String(this.isReadonly),\n          'aria-orientation': this.vertical ? 'vertical' : 'horizontal',\n          ...this.$attrs,\n        },\n        on: {\n          focus: onFocus,\n          blur: onBlur,\n          keydown: this.onKeyDown,\n          keyup: this.onKeyUp,\n          touchstart: onDrag,\n          mousedown: onDrag,\n        },\n      }), children)\n    },\n    genThumbLabelContent (value: number | string): ScopedSlotChildren {\n      return this.$scopedSlots['thumb-label']\n        ? this.$scopedSlots['thumb-label']!({ value })\n        : [this.$createElement('span', [String(value)])]\n    },\n    genThumbLabel (content: ScopedSlotChildren): VNode {\n      const size = convertToUnit(this.thumbSize)\n\n      const transform = this.vertical\n        ? `translateY(20%) translateY(${(Number(this.thumbSize) / 3) - 1}px) translateX(55%) rotate(135deg)`\n        : `translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg)`\n\n      return this.$createElement(VScaleTransition, {\n        props: { origin: 'bottom center' },\n      }, [\n        this.$createElement('div', {\n          staticClass: 'v-slider__thumb-label-container',\n          directives: [{\n            name: 'show',\n            value: this.isFocused || this.isActive || this.thumbLabel === 'always',\n          }],\n        }, [\n          this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n            staticClass: 'v-slider__thumb-label',\n            style: {\n              height: size,\n              width: size,\n              transform,\n            },\n          }), [this.$createElement('div', content)]),\n        ]),\n      ])\n    },\n    genThumb (): VNode {\n      return this.$createElement('div', this.setBackgroundColor(this.computedThumbColor, {\n        staticClass: 'v-slider__thumb',\n      }))\n    },\n    getThumbContainerStyles (width: number): object {\n      const direction = this.vertical ? 'top' : 'left'\n      let value = this.$vuetify.rtl ? 100 - width : width\n      value = this.vertical ? 100 - value : value\n\n      return {\n        transition: this.trackTransition,\n        [direction]: `${value}%`,\n      }\n    },\n    onThumbMouseDown (e: MouseEvent) {\n      e.preventDefault()\n\n      this.oldValue = this.internalValue\n      this.keyPressed = 2\n      this.isActive = true\n\n      const mouseUpOptions = passiveSupported ? { passive: true, capture: true } : true\n      const mouseMoveOptions = passiveSupported ? { passive: true } : false\n      if ('touches' in e) {\n        this.app.addEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n        addOnceEventListener(this.app, 'touchend', this.onSliderMouseUp, mouseUpOptions)\n      } else {\n        this.app.addEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n        addOnceEventListener(this.app, 'mouseup', this.onSliderMouseUp, mouseUpOptions)\n      }\n\n      this.$emit('start', this.internalValue)\n    },\n    onSliderMouseUp (e: Event) {\n      e.stopPropagation()\n      this.keyPressed = 0\n      const mouseMoveOptions = passiveSupported ? { passive: true } : false\n      this.app.removeEventListener('touchmove', this.onMouseMove, mouseMoveOptions)\n      this.app.removeEventListener('mousemove', this.onMouseMove, mouseMoveOptions)\n\n      this.$emit('mouseup', e)\n      this.$emit('end', this.internalValue)\n      if (!deepEqual(this.oldValue, this.internalValue)) {\n        this.$emit('change', this.internalValue)\n        this.noClick = true\n      }\n\n      this.isActive = false\n    },\n    onMouseMove (e: MouseEvent) {\n      const { value } = this.parseMouseMove(e)\n      this.internalValue = value\n    },\n    onKeyDown (e: KeyboardEvent) {\n      if (!this.isInteractive) return\n\n      const value = this.parseKeyDown(e, this.internalValue)\n\n      if (\n        value == null ||\n        value < this.minValue ||\n        value > this.maxValue\n      ) return\n\n      this.internalValue = value\n      this.$emit('change', value)\n    },\n    onKeyUp () {\n      this.keyPressed = 0\n    },\n    onSliderClick (e: MouseEvent) {\n      if (this.noClick) {\n        this.noClick = false\n        return\n      }\n      const thumb = this.$refs.thumb as HTMLElement\n      thumb.focus()\n\n      this.onMouseMove(e)\n      this.$emit('change', this.internalValue)\n    },\n    onBlur (e: Event) {\n      this.isFocused = false\n\n      this.$emit('blur', e)\n    },\n    onFocus (e: Event) {\n      this.isFocused = true\n\n      this.$emit('focus', e)\n    },\n    parseMouseMove (e: MouseEvent) {\n      const start = this.vertical ? 'top' : 'left'\n      const length = this.vertical ? 'height' : 'width'\n      const click = this.vertical ? 'clientY' : 'clientX'\n\n      const {\n        [start]: trackStart,\n        [length]: trackLength,\n      } = this.$refs.track.getBoundingClientRect() as any\n      const clickOffset = 'touches' in e ? (e as any).touches[0][click] : e[click] // Can we get rid of any here?\n\n      // It is possible for left to be NaN, force to number\n      let clickPos = Math.min(Math.max((clickOffset - trackStart) / trackLength, 0), 1) || 0\n\n      if (this.vertical) clickPos = 1 - clickPos\n      if (this.$vuetify.rtl) clickPos = 1 - clickPos\n\n      const isInsideTrack = clickOffset >= trackStart && clickOffset <= trackStart + trackLength\n      const value = parseFloat(this.min) + clickPos * (this.maxValue - this.minValue)\n\n      return { value, isInsideTrack }\n    },\n    parseKeyDown (e: KeyboardEvent, value: number) {\n      if (!this.isInteractive) return\n\n      const { pageup, pagedown, end, home, left, right, down, up } = keyCodes\n\n      if (![pageup, pagedown, end, home, left, right, down, up].includes(e.keyCode)) return\n\n      e.preventDefault()\n      const step = this.stepNumeric || 1\n      const steps = (this.maxValue - this.minValue) / step\n      if ([left, right, down, up].includes(e.keyCode)) {\n        this.keyPressed += 1\n\n        const increase = this.$vuetify.rtl ? [left, up] : [right, up]\n        const direction = increase.includes(e.keyCode) ? 1 : -1\n        const multiplier = e.shiftKey ? 3 : (e.ctrlKey ? 2 : 1)\n\n        value = value + (direction * step * multiplier)\n      } else if (e.keyCode === home) {\n        value = this.minValue\n      } else if (e.keyCode === end) {\n        value = this.maxValue\n      } else {\n        const direction = e.keyCode === pagedown ? 1 : -1\n        value = value - (direction * step * (steps > 100 ? steps / 10 : 10))\n      }\n\n      return value\n    },\n    roundValue (value: number): number {\n      if (!this.stepNumeric) return value\n      // Format input value using the same number\n      // of decimals places as in the step prop\n      const trimmedStep = this.step.toString().trim()\n      const decimals = trimmedStep.indexOf('.') > -1\n        ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n        : 0\n      const offset = this.minValue % this.stepNumeric\n\n      const newValue = Math.round((value - offset) / this.stepNumeric) * this.stepNumeric + offset\n\n      return parseFloat(Math.min(newValue, this.maxValue).toFixed(decimals))\n    },\n  },\n})\n","// Styles\nimport './VLabel.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable, { functionalThemeClasses } from '../../mixins/themeable'\n\n// Types\nimport { VNode } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Helpers\nimport { convertToUnit } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Themeable).extend({\n  name: 'v-label',\n\n  functional: true,\n\n  props: {\n    absolute: Boolean,\n    color: {\n      type: String,\n      default: 'primary',\n    },\n    disabled: Boolean,\n    focused: Boolean,\n    for: String,\n    left: {\n      type: [Number, String],\n      default: 0,\n    },\n    right: {\n      type: [Number, String],\n      default: 'auto',\n    },\n    value: Boolean,\n  },\n\n  render (h, ctx): VNode {\n    const { children, listeners, props } = ctx\n    const data = {\n      staticClass: 'v-label',\n      class: {\n        'v-label--active': props.value,\n        'v-label--is-disabled': props.disabled,\n        ...functionalThemeClasses(ctx),\n      },\n      attrs: {\n        for: props.for,\n        'aria-hidden': !props.for,\n      },\n      on: listeners,\n      style: {\n        left: convertToUnit(props.left),\n        right: convertToUnit(props.right),\n        position: props.absolute ? 'absolute' : 'relative',\n      },\n      ref: 'label',\n    }\n\n    return h('label', Colorable.options.methods.setTextColor(props.focused && props.color, data), children)\n  },\n})\n","import VLabel from './VLabel'\n\nexport { VLabel }\nexport default VLabel\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  return Object.isExtensible(Object.preventExtensions({}));\n});\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n  if (!isObject(input)) return input;\n  var fn, val;\n  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n","// Styles\nimport './VMessages.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\n\n// Types\nimport { VNode, PropType } from 'vue'\nimport mixins from '../../util/mixins'\n\n// Utilities\nimport { getSlot } from '../../util/helpers'\n\n/* @vue/component */\nexport default mixins(Colorable, Themeable).extend({\n  name: 'v-messages',\n\n  props: {\n    value: {\n      type: Array as PropType<string[]>,\n      default: () => ([]),\n    },\n  },\n\n  methods: {\n    genChildren () {\n      return this.$createElement('transition-group', {\n        staticClass: 'v-messages__wrapper',\n        attrs: {\n          name: 'message-transition',\n          tag: 'div',\n        },\n      }, this.value.map(this.genMessage))\n    },\n    genMessage (message: string, key: number) {\n      return this.$createElement('div', {\n        staticClass: 'v-messages__message',\n        key,\n      }, getSlot(this, 'default', { message, key }) || [message])\n    },\n  },\n\n  render (h): VNode {\n    return h('div', this.setTextColor(this.color, {\n      staticClass: 'v-messages',\n      class: this.themeClasses,\n    }), [this.genChildren()])\n  },\n})\n","import VMessages from './VMessages'\n\nexport { VMessages }\nexport default VMessages\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VLabel from '../VLabel'\nimport VMessages from '../VMessages'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Validatable from '../../mixins/validatable'\n\n// Utilities\nimport {\n  convertToUnit,\n  getSlot,\n  kebabCase,\n} from '../../util/helpers'\nimport mergeData from '../../util/mergeData'\n\n// Types\nimport { VNode, VNodeData, PropType } from 'vue'\nimport mixins from '../../util/mixins'\nimport { InputValidationRule } from 'vuetify/types'\n\nconst baseMixins = mixins(\n  BindsAttrs,\n  Validatable,\n)\n\ninterface options extends InstanceType<typeof baseMixins> {\n  /* eslint-disable-next-line camelcase */\n  $_modelEvent: string\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n  name: 'v-input',\n\n  inheritAttrs: false,\n\n  props: {\n    appendIcon: String,\n    backgroundColor: {\n      type: String,\n      default: '',\n    },\n    dense: Boolean,\n    height: [Number, String],\n    hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n    hint: String,\n    id: String,\n    label: String,\n    loading: Boolean,\n    persistentHint: Boolean,\n    prependIcon: String,\n    value: null as any as PropType<any>,\n  },\n\n  data () {\n    return {\n      lazyValue: this.value,\n      hasMouseDown: false,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-input--has-state': this.hasState,\n        'v-input--hide-details': !this.showDetails,\n        'v-input--is-label-active': this.isLabelActive,\n        'v-input--is-dirty': this.isDirty,\n        'v-input--is-disabled': this.isDisabled,\n        'v-input--is-focused': this.isFocused,\n        // <v-switch loading>.loading === '' so we can't just cast to boolean\n        'v-input--is-loading': this.loading !== false && this.loading != null,\n        'v-input--is-readonly': this.isReadonly,\n        'v-input--dense': this.dense,\n        ...this.themeClasses,\n      }\n    },\n    computedId (): string {\n      return this.id || `input-${this._uid}`\n    },\n    hasDetails (): boolean {\n      return this.messagesToDisplay.length > 0\n    },\n    hasHint (): boolean {\n      return !this.hasMessages &&\n        !!this.hint &&\n        (this.persistentHint || this.isFocused)\n    },\n    hasLabel (): boolean {\n      return !!(this.$slots.label || this.label)\n    },\n    // Proxy for `lazyValue`\n    // This allows an input\n    // to function without\n    // a provided model\n    internalValue: {\n      get (): any {\n        return this.lazyValue\n      },\n      set (val: any) {\n        this.lazyValue = val\n        this.$emit(this.$_modelEvent, val)\n      },\n    },\n    isDirty (): boolean {\n      return !!this.lazyValue\n    },\n    isLabelActive (): boolean {\n      return this.isDirty\n    },\n    messagesToDisplay (): string[] {\n      if (this.hasHint) return [this.hint]\n\n      if (!this.hasMessages) return []\n\n      return this.validations.map((validation: string | InputValidationRule) => {\n        if (typeof validation === 'string') return validation\n\n        const validationResult = validation(this.internalValue)\n\n        return typeof validationResult === 'string' ? validationResult : ''\n      }).filter(message => message !== '')\n    },\n    showDetails (): boolean {\n      return this.hideDetails === false || (this.hideDetails === 'auto' && this.hasDetails)\n    },\n  },\n\n  watch: {\n    value (val) {\n      this.lazyValue = val\n    },\n  },\n\n  beforeCreate () {\n    // v-radio-group needs to emit a different event\n    // https://github.com/vuetifyjs/vuetify/issues/4752\n    this.$_modelEvent = (this.$options.model && this.$options.model.event) || 'input'\n  },\n\n  methods: {\n    genContent () {\n      return [\n        this.genPrependSlot(),\n        this.genControl(),\n        this.genAppendSlot(),\n      ]\n    },\n    genControl () {\n      return this.$createElement('div', {\n        staticClass: 'v-input__control',\n      }, [\n        this.genInputSlot(),\n        this.genMessages(),\n      ])\n    },\n    genDefaultSlot () {\n      return [\n        this.genLabel(),\n        this.$slots.default,\n      ]\n    },\n    genIcon (\n      type: string,\n      cb?: (e: Event) => void,\n      extraData: VNodeData = {}\n    ) {\n      const icon = (this as any)[`${type}Icon`]\n      const eventName = `click:${kebabCase(type)}`\n      const hasListener = !!(this.listeners$[eventName] || cb)\n\n      const data = mergeData({\n        attrs: {\n          'aria-label': hasListener ? kebabCase(type).split('-')[0] + ' icon' : undefined,\n          color: this.validationState,\n          dark: this.dark,\n          disabled: this.isDisabled,\n          light: this.light,\n        },\n        on: !hasListener\n          ? undefined\n          : {\n            click: (e: Event) => {\n              e.preventDefault()\n              e.stopPropagation()\n\n              this.$emit(eventName, e)\n              cb && cb(e)\n            },\n            // Container has g event that will\n            // trigger menu open if enclosed\n            mouseup: (e: Event) => {\n              e.preventDefault()\n              e.stopPropagation()\n            },\n          },\n      }, extraData)\n\n      return this.$createElement('div', {\n        staticClass: `v-input__icon`,\n        class: type ? `v-input__icon--${kebabCase(type)}` : undefined,\n      }, [\n        this.$createElement(\n          VIcon,\n          data,\n          icon\n        ),\n      ])\n    },\n    genInputSlot () {\n      return this.$createElement('div', this.setBackgroundColor(this.backgroundColor, {\n        staticClass: 'v-input__slot',\n        style: { height: convertToUnit(this.height) },\n        on: {\n          click: this.onClick,\n          mousedown: this.onMouseDown,\n          mouseup: this.onMouseUp,\n        },\n        ref: 'input-slot',\n      }), [this.genDefaultSlot()])\n    },\n    genLabel () {\n      if (!this.hasLabel) return null\n\n      return this.$createElement(VLabel, {\n        props: {\n          color: this.validationState,\n          dark: this.dark,\n          disabled: this.isDisabled,\n          focused: this.hasState,\n          for: this.computedId,\n          light: this.light,\n        },\n      }, this.$slots.label || this.label)\n    },\n    genMessages () {\n      if (!this.showDetails) return null\n\n      return this.$createElement(VMessages, {\n        props: {\n          color: this.hasHint ? '' : this.validationState,\n          dark: this.dark,\n          light: this.light,\n          value: this.messagesToDisplay,\n        },\n        attrs: {\n          role: this.hasMessages ? 'alert' : null,\n        },\n        scopedSlots: {\n          default: props => getSlot(this, 'message', props),\n        },\n      })\n    },\n    genSlot (\n      type: string,\n      location: string,\n      slot: (VNode | VNode[])[]\n    ) {\n      if (!slot.length) return null\n\n      const ref = `${type}-${location}`\n\n      return this.$createElement('div', {\n        staticClass: `v-input__${ref}`,\n        ref,\n      }, slot)\n    },\n    genPrependSlot () {\n      const slot = []\n\n      if (this.$slots.prepend) {\n        slot.push(this.$slots.prepend)\n      } else if (this.prependIcon) {\n        slot.push(this.genIcon('prepend'))\n      }\n\n      return this.genSlot('prepend', 'outer', slot)\n    },\n    genAppendSlot () {\n      const slot = []\n\n      // Append icon for text field was really\n      // an appended inner icon, v-text-field\n      // will overwrite this method in order to obtain\n      // backwards compat\n      if (this.$slots.append) {\n        slot.push(this.$slots.append)\n      } else if (this.appendIcon) {\n        slot.push(this.genIcon('append'))\n      }\n\n      return this.genSlot('append', 'outer', slot)\n    },\n    onClick (e: Event) {\n      this.$emit('click', e)\n    },\n    onMouseDown (e: Event) {\n      this.hasMouseDown = true\n      this.$emit('mousedown', e)\n    },\n    onMouseUp (e: Event) {\n      this.hasMouseDown = false\n      this.$emit('mouseup', e)\n    },\n  },\n\n  render (h): VNode {\n    return h('div', this.setTextColor(this.validationState, {\n      staticClass: 'v-input',\n      class: this.classes,\n    }), this.genContent())\n  },\n})\n","import VInput from './VInput'\n\nexport { VInput }\nexport default VInput\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n  findIndex: function findIndex(callbackfn /* , that = undefined */) {\n    return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n  fixed: function fixed() {\n    return createHTML(this, 'tt', '', '');\n  }\n});\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n  });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.small` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.small\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('small') }, {\n  small: function small() {\n    return createHTML(this, 'small', '', '');\n  }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n    return NEGATIVE_ZERO\n      // convert -0 to +0\n      ? nativeIndexOf.apply(this, arguments) || 0\n      : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~indexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n  fill: fill\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n  assign: assign\n});\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n  try {\n    createNonEnumerableProperty(global, key, value);\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","module.exports = {};\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n  return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","import Vue from 'vue'\n\n/**\n * SSRBootable\n *\n * @mixin\n *\n * Used in layout components (drawer, toolbar, content)\n * to avoid an entry animation when using SSR\n */\nexport default Vue.extend({\n  name: 'ssr-bootable',\n\n  data: () => ({\n    isBooted: false,\n  }),\n\n  mounted () {\n    // Use setAttribute instead of dataset\n    // because dataset does not work well\n    // with unit tests\n    window.requestAnimationFrame(() => {\n      this.$el.setAttribute('data-booted', 'true')\n      this.isBooted = true\n    })\n  },\n})\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n    setter.call(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter.call(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n  redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n  return function (that, callbackfn, argumentsLength, memo) {\n    aFunction(callbackfn);\n    var O = toObject(that);\n    var self = IndexedObject(O);\n    var length = toLength(O.length);\n    var index = IS_RIGHT ? length - 1 : 0;\n    var i = IS_RIGHT ? -1 : 1;\n    if (argumentsLength < 2) while (true) {\n      if (index in self) {\n        memo = self[index];\n        index += i;\n        break;\n      }\n      index += i;\n      if (IS_RIGHT ? index < 0 : length <= index) {\n        throw TypeError('Reduce of empty array with no initial value');\n      }\n    }\n    for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n      memo = callbackfn(memo, self[index], index, O);\n    }\n    return memo;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.reduce` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n  left: createMethod(false),\n  // `Array.prototype.reduceRight` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n  right: createMethod(true)\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  // #replace needs built-in support for named groups.\n  // #match works fine because it just return the exec results, even if it has\n  // a \"grops\" property.\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n  return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n  if (/./[REPLACE]) {\n    return /./[REPLACE]('a', '$0') === '';\n  }\n  return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n  var SYMBOL = wellKnownSymbol(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegEp methods\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n\n    if (KEY === 'split') {\n      // We can't use real regex here since it causes deoptimization\n      // and serious performance degradation in V8\n      // https://github.com/zloirock/core-js/issues/306\n      re = {};\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      re.constructor = {};\n      re.constructor[SPECIES] = function () { return re; };\n      re.flags = '';\n      re[SYMBOL] = /./[SYMBOL];\n    }\n\n    re.exec = function () { execCalled = true; return null; };\n\n    re[SYMBOL]('');\n    return !execCalled;\n  });\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    (KEY === 'replace' && !(\n      REPLACE_SUPPORTS_NAMED_GROUPS &&\n      REPLACE_KEEPS_$0 &&\n      !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n    )) ||\n    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n  ) {\n    var nativeRegExpMethod = /./[SYMBOL];\n    var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n      if (regexp.exec === regexpExec) {\n        if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n          // The native String method already delegates to @@method (this\n          // polyfilled function), leasing to infinite recursion.\n          // We avoid it by directly calling the native @@method method.\n          return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n        }\n        return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n      }\n      return { done: false };\n    }, {\n      REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n      REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n    });\n    var stringMethod = methods[0];\n    var regexMethod = methods[1];\n\n    redefine(String.prototype, KEY, stringMethod);\n    redefine(RegExp.prototype, SYMBOL, length == 2\n      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n      // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n      ? function (string, arg) { return regexMethod.call(string, this, arg); }\n      // 21.2.5.6 RegExp.prototype[@@match](string)\n      // 21.2.5.9 RegExp.prototype[@@search](string)\n      : function (string) { return regexMethod.call(string, this); }\n    );\n  }\n\n  if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","import Vuetify from '../framework'\n\nfunction createMessage (message: string, vm?: any, parent?: any): string | void {\n  if (Vuetify.config.silent) return\n\n  if (parent) {\n    vm = {\n      _isVue: true,\n      $parent: parent,\n      $options: vm,\n    }\n  }\n\n  if (vm) {\n    // Only show each message once per instance\n    vm.$_alreadyWarned = vm.$_alreadyWarned || []\n    if (vm.$_alreadyWarned.includes(message)) return\n    vm.$_alreadyWarned.push(message)\n  }\n\n  return `[Vuetify] ${message}` + (\n    vm ? generateComponentTrace(vm) : ''\n  )\n}\n\nexport function consoleInfo (message: string, vm?: any, parent?: any): void {\n  const newMessage = createMessage(message, vm, parent)\n  newMessage != null && console.info(newMessage)\n}\n\nexport function consoleWarn (message: string, vm?: any, parent?: any): void {\n  const newMessage = createMessage(message, vm, parent)\n  newMessage != null && console.warn(newMessage)\n}\n\nexport function consoleError (message: string, vm?: any, parent?: any): void {\n  const newMessage = createMessage(message, vm, parent)\n  newMessage != null && console.error(newMessage)\n}\n\nexport function deprecate (original: string, replacement: string, vm?: any, parent?: any) {\n  consoleWarn(`[UPGRADE] '${original}' is deprecated, use '${replacement}' instead.`, vm, parent)\n}\nexport function breaking (original: string, replacement: string, vm?: any, parent?: any) {\n  consoleError(`[BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`, vm, parent)\n}\nexport function removed (original: string, vm?: any, parent?: any) {\n  consoleWarn(`[REMOVED] '${original}' has been removed. You can safely omit it.`, vm, parent)\n}\n\n/**\n * Shamelessly stolen from vuejs/vue/blob/dev/src/core/util/debug.js\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = (str: string) => str\n  .replace(classifyRE, c => c.toUpperCase())\n  .replace(/[-_]/g, '')\n\nfunction formatComponentName (vm: any, includeFile?: boolean): string {\n  if (vm.$root === vm) {\n    return '<Root>'\n  }\n  const options = typeof vm === 'function' && vm.cid != null\n    ? vm.options\n    : vm._isVue\n      ? vm.$options || vm.constructor.options\n      : vm || {}\n  let name = options.name || options._componentTag\n  const file = options.__file\n  if (!name && file) {\n    const match = file.match(/([^/\\\\]+)\\.vue$/)\n    name = match && match[1]\n  }\n\n  return (\n    (name ? `<${classify(name)}>` : `<Anonymous>`) +\n    (file && includeFile !== false ? ` at ${file}` : '')\n  )\n}\n\nfunction generateComponentTrace (vm: any): string {\n  if (vm._isVue && vm.$parent) {\n    const tree: any[] = []\n    let currentRecursiveSequence = 0\n    while (vm) {\n      if (tree.length > 0) {\n        const last: any = tree[tree.length - 1]\n        if (last.constructor === vm.constructor) {\n          currentRecursiveSequence++\n          vm = vm.$parent\n          continue\n        } else if (currentRecursiveSequence > 0) {\n          tree[tree.length - 1] = [last, currentRecursiveSequence]\n          currentRecursiveSequence = 0\n        }\n      }\n      tree.push(vm)\n      vm = vm.$parent\n    }\n    return '\\n\\nfound in\\n\\n' + tree\n      .map((vm, i) => `${\n        i === 0 ? '---> ' : ' '.repeat(5 + i * 2)\n      }${\n        Array.isArray(vm)\n          ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`\n          : formatComponentName(vm)\n      }`)\n      .join('\\n')\n  } else {\n    return `\\n\\n(found in ${formatComponentName(vm)})`\n  }\n}\n","/**\n * @copyright 2017 Alex Regan\n * @license MIT\n * @see https://github.com/alexsasharegan/vue-functional-data-merge\n */\n/* eslint-disable max-statements */\nimport { VNodeData } from 'vue'\nimport { camelize, wrapInArray } from './helpers'\n\nconst pattern = {\n  styleList: /;(?![^(]*\\))/g,\n  styleProp: /:(.*)/,\n} as const\n\nfunction parseStyle (style: string) {\n  const styleMap: Dictionary<any> = {}\n\n  for (const s of style.split(pattern.styleList)) {\n    let [key, val] = s.split(pattern.styleProp)\n    key = key.trim()\n    if (!key) {\n      continue\n    }\n    // May be undefined if the `key: value` pair is incomplete.\n    if (typeof val === 'string') {\n      val = val.trim()\n    }\n    styleMap[camelize(key)] = val\n  }\n\n  return styleMap\n}\n\n/**\n * Intelligently merges data for createElement.\n * Merges arguments left to right, preferring the right argument.\n * Returns new VNodeData object.\n */\nexport default function mergeData (...vNodeData: VNodeData[]): VNodeData\nexport default function mergeData (): VNodeData {\n  const mergeTarget: VNodeData & Dictionary<any> = {}\n  let i: number = arguments.length\n  let prop: string\n\n  // Allow for variadic argument length.\n  while (i--) {\n    // Iterate through the data properties and execute merge strategies\n    // Object.keys eliminates need for hasOwnProperty call\n    for (prop of Object.keys(arguments[i])) {\n      switch (prop) {\n        // Array merge strategy (array concatenation)\n        case 'class':\n        case 'directives':\n          if (arguments[i][prop]) {\n            mergeTarget[prop] = mergeClasses(mergeTarget[prop], arguments[i][prop])\n          }\n          break\n        case 'style':\n          if (arguments[i][prop]) {\n            mergeTarget[prop] = mergeStyles(mergeTarget[prop], arguments[i][prop])\n          }\n          break\n        // Space delimited string concatenation strategy\n        case 'staticClass':\n          if (!arguments[i][prop]) {\n            break\n          }\n          if (mergeTarget[prop] === undefined) {\n            mergeTarget[prop] = ''\n          }\n          if (mergeTarget[prop]) {\n            // Not an empty string, so concatenate\n            mergeTarget[prop] += ' '\n          }\n          mergeTarget[prop] += arguments[i][prop].trim()\n          break\n        // Object, the properties of which to merge via array merge strategy (array concatenation).\n        // Callback merge strategy merges callbacks to the beginning of the array,\n        // so that the last defined callback will be invoked first.\n        // This is done since to mimic how Object.assign merging\n        // uses the last given value to assign.\n        case 'on':\n        case 'nativeOn':\n          if (arguments[i][prop]) {\n            mergeTarget[prop] = mergeListeners(mergeTarget[prop], arguments[i][prop])\n          }\n          break\n        // Object merge strategy\n        case 'attrs':\n        case 'props':\n        case 'domProps':\n        case 'scopedSlots':\n        case 'staticStyle':\n        case 'hook':\n        case 'transition':\n          if (!arguments[i][prop]) {\n            break\n          }\n          if (!mergeTarget[prop]) {\n            mergeTarget[prop] = {}\n          }\n          mergeTarget[prop] = { ...arguments[i][prop], ...mergeTarget[prop] }\n          break\n        // Reassignment strategy (no merge)\n        default: // slot, key, ref, tag, show, keepAlive\n          if (!mergeTarget[prop]) {\n            mergeTarget[prop] = arguments[i][prop]\n          }\n      }\n    }\n  }\n\n  return mergeTarget\n}\n\nexport function mergeStyles (\n  target: undefined | string | object[] | object,\n  source: undefined | string | object[] | object\n) {\n  if (!target) return source\n  if (!source) return target\n\n  target = wrapInArray(typeof target === 'string' ? parseStyle(target) : target)\n\n  return (target as object[]).concat(typeof source === 'string' ? parseStyle(source) : source)\n}\n\nexport function mergeClasses (target: any, source: any) {\n  if (!source) return target\n  if (!target) return source\n\n  return target ? wrapInArray(target).concat(source) : source\n}\n\nexport function mergeListeners (\n  target: { [key: string]: Function | Function[] } | undefined,\n  source: { [key: string]: Function | Function[] } | undefined\n) {\n  if (!target) return source\n  if (!source) return target\n\n  let event: string\n\n  for (event of Object.keys(source)) {\n    // Concat function to array of functions if callback present.\n    if (target[event]) {\n      // Insert current iteration data in beginning of merged array.\n      target[event] = wrapInArray(target[event])\n      ;(target[event] as Function[]).push(...wrapInArray(source[event]))\n    } else {\n      // Straight assign.\n      target[event] = source[event]\n    }\n  }\n\n  return target\n}\n","// Styles\nimport './VListItem.sass'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Routable from '../../mixins/routable'\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport Themeable from '../../mixins/themeable'\nimport { factory as ToggleableFactory } from '../../mixins/toggleable'\n\n// Directives\nimport Ripple from '../../directives/ripple'\n\n// Utilities\nimport { keyCodes } from './../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport { removed } from '../../util/console'\n\n// Types\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\nimport { PropType, PropValidator } from 'vue/types/options'\n\nconst baseMixins = mixins(\n  Colorable,\n  Routable,\n  Themeable,\n  GroupableFactory('listItemGroup'),\n  ToggleableFactory('inputValue')\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  $el: HTMLElement\n  isInGroup: boolean\n  isInList: boolean\n  isInMenu: boolean\n  isInNav: boolean\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n  name: 'v-list-item',\n\n  directives: {\n    Ripple,\n  },\n\n  inheritAttrs: false,\n\n  inject: {\n    isInGroup: {\n      default: false,\n    },\n    isInList: {\n      default: false,\n    },\n    isInMenu: {\n      default: false,\n    },\n    isInNav: {\n      default: false,\n    },\n  },\n\n  props: {\n    activeClass: {\n      type: String,\n      default (): string | undefined {\n        if (!this.listItemGroup) return ''\n\n        return this.listItemGroup.activeClass\n      },\n    } as any as PropValidator<string>,\n    dense: Boolean,\n    inactive: Boolean,\n    link: Boolean,\n    selectable: {\n      type: Boolean,\n    },\n    tag: {\n      type: String,\n      default: 'div',\n    },\n    threeLine: Boolean,\n    twoLine: Boolean,\n    value: null as any as PropType<any>,\n  },\n\n  data: () => ({\n    proxyClass: 'v-list-item--active',\n  }),\n\n  computed: {\n    classes (): object {\n      return {\n        'v-list-item': true,\n        ...Routable.options.computed.classes.call(this),\n        'v-list-item--dense': this.dense,\n        'v-list-item--disabled': this.disabled,\n        'v-list-item--link': this.isClickable && !this.inactive,\n        'v-list-item--selectable': this.selectable,\n        'v-list-item--three-line': this.threeLine,\n        'v-list-item--two-line': this.twoLine,\n        ...this.themeClasses,\n      }\n    },\n    isClickable (): boolean {\n      return Boolean(\n        Routable.options.computed.isClickable.call(this) ||\n        this.listItemGroup\n      )\n    },\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('avatar')) {\n      removed('avatar', this)\n    }\n  },\n\n  methods: {\n    click (e: MouseEvent | KeyboardEvent) {\n      if (e.detail) this.$el.blur()\n\n      this.$emit('click', e)\n\n      this.to || this.toggle()\n    },\n    genAttrs () {\n      const attrs: Record<string, any> = {\n        'aria-disabled': this.disabled ? true : undefined,\n        tabindex: this.isClickable && !this.disabled ? 0 : -1,\n        ...this.$attrs,\n      }\n\n      if (this.$attrs.hasOwnProperty('role')) {\n        // do nothing, role already provided\n      } else if (this.isInNav) {\n        // do nothing, role is inherit\n      } else if (this.isInGroup) {\n        attrs.role = 'listitem'\n        attrs['aria-selected'] = String(this.isActive)\n      } else if (this.isInMenu) {\n        attrs.role = this.isClickable ? 'menuitem' : undefined\n        attrs.id = attrs.id || `list-item-${this._uid}`\n      } else if (this.isInList) {\n        attrs.role = 'listitem'\n      }\n\n      return attrs\n    },\n  },\n\n  render (h): VNode {\n    let { tag, data } = this.generateRouteLink()\n\n    data.attrs = {\n      ...data.attrs,\n      ...this.genAttrs(),\n    }\n    data[this.to ? 'nativeOn' : 'on'] = {\n      ...data[this.to ? 'nativeOn' : 'on'],\n      keydown: (e: KeyboardEvent) => {\n        /* istanbul ignore else */\n        if (e.keyCode === keyCodes.enter) this.click(e)\n\n        this.$emit('keydown', e)\n      },\n    }\n\n    if (this.inactive) tag = 'div'\n    if (this.inactive && this.to) {\n      data.on = data.nativeOn\n      delete data.nativeOn\n    }\n\n    const children = this.$scopedSlots.default\n      ? this.$scopedSlots.default({\n        active: this.isActive,\n        toggle: this.toggle,\n      })\n      : this.$slots.default\n\n    return h(tag, this.setTextColor(this.color, data), children)\n  },\n})\n","var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line no-undef\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func\n  Function('return this')();\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n    var O = toIndexedObject(object);\n    var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n    var keys = ownKeys(O);\n    var result = {};\n    var index = 0;\n    var key, descriptor;\n    while (keys.length > index) {\n      descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n      if (descriptor !== undefined) createProperty(result, key, descriptor);\n    }\n    return result;\n  }\n});\n","import { VNodeDirective } from 'vue/types/vnode'\n\ninterface ResizeVNodeDirective extends VNodeDirective {\n  value?: () => void\n  options?: boolean | AddEventListenerOptions\n}\n\nfunction inserted (el: HTMLElement, binding: ResizeVNodeDirective) {\n  const callback = binding.value!\n  const options = binding.options || { passive: true }\n\n  window.addEventListener('resize', callback, options)\n  el._onResize = {\n    callback,\n    options,\n  }\n\n  if (!binding.modifiers || !binding.modifiers.quiet) {\n    callback()\n  }\n}\n\nfunction unbind (el: HTMLElement) {\n  if (!el._onResize) return\n\n  const { callback, options } = el._onResize\n  window.removeEventListener('resize', callback, options)\n  delete el._onResize\n}\n\nexport const Resize = {\n  inserted,\n  unbind,\n}\n\nexport default Resize\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\nvar nativeFreeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeFreeze(1); });\n\n// `Object.freeze` method\n// https://tc39.github.io/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n  freeze: function freeze(it) {\n    return nativeFreeze && isObject(it) ? nativeFreeze(onFreeze(it)) : it;\n  }\n});\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n  var Collection = global[COLLECTION_NAME];\n  var CollectionPrototype = Collection && Collection.prototype;\n  if (CollectionPrototype) {\n    // some Chrome versions have non-configurable methods on DOMTokenList\n    if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n      createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n    } catch (error) {\n      CollectionPrototype[ITERATOR] = ArrayValues;\n    }\n    if (!CollectionPrototype[TO_STRING_TAG]) {\n      createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n    }\n    if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n      // some Chrome versions have non-configurable methods on DOMTokenList\n      if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n        createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n      } catch (error) {\n        CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n      }\n    }\n  }\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n  // Safari 12 bug\n  NativeSymbol().description !== undefined\n)) {\n  var EmptyStringDescriptionStore = {};\n  // wrap Symbol constructor for correct work with undefined description\n  var SymbolWrapper = function Symbol() {\n    var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n    var result = this instanceof SymbolWrapper\n      ? new NativeSymbol(description)\n      // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n      : description === undefined ? NativeSymbol() : NativeSymbol(description);\n    if (description === '') EmptyStringDescriptionStore[result] = true;\n    return result;\n  };\n  copyConstructorProperties(SymbolWrapper, NativeSymbol);\n  var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n  symbolPrototype.constructor = SymbolWrapper;\n\n  var symbolToString = symbolPrototype.toString;\n  var native = String(NativeSymbol('test')) == 'Symbol(test)';\n  var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n  defineProperty(symbolPrototype, 'description', {\n    configurable: true,\n    get: function description() {\n      var symbol = isObject(this) ? this.valueOf() : this;\n      var string = symbolToString.call(symbol);\n      if (has(EmptyStringDescriptionStore, symbol)) return '';\n      var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n      return desc === '' ? undefined : desc;\n    }\n  });\n\n  $({ global: true, forced: true }, {\n    Symbol: SymbolWrapper\n  });\n}\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n    return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n  }\n});\n","// Mixins\nimport Positionable from '../positionable'\nimport Stackable from '../stackable'\nimport Activatable from '../activatable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nconst baseMixins = mixins(\n  Stackable,\n  Positionable,\n  Activatable\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  attach: boolean | string | Element\n  offsetY: boolean\n  offsetX: boolean\n  $refs: {\n    content: HTMLElement\n    activator: HTMLElement\n  }\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n  name: 'menuable',\n\n  props: {\n    allowOverflow: Boolean,\n    light: Boolean,\n    dark: Boolean,\n    maxWidth: {\n      type: [Number, String],\n      default: 'auto',\n    },\n    minWidth: [Number, String],\n    nudgeBottom: {\n      type: [Number, String],\n      default: 0,\n    },\n    nudgeLeft: {\n      type: [Number, String],\n      default: 0,\n    },\n    nudgeRight: {\n      type: [Number, String],\n      default: 0,\n    },\n    nudgeTop: {\n      type: [Number, String],\n      default: 0,\n    },\n    nudgeWidth: {\n      type: [Number, String],\n      default: 0,\n    },\n    offsetOverflow: Boolean,\n    openOnClick: Boolean,\n    positionX: {\n      type: Number,\n      default: null,\n    },\n    positionY: {\n      type: Number,\n      default: null,\n    },\n    zIndex: {\n      type: [Number, String],\n      default: null,\n    },\n  },\n\n  data: () => ({\n    absoluteX: 0,\n    absoluteY: 0,\n    activatedBy: null as EventTarget | null,\n    activatorFixed: false,\n    dimensions: {\n      activator: {\n        top: 0,\n        left: 0,\n        bottom: 0,\n        right: 0,\n        width: 0,\n        height: 0,\n        offsetTop: 0,\n        scrollHeight: 0,\n        offsetLeft: 0,\n      },\n      content: {\n        top: 0,\n        left: 0,\n        bottom: 0,\n        right: 0,\n        width: 0,\n        height: 0,\n        offsetTop: 0,\n        scrollHeight: 0,\n      },\n    },\n    hasJustFocused: false,\n    hasWindow: false,\n    inputActivator: false,\n    isContentActive: false,\n    pageWidth: 0,\n    pageYOffset: 0,\n    stackClass: 'v-menu__content--active',\n    stackMinZIndex: 6,\n  }),\n\n  computed: {\n    computedLeft () {\n      const a = this.dimensions.activator\n      const c = this.dimensions.content\n      const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0\n      const minWidth = Math.max(a.width, c.width)\n      let left = 0\n      left += this.left ? activatorLeft - (minWidth - a.width) : activatorLeft\n      if (this.offsetX) {\n        const maxWidth = isNaN(Number(this.maxWidth))\n          ? a.width\n          : Math.min(a.width, Number(this.maxWidth))\n\n        left += this.left ? -maxWidth : a.width\n      }\n      if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n      if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n      return left\n    },\n    computedTop () {\n      const a = this.dimensions.activator\n      const c = this.dimensions.content\n      let top = 0\n\n      if (this.top) top += a.height - c.height\n      if (this.attach !== false) top += a.offsetTop\n      else top += a.top + this.pageYOffset\n      if (this.offsetY) top += this.top ? -a.height : a.height\n      if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n      if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n      return top\n    },\n    hasActivator (): boolean {\n      return !!this.$slots.activator || !!this.$scopedSlots.activator || !!this.activator || !!this.inputActivator\n    },\n  },\n\n  watch: {\n    disabled (val) {\n      val && this.callDeactivate()\n    },\n    isActive (val) {\n      if (this.disabled) return\n\n      val ? this.callActivate() : this.callDeactivate()\n    },\n    positionX: 'updateDimensions',\n    positionY: 'updateDimensions',\n  },\n\n  beforeMount () {\n    this.hasWindow = typeof window !== 'undefined'\n  },\n\n  methods: {\n    absolutePosition () {\n      return {\n        offsetTop: 0,\n        offsetLeft: 0,\n        scrollHeight: 0,\n        top: this.positionY || this.absoluteY,\n        bottom: this.positionY || this.absoluteY,\n        left: this.positionX || this.absoluteX,\n        right: this.positionX || this.absoluteX,\n        height: 0,\n        width: 0,\n      }\n    },\n    activate () {},\n    calcLeft (menuWidth: number) {\n      return convertToUnit(this.attach !== false\n        ? this.computedLeft\n        : this.calcXOverflow(this.computedLeft, menuWidth))\n    },\n    calcTop () {\n      return convertToUnit(this.attach !== false\n        ? this.computedTop\n        : this.calcYOverflow(this.computedTop))\n    },\n    calcXOverflow (left: number, menuWidth: number) {\n      const xOverflow = left + menuWidth - this.pageWidth + 12\n\n      if ((!this.left || this.right) && xOverflow > 0) {\n        left = Math.max(left - xOverflow, 0)\n      } else {\n        left = Math.max(left, 12)\n      }\n\n      return left + this.getOffsetLeft()\n    },\n    calcYOverflow (top: number) {\n      const documentHeight = this.getInnerHeight()\n      const toTop = this.pageYOffset + documentHeight\n      const activator = this.dimensions.activator\n      const contentHeight = this.dimensions.content.height\n      const totalHeight = top + contentHeight\n      const isOverflowing = toTop < totalHeight\n\n      // If overflowing bottom and offset\n      // TODO: set 'bottom' position instead of 'top'\n      if (isOverflowing &&\n        this.offsetOverflow &&\n        // If we don't have enough room to offset\n        // the overflow, don't offset\n        activator.top > contentHeight\n      ) {\n        top = this.pageYOffset + (activator.top - contentHeight)\n      // If overflowing bottom\n      } else if (isOverflowing && !this.allowOverflow) {\n        top = toTop - contentHeight - 12\n      // If overflowing top\n      } else if (top < this.pageYOffset && !this.allowOverflow) {\n        top = this.pageYOffset + 12\n      }\n\n      return top < 12 ? 12 : top\n    },\n    callActivate () {\n      if (!this.hasWindow) return\n\n      this.activate()\n    },\n    callDeactivate () {\n      this.isContentActive = false\n\n      this.deactivate()\n    },\n    checkForPageYOffset () {\n      if (this.hasWindow) {\n        this.pageYOffset = this.activatorFixed ? 0 : this.getOffsetTop()\n      }\n    },\n    checkActivatorFixed () {\n      if (this.attach !== false) return\n      let el = this.getActivator()\n      while (el) {\n        if (window.getComputedStyle(el).position === 'fixed') {\n          this.activatorFixed = true\n          return\n        }\n        el = el.offsetParent as HTMLElement\n      }\n      this.activatorFixed = false\n    },\n    deactivate () {},\n    genActivatorListeners () {\n      const listeners = Activatable.options.methods.genActivatorListeners.call(this)\n\n      const onClick = listeners.click\n\n      listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => {\n        if (this.openOnClick) {\n          onClick && onClick(e)\n        }\n\n        this.absoluteX = e.clientX\n        this.absoluteY = e.clientY\n      }\n\n      return listeners\n    },\n    getInnerHeight () {\n      if (!this.hasWindow) return 0\n\n      return window.innerHeight ||\n        document.documentElement.clientHeight\n    },\n    getOffsetLeft () {\n      if (!this.hasWindow) return 0\n\n      return window.pageXOffset ||\n        document.documentElement.scrollLeft\n    },\n    getOffsetTop () {\n      if (!this.hasWindow) return 0\n\n      return window.pageYOffset ||\n        document.documentElement.scrollTop\n    },\n    getRoundedBoundedClientRect (el: Element) {\n      const rect = el.getBoundingClientRect()\n      return {\n        top: Math.round(rect.top),\n        left: Math.round(rect.left),\n        bottom: Math.round(rect.bottom),\n        right: Math.round(rect.right),\n        width: Math.round(rect.width),\n        height: Math.round(rect.height),\n      }\n    },\n    measure (el: HTMLElement) {\n      if (!el || !this.hasWindow) return null\n\n      const rect = this.getRoundedBoundedClientRect(el)\n\n      // Account for activator margin\n      if (this.attach !== false) {\n        const style = window.getComputedStyle(el)\n\n        rect.left = parseInt(style.marginLeft!)\n        rect.top = parseInt(style.marginTop!)\n      }\n\n      return rect\n    },\n    sneakPeek (cb: () => void) {\n      requestAnimationFrame(() => {\n        const el = this.$refs.content\n\n        if (!el || el.style.display !== 'none') {\n          cb()\n          return\n        }\n\n        el.style.display = 'inline-block'\n        cb()\n        el.style.display = 'none'\n      })\n    },\n    startTransition () {\n      return new Promise<void>(resolve => requestAnimationFrame(() => {\n        this.isContentActive = this.hasJustFocused = this.isActive\n        resolve()\n      }))\n    },\n    updateDimensions () {\n      this.hasWindow = typeof window !== 'undefined'\n      this.checkActivatorFixed()\n      this.checkForPageYOffset()\n      this.pageWidth = document.documentElement.clientWidth\n\n      const dimensions: any = {\n        activator: { ...this.dimensions.activator },\n        content: { ...this.dimensions.content },\n      }\n\n      // Activator should already be shown\n      if (!this.hasActivator || this.absolute) {\n        dimensions.activator = this.absolutePosition()\n      } else {\n        const activator = this.getActivator()\n        if (!activator) return\n\n        dimensions.activator = this.measure(activator)\n        dimensions.activator.offsetLeft = activator.offsetLeft\n        if (this.attach !== false) {\n          // account for css padding causing things to not line up\n          // this is mostly for v-autocomplete, hopefully it won't break anything\n          dimensions.activator.offsetTop = activator.offsetTop\n        } else {\n          dimensions.activator.offsetTop = 0\n        }\n      }\n\n      // Display and hide to get dimensions\n      this.sneakPeek(() => {\n        this.$refs.content && (dimensions.content = this.measure(this.$refs.content))\n\n        this.dimensions = dimensions\n      })\n    },\n  },\n})\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n  convertToUnit,\n  keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n  Dependent,\n  Delayable,\n  Detachable,\n  Menuable,\n  Returnable,\n  Roundable,\n  Toggleable,\n  Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'v-menu',\n\n  provide (): object {\n    return {\n      isInMenu: true,\n      // Pass theme through to default slot\n      theme: this.theme,\n    }\n  },\n\n  directives: {\n    ClickOutside,\n    Resize,\n  },\n\n  props: {\n    auto: Boolean,\n    closeOnClick: {\n      type: Boolean,\n      default: true,\n    },\n    closeOnContentClick: {\n      type: Boolean,\n      default: true,\n    },\n    disabled: Boolean,\n    disableKeys: Boolean,\n    maxHeight: {\n      type: [Number, String],\n      default: 'auto',\n    },\n    offsetX: Boolean,\n    offsetY: Boolean,\n    openOnClick: {\n      type: Boolean,\n      default: true,\n    },\n    openOnHover: Boolean,\n    origin: {\n      type: String,\n      default: 'top left',\n    },\n    transition: {\n      type: [Boolean, String],\n      default: 'v-menu-transition',\n    },\n  },\n\n  data () {\n    return {\n      calculatedTopAuto: 0,\n      defaultOffset: 8,\n      hasJustFocused: false,\n      listIndex: -1,\n      resizeTimeout: 0,\n      selectedIndex: null as null | number,\n      tiles: [] as HTMLElement[],\n    }\n  },\n\n  computed: {\n    activeTile (): HTMLElement | undefined {\n      return this.tiles[this.listIndex]\n    },\n    calculatedLeft (): string {\n      const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n      if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n      return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n    },\n    calculatedMaxHeight (): string {\n      const height = this.auto\n        ? '200px'\n        : convertToUnit(this.maxHeight)\n\n      return height || '0'\n    },\n    calculatedMaxWidth (): string {\n      return convertToUnit(this.maxWidth) || '0'\n    },\n    calculatedMinWidth (): string {\n      if (this.minWidth) {\n        return convertToUnit(this.minWidth) || '0'\n      }\n\n      const minWidth = Math.min(\n        this.dimensions.activator.width +\n        Number(this.nudgeWidth) +\n        (this.auto ? 16 : 0),\n        Math.max(this.pageWidth - 24, 0)\n      )\n\n      const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n        ? minWidth\n        : parseInt(this.calculatedMaxWidth)\n\n      return convertToUnit(Math.min(\n        calculatedMaxWidth,\n        minWidth\n      )) || '0'\n    },\n    calculatedTop (): string {\n      const top = !this.auto\n        ? this.calcTop()\n        : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n      return top || '0'\n    },\n    hasClickableTiles (): boolean {\n      return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n    },\n    styles (): object {\n      return {\n        maxHeight: this.calculatedMaxHeight,\n        minWidth: this.calculatedMinWidth,\n        maxWidth: this.calculatedMaxWidth,\n        top: this.calculatedTop,\n        left: this.calculatedLeft,\n        transformOrigin: this.origin,\n        zIndex: this.zIndex || this.activeZIndex,\n      }\n    },\n  },\n\n  watch: {\n    isActive (val) {\n      if (!val) this.listIndex = -1\n    },\n    isContentActive (val) {\n      this.hasJustFocused = val\n    },\n    listIndex (next, prev) {\n      if (next in this.tiles) {\n        const tile = this.tiles[next]\n        tile.classList.add('v-list-item--highlighted')\n        this.$refs.content.scrollTop = tile.offsetTop - tile.clientHeight\n      }\n\n      prev in this.tiles &&\n        this.tiles[prev].classList.remove('v-list-item--highlighted')\n    },\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('full-width')) {\n      removed('full-width', this)\n    }\n  },\n\n  mounted () {\n    this.isActive && this.callActivate()\n  },\n\n  methods: {\n    activate () {\n      // Update coordinates and dimensions of menu\n      // and its activator\n      this.updateDimensions()\n      // Start the transition\n      requestAnimationFrame(() => {\n        // Once transitioning, calculate scroll and top position\n        this.startTransition().then(() => {\n          if (this.$refs.content) {\n            this.calculatedTopAuto = this.calcTopAuto()\n            this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n          }\n        })\n      })\n    },\n    calcScrollPosition () {\n      const $el = this.$refs.content\n      const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n      const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n      return activeTile\n        ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n        : $el.scrollTop\n    },\n    calcLeftAuto () {\n      return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n    },\n    calcTopAuto () {\n      const $el = this.$refs.content\n      const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n      if (!activeTile) {\n        this.selectedIndex = null\n      }\n\n      if (this.offsetY || !activeTile) {\n        return this.computedTop\n      }\n\n      this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n      const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n      const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n      return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n    },\n    changeListIndex (e: KeyboardEvent) {\n      // For infinite scroll and autocomplete, re-evaluate children\n      this.getTiles()\n\n      if (!this.isActive || !this.hasClickableTiles) {\n        return\n      } else if (e.keyCode === keyCodes.tab) {\n        this.isActive = false\n        return\n      } else if (e.keyCode === keyCodes.down) {\n        this.nextTile()\n      } else if (e.keyCode === keyCodes.up) {\n        this.prevTile()\n      } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n        this.tiles[this.listIndex].click()\n      } else { return }\n      // One of the conditions was met, prevent default action (#2988)\n      e.preventDefault()\n    },\n    closeConditional (e: Event) {\n      const target = e.target as HTMLElement\n\n      return this.isActive &&\n        !this._isDestroyed &&\n        this.closeOnClick &&\n        !this.$refs.content.contains(target)\n    },\n    genActivatorAttributes () {\n      const attributes = Activatable.options.methods.genActivatorAttributes.call(this)\n\n      if (this.activeTile && this.activeTile.id) {\n        return {\n          ...attributes,\n          'aria-activedescendant': this.activeTile.id,\n        }\n      }\n\n      return attributes\n    },\n    genActivatorListeners () {\n      const listeners = Menuable.options.methods.genActivatorListeners.call(this)\n\n      if (!this.disableKeys) {\n        listeners.keydown = this.onKeyDown\n      }\n\n      return listeners\n    },\n    genTransition (): VNode {\n      const content = this.genContent()\n\n      if (!this.transition) return content\n\n      return this.$createElement('transition', {\n        props: {\n          name: this.transition,\n        },\n      }, [content])\n    },\n    genDirectives (): VNodeDirective[] {\n      const directives: VNodeDirective[] = [{\n        name: 'show',\n        value: this.isContentActive,\n      }]\n\n      // Do not add click outside for hover menu\n      if (!this.openOnHover && this.closeOnClick) {\n        directives.push({\n          name: 'click-outside',\n          value: {\n            handler: () => { this.isActive = false },\n            closeConditional: this.closeConditional,\n            include: () => [this.$el, ...this.getOpenDependentElements()],\n          },\n        })\n      }\n\n      return directives\n    },\n    genContent (): VNode {\n      const options = {\n        attrs: {\n          ...this.getScopeIdAttrs(),\n          role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n        },\n        staticClass: 'v-menu__content',\n        class: {\n          ...this.rootThemeClasses,\n          ...this.roundedClasses,\n          'v-menu__content--auto': this.auto,\n          'v-menu__content--fixed': this.activatorFixed,\n          menuable__content__active: this.isActive,\n          [this.contentClass.trim()]: true,\n        },\n        style: this.styles,\n        directives: this.genDirectives(),\n        ref: 'content',\n        on: {\n          click: (e: Event) => {\n            const target = e.target as HTMLElement\n\n            if (target.getAttribute('disabled')) return\n            if (this.closeOnContentClick) this.isActive = false\n          },\n          keydown: this.onKeyDown,\n        },\n      } as VNodeData\n\n      if (this.$listeners.scroll) {\n        options.on = options.on || {}\n        options.on.scroll = this.$listeners.scroll\n      }\n\n      if (!this.disabled && this.openOnHover) {\n        options.on = options.on || {}\n        options.on.mouseenter = this.mouseEnterHandler\n      }\n\n      if (this.openOnHover) {\n        options.on = options.on || {}\n        options.on.mouseleave = this.mouseLeaveHandler\n      }\n\n      return this.$createElement('div', options, this.getContentSlot())\n    },\n    getTiles () {\n      if (!this.$refs.content) return\n\n      this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item'))\n    },\n    mouseEnterHandler () {\n      this.runDelay('open', () => {\n        if (this.hasJustFocused) return\n\n        this.hasJustFocused = true\n        this.isActive = true\n      })\n    },\n    mouseLeaveHandler (e: MouseEvent) {\n      // Prevent accidental re-activation\n      this.runDelay('close', () => {\n        if (this.$refs.content.contains(e.relatedTarget as HTMLElement)) return\n\n        requestAnimationFrame(() => {\n          this.isActive = false\n          this.callDeactivate()\n        })\n      })\n    },\n    nextTile () {\n      const tile = this.tiles[this.listIndex + 1]\n\n      if (!tile) {\n        if (!this.tiles.length) return\n\n        this.listIndex = -1\n        this.nextTile()\n\n        return\n      }\n\n      this.listIndex++\n      if (tile.tabIndex === -1) this.nextTile()\n    },\n    prevTile () {\n      const tile = this.tiles[this.listIndex - 1]\n\n      if (!tile) {\n        if (!this.tiles.length) return\n\n        this.listIndex = this.tiles.length\n        this.prevTile()\n\n        return\n      }\n\n      this.listIndex--\n      if (tile.tabIndex === -1) this.prevTile()\n    },\n    onKeyDown (e: KeyboardEvent) {\n      if (e.keyCode === keyCodes.esc) {\n        // Wait for dependent elements to close first\n        setTimeout(() => { this.isActive = false })\n        const activator = this.getActivator()\n        this.$nextTick(() => activator && activator.focus())\n      } else if (\n        !this.isActive &&\n        [keyCodes.up, keyCodes.down].includes(e.keyCode)\n      ) {\n        this.isActive = true\n      }\n\n      // Allow for isActive watcher to generate tile list\n      this.$nextTick(() => this.changeListIndex(e))\n    },\n    onResize () {\n      if (!this.isActive) return\n\n      // Account for screen resize\n      // and orientation change\n      // eslint-disable-next-line no-unused-expressions\n      this.$refs.content.offsetWidth\n      this.updateDimensions()\n\n      // When resizing to a smaller width\n      // content width is evaluated before\n      // the new activator width has been\n      // set, causing it to not size properly\n      // hacky but will revisit in the future\n      clearTimeout(this.resizeTimeout)\n      this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-menu',\n      class: {\n        'v-menu--attached':\n          this.attach === '' ||\n          this.attach === true ||\n          this.attach === 'attach',\n      },\n      directives: [{\n        arg: '500',\n        name: 'resize',\n        value: this.onResize,\n      }],\n    }\n\n    return h('div', data, [\n      !this.activator && this.genActivator(),\n      this.showLazyContent(() => [\n        this.$createElement(VThemeProvider, {\n          props: {\n            root: true,\n            light: this.light,\n            dark: this.dark,\n          },\n        }, [this.genTransition()]),\n      ]),\n    ])\n  },\n})\n","import Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'returnable',\n\n  props: {\n    returnValue: null as any,\n  },\n\n  data: () => ({\n    isActive: false,\n    originalValue: null as any,\n  }),\n\n  watch: {\n    isActive (val) {\n      if (val) {\n        this.originalValue = this.returnValue\n      } else {\n        this.$emit('update:return-value', this.originalValue)\n      }\n    },\n  },\n\n  methods: {\n    save (value: any) {\n      this.originalValue = value\n      setTimeout(() => {\n        this.isActive = false\n      })\n    },\n  },\n})\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","module.exports = function (exec) {\n  try {\n    return { error: false, value: exec() };\n  } catch (error) {\n    return { error: true, value: error };\n  }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n  var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n  if (!GLOBAL_CORE_JS_PROMISE) {\n    // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n    // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n    // We can't detect it synchronously, so just check versions\n    if (V8_VERSION === 66) return true;\n    // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n    if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n  }\n  // We need Promise#finally in the pure version for preventing prototype pollution\n  if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n  // We can't use @@species feature detection in V8 since it causes\n  // deoptimization and performance degradation\n  // https://github.com/zloirock/core-js/issues/679\n  if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n  // Detect correctness of subclassing with @@species support\n  var promise = PromiseConstructor.resolve(1);\n  var FakePromise = function (exec) {\n    exec(function () { /* empty */ }, function () { /* empty */ });\n  };\n  var constructor = promise.constructor = {};\n  constructor[SPECIES] = FakePromise;\n  return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n  PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n  if (state.notified) return;\n  state.notified = true;\n  var chain = state.reactions;\n  microtask(function () {\n    var value = state.value;\n    var ok = state.state == FULFILLED;\n    var index = 0;\n    // variable length - can't use forEach\n    while (chain.length > index) {\n      var reaction = chain[index++];\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n            state.rejection = HANDLED;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // can throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (error) {\n        if (domain && !exited) domain.exit();\n        reject(error);\n      }\n    }\n    state.reactions = [];\n    state.notified = false;\n    if (isReject && !state.rejection) onUnhandled(promise, state);\n  });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n  var event, handler;\n  if (DISPATCH_EVENT) {\n    event = document.createEvent('Event');\n    event.promise = promise;\n    event.reason = reason;\n    event.initEvent(name, false, true);\n    global.dispatchEvent(event);\n  } else event = { promise: promise, reason: reason };\n  if (handler = global['on' + name]) handler(event);\n  else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n  task.call(global, function () {\n    var value = state.value;\n    var IS_UNHANDLED = isUnhandled(state);\n    var result;\n    if (IS_UNHANDLED) {\n      result = perform(function () {\n        if (IS_NODE) {\n          process.emit('unhandledRejection', value, promise);\n        } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n      if (result.error) throw result.value;\n    }\n  });\n};\n\nvar isUnhandled = function (state) {\n  return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n  task.call(global, function () {\n    if (IS_NODE) {\n      process.emit('rejectionHandled', promise);\n    } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n  });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n  return function (value) {\n    fn(promise, state, value, unwrap);\n  };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  state.value = value;\n  state.state = REJECTED;\n  notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n  if (state.done) return;\n  state.done = true;\n  if (unwrap) state = unwrap;\n  try {\n    if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n    var then = isThenable(value);\n    if (then) {\n      microtask(function () {\n        var wrapper = { done: false };\n        try {\n          then.call(value,\n            bind(internalResolve, promise, wrapper, state),\n            bind(internalReject, promise, wrapper, state)\n          );\n        } catch (error) {\n          internalReject(promise, wrapper, error, state);\n        }\n      });\n    } else {\n      state.value = value;\n      state.state = FULFILLED;\n      notify(promise, state, false);\n    }\n  } catch (error) {\n    internalReject(promise, { done: false }, error, state);\n  }\n};\n\n// constructor polyfill\nif (FORCED) {\n  // 25.4.3.1 Promise(executor)\n  PromiseConstructor = function Promise(executor) {\n    anInstance(this, PromiseConstructor, PROMISE);\n    aFunction(executor);\n    Internal.call(this);\n    var state = getInternalState(this);\n    try {\n      executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n    } catch (error) {\n      internalReject(this, state, error);\n    }\n  };\n  // eslint-disable-next-line no-unused-vars\n  Internal = function Promise(executor) {\n    setInternalState(this, {\n      type: PROMISE,\n      done: false,\n      notified: false,\n      parent: false,\n      reactions: [],\n      rejection: false,\n      state: PENDING,\n      value: undefined\n    });\n  };\n  Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n    // `Promise.prototype.then` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n    then: function then(onFulfilled, onRejected) {\n      var state = getInternalPromiseState(this);\n      var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = IS_NODE ? process.domain : undefined;\n      state.parent = true;\n      state.reactions.push(reaction);\n      if (state.state != PENDING) notify(this, state, false);\n      return reaction.promise;\n    },\n    // `Promise.prototype.catch` method\n    // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    var state = getInternalState(promise);\n    this.promise = promise;\n    this.resolve = bind(internalResolve, promise, state);\n    this.reject = bind(internalReject, promise, state);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === PromiseConstructor || C === PromiseWrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n\n  if (!IS_PURE && typeof NativePromise == 'function') {\n    nativeThen = NativePromise.prototype.then;\n\n    // wrap native Promise#then for native async functions\n    redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n      var that = this;\n      return new PromiseConstructor(function (resolve, reject) {\n        nativeThen.call(that, resolve, reject);\n      }).then(onFulfilled, onRejected);\n    // https://github.com/zloirock/core-js/issues/640\n    }, { unsafe: true });\n\n    // wrap fetch result\n    if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n      // eslint-disable-next-line no-unused-vars\n      fetch: function fetch(input /* , init */) {\n        return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n      }\n    });\n  }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n  Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n  // `Promise.reject` method\n  // https://tc39.github.io/ecma262/#sec-promise.reject\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    capability.reject.call(undefined, r);\n    return capability.promise;\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n  // `Promise.resolve` method\n  // https://tc39.github.io/ecma262/#sec-promise.resolve\n  resolve: function resolve(x) {\n    return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n  }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n  // `Promise.all` method\n  // https://tc39.github.io/ecma262/#sec-promise.all\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      var values = [];\n      var counter = 0;\n      var remaining = 1;\n      iterate(iterable, function (promise) {\n        var index = counter++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        $promiseResolve.call(C, promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  },\n  // `Promise.race` method\n  // https://tc39.github.io/ecma262/#sec-promise.race\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      var $promiseResolve = aFunction(C.resolve);\n      iterate(iterable, function (promise) {\n        $promiseResolve.call(C, promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.error) reject(result.value);\n    return capability.promise;\n  }\n});\n","// Styles\nimport './VOverlay.sass'\n\n// Mixins\nimport Colorable from './../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from './../../mixins/toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default mixins(\n  Colorable,\n  Themeable,\n  Toggleable\n).extend({\n  name: 'v-overlay',\n\n  props: {\n    absolute: Boolean,\n    color: {\n      type: String,\n      default: '#212121',\n    },\n    dark: {\n      type: Boolean,\n      default: true,\n    },\n    opacity: {\n      type: [Number, String],\n      default: 0.46,\n    },\n    value: {\n      default: true,\n    },\n    zIndex: {\n      type: [Number, String],\n      default: 5,\n    },\n  },\n\n  computed: {\n    __scrim (): VNode {\n      const data = this.setBackgroundColor(this.color, {\n        staticClass: 'v-overlay__scrim',\n        style: {\n          opacity: this.computedOpacity,\n        },\n      })\n\n      return this.$createElement('div', data)\n    },\n    classes (): object {\n      return {\n        'v-overlay--absolute': this.absolute,\n        'v-overlay--active': this.isActive,\n        ...this.themeClasses,\n      }\n    },\n    computedOpacity (): number {\n      return Number(this.isActive ? this.opacity : 0)\n    },\n    styles (): object {\n      return {\n        zIndex: this.zIndex,\n      }\n    },\n  },\n\n  methods: {\n    genContent () {\n      return this.$createElement('div', {\n        staticClass: 'v-overlay__content',\n      }, this.$slots.default)\n    },\n  },\n\n  render (h): VNode {\n    const children = [this.__scrim]\n\n    if (this.isActive) children.push(this.genContent())\n\n    return h('div', {\n      staticClass: 'v-overlay',\n      class: this.classes,\n      style: this.styles,\n    }, children)\n  },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n\nexport default VOverlay\n","// Components\nimport VOverlay from '../../components/VOverlay'\n\n// Utilities\nimport {\n  keyCodes,\n  addOnceEventListener,\n  addPassiveEventListener,\n  getZIndex,\n} from '../../util/helpers'\n\n// Types\nimport Vue from 'vue'\n\ninterface Toggleable extends Vue {\n  isActive?: boolean\n}\n\ninterface Stackable extends Vue {\n  activeZIndex: number\n}\n\ninterface options {\n  absolute?: boolean\n  $refs: {\n    dialog?: HTMLElement\n    content?: HTMLElement\n  }\n}\n\n/* @vue/component */\nexport default Vue.extend<Vue & Toggleable & Stackable & options>().extend({\n  name: 'overlayable',\n\n  props: {\n    hideOverlay: Boolean,\n    overlayColor: String,\n    overlayOpacity: [Number, String],\n  },\n\n  data () {\n    return {\n      animationFrame: 0,\n      overlay: null as InstanceType<typeof VOverlay> | null,\n    }\n  },\n\n  watch: {\n    hideOverlay (value) {\n      if (!this.isActive) return\n\n      if (value) this.removeOverlay()\n      else this.genOverlay()\n    },\n  },\n\n  beforeDestroy () {\n    this.removeOverlay()\n  },\n\n  methods: {\n    createOverlay () {\n      const overlay = new VOverlay({\n        propsData: {\n          absolute: this.absolute,\n          value: false,\n          color: this.overlayColor,\n          opacity: this.overlayOpacity,\n        },\n      })\n\n      overlay.$mount()\n\n      const parent = this.absolute\n        ? this.$el.parentNode\n        : document.querySelector('[data-app]')\n\n      parent && parent.insertBefore(overlay.$el, parent.firstChild)\n\n      this.overlay = overlay\n    },\n    genOverlay () {\n      this.hideScroll()\n\n      if (this.hideOverlay) return\n\n      if (!this.overlay) this.createOverlay()\n\n      this.animationFrame = requestAnimationFrame(() => {\n        if (!this.overlay) return\n\n        if (this.activeZIndex !== undefined) {\n          this.overlay.zIndex = String(this.activeZIndex - 1)\n        } else if (this.$el) {\n          this.overlay.zIndex = getZIndex(this.$el)\n        }\n\n        this.overlay.value = true\n      })\n\n      return true\n    },\n    /** removeOverlay(false) will not restore the scollbar afterwards */\n    removeOverlay (showScroll = true) {\n      if (this.overlay) {\n        addOnceEventListener(this.overlay.$el, 'transitionend', () => {\n          if (\n            !this.overlay ||\n            !this.overlay.$el ||\n            !this.overlay.$el.parentNode ||\n            this.overlay.value\n          ) return\n\n          this.overlay.$el.parentNode.removeChild(this.overlay.$el)\n          this.overlay.$destroy()\n          this.overlay = null\n        })\n\n        // Cancel animation frame in case\n        // overlay is removed before it\n        // has finished its animation\n        cancelAnimationFrame(this.animationFrame)\n\n        this.overlay.value = false\n      }\n\n      showScroll && this.showScroll()\n    },\n    scrollListener (e: WheelEvent & KeyboardEvent) {\n      if (e.type === 'keydown') {\n        if (\n          ['INPUT', 'TEXTAREA', 'SELECT'].includes((e.target as Element).tagName) ||\n          // https://github.com/vuetifyjs/vuetify/issues/4715\n          (e.target as HTMLElement).isContentEditable\n        ) return\n\n        const up = [keyCodes.up, keyCodes.pageup]\n        const down = [keyCodes.down, keyCodes.pagedown]\n\n        if (up.includes(e.keyCode)) {\n          (e as any).deltaY = -1\n        } else if (down.includes(e.keyCode)) {\n          (e as any).deltaY = 1\n        } else {\n          return\n        }\n      }\n\n      if (e.target === this.overlay ||\n        (e.type !== 'keydown' && e.target === document.body) ||\n        this.checkPath(e)) e.preventDefault()\n    },\n    hasScrollbar (el?: Element) {\n      if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n      const style = window.getComputedStyle(el)\n      return ['auto', 'scroll'].includes(style.overflowY!) && el.scrollHeight > el.clientHeight\n    },\n    shouldScroll (el: Element, delta: number) {\n      if (el.scrollTop === 0 && delta < 0) return true\n      return el.scrollTop + el.clientHeight === el.scrollHeight && delta > 0\n    },\n    isInside (el: Element, parent: Element): boolean {\n      if (el === parent) {\n        return true\n      } else if (el === null || el === document.body) {\n        return false\n      } else {\n        return this.isInside(el.parentNode as Element, parent)\n      }\n    },\n    checkPath (e: WheelEvent) {\n      const path = e.path || this.composedPath(e)\n      const delta = e.deltaY\n\n      if (e.type === 'keydown' && path[0] === document.body) {\n        const dialog = this.$refs.dialog\n        // getSelection returns null in firefox in some edge cases, can be ignored\n        const selected = window.getSelection()!.anchorNode as Element\n        if (dialog && this.hasScrollbar(dialog) && this.isInside(selected, dialog)) {\n          return this.shouldScroll(dialog, delta)\n        }\n        return true\n      }\n\n      for (let index = 0; index < path.length; index++) {\n        const el = path[index]\n\n        if (el === document) return true\n        if (el === document.documentElement) return true\n        if (el === this.$refs.content) return true\n\n        if (this.hasScrollbar(el as Element)) return this.shouldScroll(el as Element, delta)\n      }\n\n      return true\n    },\n    /**\n     * Polyfill for Event.prototype.composedPath\n     */\n    composedPath (e: WheelEvent): EventTarget[] {\n      if (e.composedPath) return e.composedPath()\n\n      const path = []\n      let el = e.target as Element\n\n      while (el) {\n        path.push(el)\n\n        if (el.tagName === 'HTML') {\n          path.push(document)\n          path.push(window)\n\n          return path\n        }\n\n        el = el.parentElement!\n      }\n      return path\n    },\n    hideScroll () {\n      if (this.$vuetify.breakpoint.smAndDown) {\n        document.documentElement!.classList.add('overflow-y-hidden')\n      } else {\n        addPassiveEventListener(window, 'wheel', this.scrollListener as EventHandlerNonNull, { passive: false })\n        window.addEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n      }\n    },\n    showScroll () {\n      document.documentElement!.classList.remove('overflow-y-hidden')\n      window.removeEventListener('wheel', this.scrollListener as EventHandlerNonNull)\n      window.removeEventListener('keydown', this.scrollListener as EventHandlerNonNull)\n    },\n  },\n})\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n  return classof(arg) == 'Array';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\n\nvar setMetadata = function (it) {\n  defineProperty(it, METADATA, { value: {\n    objectID: 'O' + ++id, // object ID\n    weakData: {}          // weak collections IDs\n  } });\n};\n\nvar fastKey = function (it, create) {\n  // return a primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!has(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMetadata(it);\n  // return object ID\n  } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n  if (!has(it, METADATA)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMetadata(it);\n  // return the store of weak collections IDs\n  } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n  return it;\n};\n\nvar meta = module.exports = {\n  REQUIRED: false,\n  fastKey: fastKey,\n  getWeakData: getWeakData,\n  onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","import Vue, { VueConstructor } from 'vue'\n\n/* eslint-disable-next-line no-use-before-define */\nexport type Toggleable<T extends string = 'value'> = VueConstructor<Vue & { isActive: boolean } & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Toggleable<T>\nexport function factory (prop = 'value', event = 'input') {\n  return Vue.extend({\n    name: 'toggleable',\n\n    model: { prop, event },\n\n    props: {\n      [prop]: { required: false },\n    },\n\n    data () {\n      return {\n        isActive: !!this[prop],\n      }\n    },\n\n    watch: {\n      [prop] (val) {\n        this.isActive = !!val\n      },\n      isActive (val) {\n        !!val !== this[prop] && this.$emit(event, val)\n      },\n    },\n  })\n}\n\n/* eslint-disable-next-line no-redeclare */\nconst Toggleable = factory()\n\nexport default Toggleable\n","export default function _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}","function _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}","import OurVue, { VueConstructor } from 'vue'\nimport { VuetifyUseOptions } from 'vuetify/types'\nimport { consoleError } from './util/console'\n\nexport function install (Vue: VueConstructor, args: VuetifyUseOptions = {}) {\n  if ((install as any).installed) return\n  (install as any).installed = true\n\n  if (OurVue !== Vue) {\n    consoleError('Multiple instances of Vue detected\\nSee https://github.com/vuetifyjs/vuetify/issues/4068\\n\\nIf you\\'re seeing \"$attrs is readonly\", it\\'s caused by this')\n  }\n\n  const components = args.components || {}\n  const directives = args.directives || {}\n\n  for (const name in directives) {\n    const directive = directives[name]\n\n    Vue.directive(name, directive)\n  }\n\n  (function registerComponents (components: any) {\n    if (components) {\n      for (const key in components) {\n        const component = components[key]\n        if (component && !registerComponents(component.$_vuetify_subcomponents)) {\n          Vue.component(key, component as typeof Vue)\n        }\n      }\n      return true\n    }\n    return false\n  })(components)\n\n  // Used to avoid multiple mixins being setup\n  // when in dev mode and hot module reload\n  // https://github.com/vuejs/vue/issues/5089#issuecomment-284260111\n  if (Vue.$_vuetify_installed) return\n  Vue.$_vuetify_installed = true\n\n  Vue.mixin({\n    beforeCreate () {\n      const options = this.$options as any\n\n      if (options.vuetify) {\n        options.vuetify.init(this, options.ssrContext)\n        this.$vuetify = Vue.observable(options.vuetify.framework)\n      } else {\n        this.$vuetify = (options.parent && options.parent.$vuetify) || this\n      }\n    },\n  })\n}\n","export default function _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}","export default function _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n  var hasNativeReflectConstruct = isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = getPrototypeOf(Derived),\n        result;\n\n    if (hasNativeReflectConstruct) {\n      var NewTarget = getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n\n    return possibleConstructorReturn(this, result);\n  };\n}","export default {\n  badge: 'Badge',\n  close: 'Close',\n  dataIterator: {\n    noResultsText: 'No matching records found',\n    loadingText: 'Loading items...',\n  },\n  dataTable: {\n    itemsPerPageText: 'Rows per page:',\n    ariaLabel: {\n      sortDescending: 'Sorted descending.',\n      sortAscending: 'Sorted ascending.',\n      sortNone: 'Not sorted.',\n      activateNone: 'Activate to remove sorting.',\n      activateDescending: 'Activate to sort descending.',\n      activateAscending: 'Activate to sort ascending.',\n    },\n    sortBy: 'Sort by',\n  },\n  dataFooter: {\n    itemsPerPageText: 'Items per page:',\n    itemsPerPageAll: 'All',\n    nextPage: 'Next page',\n    prevPage: 'Previous page',\n    firstPage: 'First page',\n    lastPage: 'Last page',\n    pageText: '{0}-{1} of {2}',\n  },\n  datePicker: {\n    itemsSelected: '{0} selected',\n    nextMonthAriaLabel: 'Next month',\n    nextYearAriaLabel: 'Next year',\n    prevMonthAriaLabel: 'Previous month',\n    prevYearAriaLabel: 'Previous year',\n  },\n  noDataText: 'No data available',\n  carousel: {\n    prev: 'Previous visual',\n    next: 'Next visual',\n    ariaLabel: {\n      delimiter: 'Carousel slide {0} of {1}',\n    },\n  },\n  calendar: {\n    moreEvents: '{0} more',\n  },\n  fileInput: {\n    counter: '{0} files',\n    counterSize: '{0} files ({1} in total)',\n  },\n  timePicker: {\n    am: 'AM',\n    pm: 'PM',\n  },\n  pagination: {\n    ariaLabel: {\n      wrapper: 'Pagination Navigation',\n      next: 'Next page',\n      previous: 'Previous page',\n      page: 'Goto Page {0}',\n      currentPage: 'Current Page, Page {0}',\n    },\n  },\n}\n","// Styles\nimport '../../styles/main.sass'\n\n// Locale\nimport { en } from '../../locale'\n\n// Icons\n// TODO: Enable for v3\n// import mdi from '../../services/icons/presets/mdi'\n\n// Types\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\n\nexport const preset: VuetifyPreset = {\n  breakpoint: {\n    // TODO: update to MD2 spec in v3 - 1280\n    mobileBreakpoint: 1264,\n    scrollBarWidth: 16,\n    thresholds: {\n      xs: 600,\n      sm: 960,\n      md: 1280,\n      lg: 1920,\n    },\n  },\n  icons: {\n    // TODO: remove v3\n    iconfont: 'mdi',\n    values: {},\n  },\n  lang: {\n    current: 'en',\n    locales: { en },\n    // Default translator exists in lang service\n    t: undefined as any,\n  },\n  rtl: false,\n  theme: {\n    dark: false,\n    default: 'light',\n    disable: false,\n    options: {\n      cspNonce: undefined,\n      customProperties: undefined,\n      minifyTheme: undefined,\n      themeCache: undefined,\n      variations: true,\n    },\n    themes: {\n      light: {\n        primary: '#1976D2',\n        secondary: '#424242',\n        accent: '#82B1FF',\n        error: '#FF5252',\n        info: '#2196F3',\n        success: '#4CAF50',\n        warning: '#FB8C00',\n      },\n      dark: {\n        primary: '#2196F3',\n        secondary: '#424242',\n        accent: '#FF4081',\n        error: '#FF5252',\n        info: '#2196F3',\n        success: '#4CAF50',\n        warning: '#FB8C00',\n      },\n    },\n  },\n}\n","// Contracts\nimport { VuetifyServiceContract } from 'vuetify/types/services/index'\n\n// Types\nimport Vue from 'vue'\n\nexport class Service implements VuetifyServiceContract {\n  framework = {}\n\n  init (root: Vue, ssrContext?: object) {}\n}\n","// Preset\nimport { preset as Preset } from '../../presets/default'\n\n// Utilities\nimport { consoleWarn } from '../../util/console'\nimport { mergeDeep } from '../../util/helpers'\n\n// Types\nimport Framework from 'vuetify/types'\nimport { Service } from '../service'\nimport {\n  UserVuetifyPreset,\n  VuetifyPreset,\n} from 'vuetify/types/services/presets'\n\nexport class Presets extends Service {\n  static property: 'presets' = 'presets'\n\n  constructor (\n    parentPreset: Partial<UserVuetifyPreset>,\n    parent: InstanceType<typeof Framework>,\n  ) {\n    super()\n\n    // The default preset\n    const defaultPreset = mergeDeep({}, Preset)\n    // The user provided preset\n    const { userPreset } = parent\n    // The user provided global preset\n    const {\n      preset: globalPreset = {},\n      ...preset\n    } = userPreset\n\n    if (globalPreset.preset != null) {\n      consoleWarn('Global presets do not support the **preset** option, it can be safely omitted')\n    }\n\n    parent.preset = mergeDeep(\n      mergeDeep(defaultPreset, globalPreset),\n      preset\n    ) as VuetifyPreset\n  }\n}\n","// Extensions\nimport { Service } from '../service'\n\n// Types\nimport { TargetPropValues, TargetProp, Application as IApplication } from 'vuetify/types/services/application'\n\nexport class Application extends Service implements IApplication {\n  static property: 'application' = 'application'\n\n  bar = 0\n\n  top = 0\n\n  left = 0\n\n  insetFooter = 0\n\n  right = 0\n\n  bottom = 0\n\n  footer = 0\n\n  application: Dictionary<TargetPropValues> = {\n    bar: {},\n    top: {},\n    left: {},\n    insetFooter: {},\n    right: {},\n    bottom: {},\n    footer: {},\n  }\n\n  register (\n    uid: number,\n    location: TargetProp,\n    size: number\n  ) {\n    this.application[location] = { [uid]: size }\n\n    this.update(location)\n  }\n\n  unregister (uid: number, location: TargetProp) {\n    if (this.application[location][uid] == null) return\n\n    delete this.application[location][uid]\n    this.update(location)\n  }\n\n  update (location: TargetProp) {\n    this[location] = Object.values(this.application[location])\n      .reduce((acc: number, cur: number): number => (acc + cur), 0)\n  }\n}\n","// Extensions\nimport { Service } from '../service'\n\n// Types\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport { Breakpoint as IBreakpoint } from 'vuetify/types/services/breakpoint'\n\nexport class Breakpoint extends Service implements IBreakpoint {\n  public static property: 'breakpoint' = 'breakpoint'\n\n  // Public\n  public xs = false\n\n  public sm = false\n\n  public md = false\n\n  public lg = false\n\n  public xl = false\n\n  public xsOnly = false\n\n  public smOnly = false\n\n  public smAndDown = false\n\n  public smAndUp = false\n\n  public mdOnly = false\n\n  public mdAndDown = false\n\n  public mdAndUp = false\n\n  public lgOnly = false\n\n  public lgAndDown = false\n\n  public lgAndUp = false\n\n  public xlOnly = false\n\n  // Value is xs to match v2.x functionality\n  public name: IBreakpoint['name'] = 'xs'\n\n  public height = 0\n\n  public width = 0\n\n  // TODO: Add functionality to detect this dynamically in v3\n  // Value is true to match v2.x functionality\n  public mobile = true\n\n  public mobileBreakpoint: IBreakpoint['mobileBreakpoint']\n\n  public thresholds: IBreakpoint['thresholds']\n\n  public scrollBarWidth: IBreakpoint['scrollBarWidth']\n\n  private resizeTimeout = 0\n\n  constructor (preset: VuetifyPreset) {\n    super()\n\n    const {\n      mobileBreakpoint,\n      scrollBarWidth,\n      thresholds,\n    } = preset[Breakpoint.property]\n\n    this.mobileBreakpoint = mobileBreakpoint\n    this.scrollBarWidth = scrollBarWidth\n    this.thresholds = thresholds\n\n    this.init()\n  }\n\n  public init () {\n    /* istanbul ignore if */\n    if (typeof window === 'undefined') return\n\n    window.addEventListener(\n      'resize',\n      this.onResize.bind(this),\n      { passive: true }\n    )\n\n    this.update()\n  }\n\n  private onResize () {\n    clearTimeout(this.resizeTimeout)\n\n    // Added debounce to match what\n    // v-resize used to do but was\n    // removed due to a memory leak\n    // https://github.com/vuetifyjs/vuetify/pull/2997\n    this.resizeTimeout = window.setTimeout(this.update.bind(this), 200)\n  }\n\n  /* eslint-disable-next-line max-statements */\n  private update () {\n    const height = this.getClientHeight()\n    const width = this.getClientWidth()\n\n    const xs = width < this.thresholds.xs\n    const sm = width < this.thresholds.sm && !xs\n    const md = width < (this.thresholds.md - this.scrollBarWidth) && !(sm || xs)\n    const lg = width < (this.thresholds.lg - this.scrollBarWidth) && !(md || sm || xs)\n    const xl = width >= (this.thresholds.lg - this.scrollBarWidth)\n\n    this.height = height\n    this.width = width\n\n    this.xs = xs\n    this.sm = sm\n    this.md = md\n    this.lg = lg\n    this.xl = xl\n\n    this.xsOnly = xs\n    this.smOnly = sm\n    this.smAndDown = (xs || sm) && !(md || lg || xl)\n    this.smAndUp = !xs && (sm || md || lg || xl)\n    this.mdOnly = md\n    this.mdAndDown = (xs || sm || md) && !(lg || xl)\n    this.mdAndUp = !(xs || sm) && (md || lg || xl)\n    this.lgOnly = lg\n    this.lgAndDown = (xs || sm || md || lg) && !xl\n    this.lgAndUp = !(xs || sm || md) && (lg || xl)\n    this.xlOnly = xl\n\n    switch (true) {\n      case (xs):\n        this.name = 'xs'\n        break\n      case (sm):\n        this.name = 'sm'\n        break\n      case (md):\n        this.name = 'md'\n        break\n      case (lg):\n        this.name = 'lg'\n        break\n      default:\n        this.name = 'xl'\n        break\n    }\n\n    if (typeof this.mobileBreakpoint === 'number') {\n      this.mobile = width < parseInt(this.mobileBreakpoint, 10)\n\n      return\n    }\n\n    const breakpoints = {\n      xs: 0,\n      sm: 1,\n      md: 2,\n      lg: 3,\n      xl: 4,\n    } as const\n\n    const current = breakpoints[this.name]\n    const max = breakpoints[this.mobileBreakpoint]\n\n    this.mobile = current <= max\n  }\n\n  // Cross-browser support as described in:\n  // https://stackoverflow.com/questions/1248081\n  private getClientWidth () {\n    /* istanbul ignore if */\n    if (typeof document === 'undefined') return 0 // SSR\n    return Math.max(\n      document.documentElement!.clientWidth,\n      window.innerWidth || 0\n    )\n  }\n\n  private getClientHeight () {\n    /* istanbul ignore if */\n    if (typeof document === 'undefined') return 0 // SSR\n    return Math.max(\n      document.documentElement!.clientHeight,\n      window.innerHeight || 0\n    )\n  }\n}\n","export type EasingFunction = (t: number) => number\n\n// linear\nexport const linear = (t: number) => t\n// accelerating from zero velocity\nexport const easeInQuad = (t: number) => t ** 2\n// decelerating to zero velocity\nexport const easeOutQuad = (t: number) => t * (2 - t)\n// acceleration until halfway, then deceleration\nexport const easeInOutQuad = (t: number) => (t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t)\n// accelerating from zero velocity\nexport const easeInCubic = (t: number) => t ** 3\n// decelerating to zero velocity\nexport const easeOutCubic = (t: number) => --t ** 3 + 1\n// acceleration until halfway, then deceleration\nexport const easeInOutCubic = (t: number) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1\n// accelerating from zero velocity\nexport const easeInQuart = (t: number) => t ** 4\n// decelerating to zero velocity\nexport const easeOutQuart = (t: number) => 1 - --t ** 4\n// acceleration until halfway, then deceleration\nexport const easeInOutQuart = (t: number) => (t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t)\n// accelerating from zero velocity\nexport const easeInQuint = (t: number) => t ** 5\n// decelerating to zero velocity\nexport const easeOutQuint = (t: number) => 1 + --t ** 5\n// acceleration until halfway, then deceleration\nexport const easeInOutQuint = (t: number) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5\n","import Vue from 'vue'\n\n// Return target's cumulative offset from the top\nexport function getOffset (target: any): number {\n  if (typeof target === 'number') {\n    return target\n  }\n\n  let el = $(target)\n  if (!el) {\n    throw typeof target === 'string'\n      ? new Error(`Target element \"${target}\" not found.`)\n      : new TypeError(`Target must be a Number/Selector/HTMLElement/VueComponent, received ${type(target)} instead.`)\n  }\n\n  let totalOffset = 0\n  while (el) {\n    totalOffset += el.offsetTop\n    el = el.offsetParent as HTMLElement\n  }\n\n  return totalOffset\n}\n\nexport function getContainer (container: any): HTMLElement {\n  const el = $(container)\n\n  if (el) return el\n\n  throw typeof container === 'string'\n    ? new Error(`Container element \"${container}\" not found.`)\n    : new TypeError(`Container must be a Selector/HTMLElement/VueComponent, received ${type(container)} instead.`)\n}\n\nfunction type (el: any) {\n  return el == null ? el : el.constructor.name\n}\n\nfunction $ (el: any): HTMLElement | null {\n  if (typeof el === 'string') {\n    return document.querySelector<HTMLElement>(el)\n  } else if (el && el._isVue) {\n    return (el as Vue).$el as HTMLElement\n  } else if (el instanceof HTMLElement) {\n    return el\n  } else {\n    return null\n  }\n}\n","// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport * as easingPatterns from './easing-patterns'\nimport {\n  getContainer,\n  getOffset,\n} from './util'\n\n// Types\nimport { GoToOptions, VuetifyGoToTarget } from 'vuetify/types/services/goto'\n\nimport { VuetifyServiceContract } from 'vuetify/types/services'\n\nexport default function goTo (\n  _target: VuetifyGoToTarget,\n  _settings: Partial<GoToOptions> = {}\n): Promise<number> {\n  const settings: GoToOptions = {\n    container: (document.scrollingElement as HTMLElement | null) || document.body || document.documentElement,\n    duration: 500,\n    offset: 0,\n    easing: 'easeInOutCubic',\n    appOffset: true,\n    ..._settings,\n  }\n  const container = getContainer(settings.container)\n\n  /* istanbul ignore else */\n  if (settings.appOffset && goTo.framework.application) {\n    const isDrawer = container.classList.contains('v-navigation-drawer')\n    const isClipped = container.classList.contains('v-navigation-drawer--clipped')\n    const { bar, top } = goTo.framework.application as any\n\n    settings.offset += bar\n    /* istanbul ignore else */\n    if (!isDrawer || isClipped) settings.offset += top\n  }\n\n  const startTime = performance.now()\n\n  let targetLocation: number\n  if (typeof _target === 'number') {\n    targetLocation = getOffset(_target) - settings.offset!\n  } else {\n    targetLocation = getOffset(_target) - getOffset(container) - settings.offset!\n  }\n\n  const startLocation = container.scrollTop\n  if (targetLocation === startLocation) return Promise.resolve(targetLocation)\n\n  const ease = typeof settings.easing === 'function'\n    ? settings.easing\n    : easingPatterns[settings.easing!]\n  /* istanbul ignore else */\n  if (!ease) throw new TypeError(`Easing function \"${settings.easing}\" not found.`)\n\n  // Cannot be tested properly in jsdom\n  // tslint:disable-next-line:promise-must-complete\n  /* istanbul ignore next */\n  return new Promise(resolve => requestAnimationFrame(function step (currentTime: number) {\n    const timeElapsed = currentTime - startTime\n    const progress = Math.abs(settings.duration ? Math.min(timeElapsed / settings.duration, 1) : 1)\n\n    container.scrollTop = Math.floor(startLocation + (targetLocation - startLocation) * ease(progress))\n\n    const clientHeight = container === document.body ? document.documentElement.clientHeight : container.clientHeight\n    if (progress === 1 || clientHeight + container.scrollTop === container.scrollHeight) {\n      return resolve(targetLocation)\n    }\n\n    requestAnimationFrame(step)\n  }))\n}\n\ngoTo.framework = {} as Record<string, VuetifyServiceContract>\ngoTo.init = () => {}\n\nexport class Goto extends Service {\n  public static property: 'goTo' = 'goTo'\n\n  constructor () {\n    super()\n\n    return goTo\n  }\n}\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\n\nconst icons: VuetifyIcons = {\n  complete: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z',\n  cancel: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n  close: 'M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z',\n  delete: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z', // delete (e.g. v-chip close)\n  clear: 'M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z',\n  success: 'M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z',\n  info: 'M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n  warning: 'M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z',\n  error: 'M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z',\n  prev: 'M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z',\n  next: 'M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z',\n  checkboxOn: 'M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n  checkboxOff: 'M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z',\n  checkboxIndeterminate: 'M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n  delimiter: 'M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z', // for carousel\n  sort: 'M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z',\n  expand: 'M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z',\n  menu: 'M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z',\n  subgroup: 'M7,10L12,15L17,10H7Z',\n  dropdown: 'M7,10L12,15L17,10H7Z',\n  radioOn: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z',\n  radioOff: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n  edit: 'M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z',\n  ratingEmpty: 'M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n  ratingFull: 'M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z',\n  ratingHalf: 'M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n  loading: 'M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12',\n  first: 'M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z',\n  last: 'M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z',\n  unfold: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z',\n  file: 'M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z',\n  plus: 'M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z',\n  minus: 'M19,13H5V11H19V13Z',\n}\n\nexport default icons\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\n\nconst icons: VuetifyIcons = {\n  complete: 'check',\n  cancel: 'cancel',\n  close: 'close',\n  delete: 'cancel', // delete (e.g. v-chip close)\n  clear: 'clear',\n  success: 'check_circle',\n  info: 'info',\n  warning: 'priority_high',\n  error: 'warning',\n  prev: 'chevron_left',\n  next: 'chevron_right',\n  checkboxOn: 'check_box',\n  checkboxOff: 'check_box_outline_blank',\n  checkboxIndeterminate: 'indeterminate_check_box',\n  delimiter: 'fiber_manual_record', // for carousel\n  sort: 'arrow_upward',\n  expand: 'keyboard_arrow_down',\n  menu: 'menu',\n  subgroup: 'arrow_drop_down',\n  dropdown: 'arrow_drop_down',\n  radioOn: 'radio_button_checked',\n  radioOff: 'radio_button_unchecked',\n  edit: 'edit',\n  ratingEmpty: 'star_border',\n  ratingFull: 'star',\n  ratingHalf: 'star_half',\n  loading: 'cached',\n  first: 'first_page',\n  last: 'last_page',\n  unfold: 'unfold_more',\n  file: 'attach_file',\n  plus: 'add',\n  minus: 'remove',\n}\n\nexport default icons\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\n\nconst icons: VuetifyIcons = {\n  complete: 'mdi-check',\n  cancel: 'mdi-close-circle',\n  close: 'mdi-close',\n  delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n  clear: 'mdi-close',\n  success: 'mdi-check-circle',\n  info: 'mdi-information',\n  warning: 'mdi-exclamation',\n  error: 'mdi-alert',\n  prev: 'mdi-chevron-left',\n  next: 'mdi-chevron-right',\n  checkboxOn: 'mdi-checkbox-marked',\n  checkboxOff: 'mdi-checkbox-blank-outline',\n  checkboxIndeterminate: 'mdi-minus-box',\n  delimiter: 'mdi-circle', // for carousel\n  sort: 'mdi-arrow-up',\n  expand: 'mdi-chevron-down',\n  menu: 'mdi-menu',\n  subgroup: 'mdi-menu-down',\n  dropdown: 'mdi-menu-down',\n  radioOn: 'mdi-radiobox-marked',\n  radioOff: 'mdi-radiobox-blank',\n  edit: 'mdi-pencil',\n  ratingEmpty: 'mdi-star-outline',\n  ratingFull: 'mdi-star',\n  ratingHalf: 'mdi-star-half',\n  loading: 'mdi-cached',\n  first: 'mdi-page-first',\n  last: 'mdi-page-last',\n  unfold: 'mdi-unfold-more-horizontal',\n  file: 'mdi-paperclip',\n  plus: 'mdi-plus',\n  minus: 'mdi-minus',\n}\n\nexport default icons\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\n\nconst icons: VuetifyIcons = {\n  complete: 'fas fa-check',\n  cancel: 'fas fa-times-circle',\n  close: 'fas fa-times',\n  delete: 'fas fa-times-circle', // delete (e.g. v-chip close)\n  clear: 'fas fa-times-circle', // delete (e.g. v-chip close)\n  success: 'fas fa-check-circle',\n  info: 'fas fa-info-circle',\n  warning: 'fas fa-exclamation',\n  error: 'fas fa-exclamation-triangle',\n  prev: 'fas fa-chevron-left',\n  next: 'fas fa-chevron-right',\n  checkboxOn: 'fas fa-check-square',\n  checkboxOff: 'far fa-square', // note 'far'\n  checkboxIndeterminate: 'fas fa-minus-square',\n  delimiter: 'fas fa-circle', // for carousel\n  sort: 'fas fa-sort-up',\n  expand: 'fas fa-chevron-down',\n  menu: 'fas fa-bars',\n  subgroup: 'fas fa-caret-down',\n  dropdown: 'fas fa-caret-down',\n  radioOn: 'far fa-dot-circle',\n  radioOff: 'far fa-circle',\n  edit: 'fas fa-edit',\n  ratingEmpty: 'far fa-star',\n  ratingFull: 'fas fa-star',\n  ratingHalf: 'fas fa-star-half',\n  loading: 'fas fa-sync',\n  first: 'fas fa-step-backward',\n  last: 'fas fa-step-forward',\n  unfold: 'fas fa-arrows-alt-v',\n  file: 'fas fa-paperclip',\n  plus: 'fas fa-plus',\n  minus: 'fas fa-minus',\n}\n\nexport default icons\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\n\nconst icons: VuetifyIcons = {\n  complete: 'fa fa-check',\n  cancel: 'fa fa-times-circle',\n  close: 'fa fa-times',\n  delete: 'fa fa-times-circle', // delete (e.g. v-chip close)\n  clear: 'fa fa-times-circle', // delete (e.g. v-chip close)\n  success: 'fa fa-check-circle',\n  info: 'fa fa-info-circle',\n  warning: 'fa fa-exclamation',\n  error: 'fa fa-exclamation-triangle',\n  prev: 'fa fa-chevron-left',\n  next: 'fa fa-chevron-right',\n  checkboxOn: 'fa fa-check-square',\n  checkboxOff: 'fa fa-square-o',\n  checkboxIndeterminate: 'fa fa-minus-square',\n  delimiter: 'fa fa-circle', // for carousel\n  sort: 'fa fa-sort-up',\n  expand: 'fa fa-chevron-down',\n  menu: 'fa fa-bars',\n  subgroup: 'fa fa-caret-down',\n  dropdown: 'fa fa-caret-down',\n  radioOn: 'fa fa-dot-circle-o',\n  radioOff: 'fa fa-circle-o',\n  edit: 'fa fa-pencil',\n  ratingEmpty: 'fa fa-star-o',\n  ratingFull: 'fa fa-star',\n  ratingHalf: 'fa fa-star-half-o',\n  loading: 'fa fa-refresh',\n  first: 'fa fa-step-backward',\n  last: 'fa fa-step-forward',\n  unfold: 'fa fa-angle-double-down',\n  file: 'fa fa-paperclip',\n  plus: 'fa fa-plus',\n  minus: 'fa fa-minus',\n}\n\nexport default icons\n","import { VuetifyIcons } from 'vuetify/types/services/icons'\nimport { Component } from 'vue'\nimport icons from './fa'\n\nexport function convertToComponentDeclarations (\n  component: Component | string,\n  iconSet: VuetifyIcons,\n) {\n  const result: Partial<VuetifyIcons> = {}\n\n  for (const key in iconSet) {\n    result[key] = {\n      component,\n      props: {\n        icon: (iconSet[key] as string).split(' fa-'),\n      },\n    }\n  }\n\n  return result as VuetifyIcons\n}\n\nexport default convertToComponentDeclarations('font-awesome-icon', icons)\n","import mdiSvg from './mdi-svg'\nimport md from './md'\nimport mdi from './mdi'\nimport fa from './fa'\nimport fa4 from './fa4'\nimport faSvg from './fa-svg'\n\nexport default Object.freeze({\n  mdiSvg,\n  md,\n  mdi,\n  fa,\n  fa4,\n  faSvg,\n})\n","// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport { mergeDeep } from '../../util/helpers'\n\n// Types\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport { Icons as IIcons } from 'vuetify/types/services/icons'\n\n// Presets\nimport presets from './presets'\n\nexport class Icons extends Service implements IIcons {\n  static property: 'icons' = 'icons'\n\n  public iconfont: IIcons['iconfont']\n\n  public values: IIcons['values']\n\n  constructor (preset: VuetifyPreset) {\n    super()\n\n    const {\n      iconfont,\n      values,\n    } = preset[Icons.property]\n\n    this.iconfont = iconfont\n    this.values = mergeDeep(\n      presets[iconfont],\n      values\n    ) as IIcons['values']\n  }\n}\n","// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\nimport { consoleError, consoleWarn } from '../../util/console'\n\n// Types\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport {\n  VuetifyLocale,\n  Lang as ILang,\n} from 'vuetify/types/services/lang'\n\nconst LANG_PREFIX = '$vuetify.'\nconst fallback = Symbol('Lang fallback')\n\nfunction getTranslation (\n  locale: VuetifyLocale,\n  key: string,\n  usingDefault = false,\n  defaultLocale: VuetifyLocale\n): string {\n  const shortKey = key.replace(LANG_PREFIX, '')\n  let translation = getObjectValueByPath(locale, shortKey, fallback) as string | typeof fallback\n\n  if (translation === fallback) {\n    if (usingDefault) {\n      consoleError(`Translation key \"${shortKey}\" not found in fallback`)\n      translation = key\n    } else {\n      consoleWarn(`Translation key \"${shortKey}\" not found, falling back to default`)\n      translation = getTranslation(defaultLocale, key, true, defaultLocale)\n    }\n  }\n\n  return translation\n}\n\nexport class Lang extends Service implements ILang {\n  static property: 'lang' = 'lang'\n\n  public current: ILang['current']\n\n  public defaultLocale = 'en'\n\n  public locales: ILang['locales']\n\n  private translator: ILang['t']\n\n  constructor (preset: VuetifyPreset) {\n    super()\n\n    const {\n      current,\n      locales,\n      t,\n    } = preset[Lang.property]\n\n    this.current = current\n    this.locales = locales\n    this.translator = t || this.defaultTranslator\n  }\n\n  public currentLocale (key: string) {\n    const translation = this.locales[this.current]\n    const defaultLocale = this.locales[this.defaultLocale]\n\n    return getTranslation(translation, key, false, defaultLocale)\n  }\n\n  public t (key: string, ...params: any[]) {\n    if (!key.startsWith(LANG_PREFIX)) return this.replace(key, params)\n\n    return this.translator(key, ...params)\n  }\n\n  private defaultTranslator (key: string, ...params: any[]) {\n    return this.replace(this.currentLocale(key), params)\n  }\n\n  private replace (str: string, params: any[]) {\n    return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n      /* istanbul ignore next */\n      return String(params[+index])\n    })\n  }\n}\n","import { XYZ, LAB } from '../colorUtils'\n\nconst delta = 0.20689655172413793 // 6÷29\n\nconst cielabForwardTransform = (t: number): number => (\n  t > delta ** 3\n    ? Math.cbrt(t)\n    : (t / (3 * delta ** 2)) + 4 / 29\n)\n\nconst cielabReverseTransform = (t: number): number => (\n  t > delta\n    ? t ** 3\n    : (3 * delta ** 2) * (t - 4 / 29)\n)\n\nexport function fromXYZ (xyz: XYZ): LAB {\n  const transform = cielabForwardTransform\n  const transformedY = transform(xyz[1])\n\n  return [\n    116 * transformedY - 16,\n    500 * (transform(xyz[0] / 0.95047) - transformedY),\n    200 * (transformedY - transform(xyz[2] / 1.08883)),\n  ]\n}\n\nexport function toXYZ (lab: LAB): XYZ {\n  const transform = cielabReverseTransform\n  const Ln = (lab[0] + 16) / 116\n  return [\n    transform(Ln + lab[1] / 500) * 0.95047,\n    transform(Ln),\n    transform(Ln - lab[2] / 200) * 1.08883,\n  ]\n}\n","import { colorToInt, intToHex, colorToHex, ColorInt } from '../../util/colorUtils'\nimport * as sRGB from '../../util/color/transformSRGB'\nimport * as LAB from '../../util/color/transformCIELAB'\nimport {\n  VuetifyParsedTheme,\n  VuetifyThemeItem,\n} from 'vuetify/types/services/theme'\n\nexport function parse (\n  theme: Record<string, VuetifyThemeItem>,\n  isItem = false,\n  variations = true,\n): VuetifyParsedTheme {\n  const { anchor, ...variant } = theme\n  const colors = Object.keys(variant)\n  const parsedTheme: any = {}\n\n  for (let i = 0; i < colors.length; ++i) {\n    const name = colors[i]\n    const value = theme[name]\n\n    if (value == null) continue\n\n    if (!variations) {\n      parsedTheme[name] = { base: intToHex(colorToInt(value)) }\n    } else if (isItem) {\n      /* istanbul ignore else */\n      if (name === 'base' || name.startsWith('lighten') || name.startsWith('darken')) {\n        parsedTheme[name] = colorToHex(value)\n      }\n    } else if (typeof value === 'object') {\n      parsedTheme[name] = parse(value, true, variations)\n    } else {\n      parsedTheme[name] = genVariations(name, colorToInt(value))\n    }\n  }\n\n  if (!isItem) {\n    parsedTheme.anchor = anchor || parsedTheme.base || parsedTheme.primary.base\n  }\n\n  return parsedTheme\n}\n\n/**\n * Generate the CSS for a base color (.primary)\n */\nconst genBaseColor = (name: string, value: string): string => {\n  return `\n.v-application .${name} {\n  background-color: ${value} !important;\n  border-color: ${value} !important;\n}\n.v-application .${name}--text {\n  color: ${value} !important;\n  caret-color: ${value} !important;\n}`\n}\n\n/**\n * Generate the CSS for a variant color (.primary.darken-2)\n */\nconst genVariantColor = (name: string, variant: string, value: string): string => {\n  const [type, n] = variant.split(/(\\d)/, 2)\n  return `\n.v-application .${name}.${type}-${n} {\n  background-color: ${value} !important;\n  border-color: ${value} !important;\n}\n.v-application .${name}--text.text--${type}-${n} {\n  color: ${value} !important;\n  caret-color: ${value} !important;\n}`\n}\n\nconst genColorVariableName = (name: string, variant = 'base'): string => `--v-${name}-${variant}`\n\nconst genColorVariable = (name: string, variant = 'base'): string => `var(${genColorVariableName(name, variant)})`\n\nexport function genStyles (theme: VuetifyParsedTheme, cssVar = false): string {\n  const { anchor, ...variant } = theme\n  const colors = Object.keys(variant)\n\n  if (!colors.length) return ''\n\n  let variablesCss = ''\n  let css = ''\n\n  const aColor = cssVar ? genColorVariable('anchor') : anchor\n  css += `.v-application a { color: ${aColor}; }`\n  cssVar && (variablesCss += `  ${genColorVariableName('anchor')}: ${anchor};\\n`)\n\n  for (let i = 0; i < colors.length; ++i) {\n    const name = colors[i]\n    const value = theme[name]\n\n    css += genBaseColor(name, cssVar ? genColorVariable(name) : value.base)\n    cssVar && (variablesCss += `  ${genColorVariableName(name)}: ${value.base};\\n`)\n\n    const variants = Object.keys(value)\n    for (let i = 0; i < variants.length; ++i) {\n      const variant = variants[i]\n      const variantValue = value[variant]\n      if (variant === 'base') continue\n\n      css += genVariantColor(name, variant, cssVar ? genColorVariable(name, variant) : variantValue)\n      cssVar && (variablesCss += `  ${genColorVariableName(name, variant)}: ${variantValue};\\n`)\n    }\n  }\n\n  if (cssVar) {\n    variablesCss = `:root {\\n${variablesCss}}\\n\\n`\n  }\n\n  return variablesCss + css\n}\n\nexport function genVariations (name: string, value: ColorInt): Record<string, string> {\n  const values: Record<string, string> = {\n    base: intToHex(value),\n  }\n\n  for (let i = 5; i > 0; --i) {\n    values[`lighten${i}`] = intToHex(lighten(value, i))\n  }\n\n  for (let i = 1; i <= 4; ++i) {\n    values[`darken${i}`] = intToHex(darken(value, i))\n  }\n\n  return values\n}\n\nexport function lighten (value: ColorInt, amount: number): ColorInt {\n  const lab = LAB.fromXYZ(sRGB.toXYZ(value))\n  lab[0] = lab[0] + amount * 10\n  return sRGB.fromXYZ(LAB.toXYZ(lab))\n}\n\nexport function darken (value: ColorInt, amount: number): ColorInt {\n  const lab = LAB.fromXYZ(sRGB.toXYZ(value))\n  lab[0] = lab[0] - amount * 10\n  return sRGB.fromXYZ(LAB.toXYZ(lab))\n}\n","/* eslint-disable no-multi-spaces */\n// Extensions\nimport { Service } from '../service'\n\n// Utilities\nimport * as ThemeUtils from './utils'\nimport { getNestedValue } from '../../util/helpers'\n\n// Types\nimport Vue from 'vue'\nimport { VuetifyPreset } from 'vuetify/types/services/presets'\nimport {\n  VuetifyParsedTheme,\n  VuetifyThemes,\n  VuetifyThemeVariant,\n  Theme as ITheme,\n} from 'vuetify/types/services/theme'\n\nexport class Theme extends Service {\n  static property: 'theme' = 'theme'\n\n  public disabled = false\n\n  public options: ITheme['options']\n\n  public styleEl?: HTMLStyleElement\n\n  public themes: VuetifyThemes\n\n  public defaults: VuetifyThemes\n\n  private isDark = null as boolean | null\n\n  private vueInstance = null as Vue | null\n\n  private vueMeta = null as any | null\n\n  constructor (preset: VuetifyPreset) {\n    super()\n\n    const {\n      dark,\n      disable,\n      options,\n      themes,\n    } = preset[Theme.property]\n\n    this.dark = Boolean(dark)\n    this.defaults = this.themes = themes\n    this.options = options\n\n    if (disable) {\n      this.disabled = true\n\n      return\n    }\n\n    this.themes = {\n      dark: this.fillVariant(themes.dark, true),\n      light: this.fillVariant(themes.light, false),\n    }\n  }\n\n  // When setting css, check for element\n  // and apply new values\n  set css (val: string) {\n    if (this.vueMeta) {\n      if (this.isVueMeta23) {\n        this.applyVueMeta23()\n      }\n      return\n    }\n    this.checkOrCreateStyleElement() && (this.styleEl!.innerHTML = val)\n  }\n\n  set dark (val: boolean) {\n    const oldDark = this.isDark\n\n    this.isDark = val\n    // Only apply theme after dark\n    // has already been set before\n    oldDark != null && this.applyTheme()\n  }\n\n  get dark () {\n    return Boolean(this.isDark)\n  }\n\n  // Apply current theme default\n  // only called on client side\n  public applyTheme (): void {\n    if (this.disabled) return this.clearCss()\n\n    this.css = this.generatedStyles\n  }\n\n  public clearCss (): void {\n    this.css = ''\n  }\n\n  // Initialize theme for SSR and SPA\n  // Attach to ssrContext head or\n  // apply new theme to document\n  public init (root: Vue, ssrContext?: any): void {\n    if (this.disabled) return\n\n    /* istanbul ignore else */\n    if ((root as any).$meta) {\n      this.initVueMeta(root)\n    } else if (ssrContext) {\n      this.initSSR(ssrContext)\n    }\n\n    this.initTheme()\n  }\n\n  // Allows for you to set target theme\n  public setTheme (theme: 'light' | 'dark', value: object) {\n    this.themes[theme] = Object.assign(this.themes[theme], value)\n    this.applyTheme()\n  }\n\n  // Reset theme defaults\n  public resetThemes () {\n    this.themes.light = Object.assign({}, this.defaults.light)\n    this.themes.dark = Object.assign({}, this.defaults.dark)\n    this.applyTheme()\n  }\n\n  // Check for existence of style element\n  private checkOrCreateStyleElement (): boolean {\n    this.styleEl = document.getElementById('vuetify-theme-stylesheet') as HTMLStyleElement\n\n    /* istanbul ignore next */\n    if (this.styleEl) return true\n\n    this.genStyleElement() // If doesn't have it, create it\n\n    return Boolean(this.styleEl)\n  }\n\n  private fillVariant (\n    theme: Partial<VuetifyThemeVariant> = {},\n    dark: boolean\n  ): VuetifyThemeVariant {\n    const defaultTheme = this.themes[dark ? 'dark' : 'light']\n\n    return Object.assign({},\n      defaultTheme,\n      theme\n    )\n  }\n\n  // Generate the style element\n  // if applicable\n  private genStyleElement (): void {\n    /* istanbul ignore if */\n    if (typeof document === 'undefined') return\n\n    /* istanbul ignore next */\n    this.styleEl = document.createElement('style')\n    this.styleEl.type = 'text/css'\n    this.styleEl.id = 'vuetify-theme-stylesheet'\n\n    if (this.options.cspNonce) {\n      this.styleEl.setAttribute('nonce', this.options.cspNonce)\n    }\n\n    document.head.appendChild(this.styleEl)\n  }\n\n  private initVueMeta (root: any) {\n    this.vueMeta = root.$meta()\n    if (this.isVueMeta23) {\n      // vue-meta needs to apply after mounted()\n      root.$nextTick(() => {\n        this.applyVueMeta23()\n      })\n      return\n    }\n\n    const metaKeyName = typeof this.vueMeta.getOptions === 'function' ? this.vueMeta.getOptions().keyName : 'metaInfo'\n    const metaInfo = root.$options[metaKeyName] || {}\n\n    root.$options[metaKeyName] = () => {\n      metaInfo.style = metaInfo.style || []\n\n      const vuetifyStylesheet = metaInfo.style.find((s: any) => s.id === 'vuetify-theme-stylesheet')\n\n      if (!vuetifyStylesheet) {\n        metaInfo.style.push({\n          cssText: this.generatedStyles,\n          type: 'text/css',\n          id: 'vuetify-theme-stylesheet',\n          nonce: (this.options || {}).cspNonce,\n        })\n      } else {\n        vuetifyStylesheet.cssText = this.generatedStyles\n      }\n\n      return metaInfo\n    }\n  }\n\n  private applyVueMeta23 () {\n    const { set } = this.vueMeta.addApp('vuetify')\n\n    set({\n      style: [{\n        cssText: this.generatedStyles,\n        type: 'text/css',\n        id: 'vuetify-theme-stylesheet',\n        nonce: this.options.cspNonce,\n      }],\n    })\n  }\n\n  private initSSR (ssrContext?: any) {\n    // SSR\n    const nonce = this.options.cspNonce ? ` nonce=\"${this.options.cspNonce}\"` : ''\n    ssrContext.head = ssrContext.head || ''\n    ssrContext.head += `<style type=\"text/css\" id=\"vuetify-theme-stylesheet\"${nonce}>${this.generatedStyles}</style>`\n  }\n\n  private initTheme () {\n    // Only watch for reactivity on client side\n    if (typeof document === 'undefined') return\n\n    // If we get here somehow, ensure\n    // existing instance is removed\n    if (this.vueInstance) this.vueInstance.$destroy()\n\n    // Use Vue instance to track reactivity\n    // TODO: Update to use RFC if merged\n    // https://github.com/vuejs/rfcs/blob/advanced-reactivity-api/active-rfcs/0000-advanced-reactivity-api.md\n    this.vueInstance = new Vue({\n      data: { themes: this.themes },\n\n      watch: {\n        themes: {\n          immediate: true,\n          deep: true,\n          handler: () => this.applyTheme(),\n        },\n      },\n    })\n  }\n\n  get currentTheme () {\n    const target = this.dark ? 'dark' : 'light'\n\n    return this.themes[target]\n  }\n\n  get generatedStyles (): string {\n    const theme = this.parsedTheme\n    /* istanbul ignore next */\n    const options = this.options || {}\n    let css\n\n    if (options.themeCache != null) {\n      css = options.themeCache.get(theme)\n      /* istanbul ignore if */\n      if (css != null) return css\n    }\n\n    css = ThemeUtils.genStyles(theme, options.customProperties)\n\n    if (options.minifyTheme != null) {\n      css = options.minifyTheme(css)\n    }\n\n    if (options.themeCache != null) {\n      options.themeCache.set(theme, css)\n    }\n\n    return css\n  }\n\n  get parsedTheme (): VuetifyParsedTheme {\n    return ThemeUtils.parse(\n      this.currentTheme || {},\n      undefined,\n      getNestedValue(this.options, ['variations'], true)\n    )\n  }\n\n  // Is using v2.3 of vue-meta\n  // https://github.com/nuxt/vue-meta/releases/tag/v2.3.0\n  private get isVueMeta23 (): boolean {\n    return typeof this.vueMeta.addApp === 'function'\n  }\n}\n","import { install } from './install'\n\n// Types\nimport Vue from 'vue'\nimport {\n  UserVuetifyPreset,\n  VuetifyPreset,\n} from 'vuetify/types/services/presets'\nimport {\n  VuetifyService,\n  VuetifyServiceContract,\n} from 'vuetify/types/services'\n\n// Services\nimport * as services from './services'\n\nexport default class Vuetify {\n  static install = install\n\n  static installed = false\n\n  static version = __VUETIFY_VERSION__\n\n  static config = {\n    silent: false,\n  }\n\n  public framework: Dictionary<VuetifyServiceContract> = {}\n\n  public installed: string[] = []\n\n  public preset = {} as VuetifyPreset\n\n  public userPreset: UserVuetifyPreset = {}\n\n  constructor (userPreset: UserVuetifyPreset = {}) {\n    this.userPreset = userPreset\n\n    this.use(services.Presets)\n    this.use(services.Application)\n    this.use(services.Breakpoint)\n    this.use(services.Goto)\n    this.use(services.Icons)\n    this.use(services.Lang)\n    this.use(services.Theme)\n  }\n\n  // Called on the new vuetify instance\n  // bootstrap in install beforeCreate\n  // Exposes ssrContext if available\n  init (root: Vue, ssrContext?: object) {\n    this.installed.forEach(property => {\n      const service = this.framework[property]\n\n      service.framework = this.framework\n\n      service.init(root, ssrContext)\n    })\n\n    // rtl is not installed and\n    // will never be called by\n    // the init process\n    this.framework.rtl = Boolean(this.preset.rtl) as any\n  }\n\n  // Instantiate a VuetifyService\n  use (Service: VuetifyService) {\n    const property = Service.property\n\n    if (this.installed.includes(property)) return\n\n    // TODO maybe a specific type for arg 2?\n    this.framework[property] = new Service(this.preset, this as any)\n    this.installed.push(property)\n  }\n}\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","// `Math.sign` method implementation\n// https://tc39.github.io/ecma262/#sec-math.sign\nmodule.exports = Math.sign || function sign(x) {\n  // eslint-disable-next-line no-self-compare\n  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","// Types\nimport { BreakpointName } from 'vuetify/types/services/breakpoint'\nimport { deprecate } from '../../util/console'\nimport Vue, { PropType } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'mobile',\n\n  props: {\n    mobileBreakpoint: {\n      type: [Number, String] as PropType<BreakpointName>,\n      default (): BreakpointName | undefined {\n        // Avoid destroying unit\n        // tests for users\n        return this.$vuetify\n          ? this.$vuetify.breakpoint.mobileBreakpoint\n          : undefined\n      },\n      validator: v => (\n        !isNaN(Number(v)) ||\n        ['xs', 'sm', 'md', 'lg', 'xl'].includes(String(v))\n      ),\n    },\n  },\n\n  computed: {\n    isMobile (): boolean {\n      const {\n        mobile,\n        width,\n        name,\n        mobileBreakpoint,\n      } = this.$vuetify.breakpoint\n\n      // Check if local mobileBreakpoint matches\n      // the application's mobileBreakpoint\n      if (mobileBreakpoint === this.mobileBreakpoint) return mobile\n\n      const mobileWidth = parseInt(this.mobileBreakpoint, 10)\n      const isNumber = !isNaN(mobileWidth)\n\n      return isNumber\n        ? width < mobileWidth\n        : name === this.mobileBreakpoint\n    },\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('mobile-break-point')) {\n      deprecate('mobile-break-point', 'mobile-breakpoint', this)\n    }\n  },\n})\n","import { VNodeDirective, VNode } from 'vue/types/vnode'\nimport { keys } from '../../util/helpers'\nimport { TouchHandlers, TouchValue, TouchWrapper } from 'vuetify/types'\n\nexport interface TouchStoredHandlers {\n  touchstart: (e: TouchEvent) => void\n  touchend: (e: TouchEvent) => void\n  touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchVNodeDirective extends VNodeDirective {\n  value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n  const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n  const dirRatio = 0.5\n  const minDistance = 16\n  wrapper.offsetX = touchendX - touchstartX\n  wrapper.offsetY = touchendY - touchstartY\n\n  if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n    wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n    wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n  }\n\n  if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n    wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n    wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n  }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n  const touch = event.changedTouches[0]\n  wrapper.touchstartX = touch.clientX\n  wrapper.touchstartY = touch.clientY\n\n  wrapper.start &&\n    wrapper.start(Object.assign(event, wrapper))\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n  const touch = event.changedTouches[0]\n  wrapper.touchendX = touch.clientX\n  wrapper.touchendY = touch.clientY\n\n  wrapper.end &&\n    wrapper.end(Object.assign(event, wrapper))\n\n  handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n  const touch = event.changedTouches[0]\n  wrapper.touchmoveX = touch.clientX\n  wrapper.touchmoveY = touch.clientY\n\n  wrapper.move && wrapper.move(Object.assign(event, wrapper))\n}\n\nfunction createHandlers (value: TouchHandlers): TouchStoredHandlers {\n  const wrapper = {\n    touchstartX: 0,\n    touchstartY: 0,\n    touchendX: 0,\n    touchendY: 0,\n    touchmoveX: 0,\n    touchmoveY: 0,\n    offsetX: 0,\n    offsetY: 0,\n    left: value.left,\n    right: value.right,\n    up: value.up,\n    down: value.down,\n    start: value.start,\n    move: value.move,\n    end: value.end,\n  }\n\n  return {\n    touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n    touchend: (e: TouchEvent) => touchend(e, wrapper),\n    touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n  }\n}\n\nfunction inserted (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n  const value = binding.value!\n  const target = value.parent ? el.parentElement : el\n  const options = value.options || { passive: true }\n\n  // Needed to pass unit tests\n  if (!target) return\n\n  const handlers = createHandlers(binding.value!)\n  target._touchHandlers = Object(target._touchHandlers)\n  target._touchHandlers![vnode.context!._uid] = handlers\n\n  keys(handlers).forEach(eventName => {\n    target.addEventListener(eventName, handlers[eventName] as EventListener, options)\n  })\n}\n\nfunction unbind (el: HTMLElement, binding: TouchVNodeDirective, vnode: VNode) {\n  const target = binding.value!.parent ? el.parentElement : el\n  if (!target || !target._touchHandlers) return\n\n  const handlers = target._touchHandlers[vnode.context!._uid]\n  keys(handlers).forEach(eventName => {\n    target.removeEventListener(eventName, handlers[eventName])\n  })\n  delete target._touchHandlers[vnode.context!._uid]\n}\n\nexport const Touch = {\n  inserted,\n  unbind,\n}\n\nexport default Touch\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport VImg, { srcObject } from '../VImg/VImg'\n\n// Mixins\nimport Applicationable from '../../mixins/applicationable'\nimport Colorable from '../../mixins/colorable'\nimport Dependent from '../../mixins/dependent'\nimport Mobile from '../../mixins/mobile'\nimport Overlayable from '../../mixins/overlayable'\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport mixins from '../../util/mixins'\n\n// Types\nimport { VNode, VNodeDirective, PropType } from 'vue'\nimport { TouchWrapper } from 'vuetify/types'\n\nconst baseMixins = mixins(\n  Applicationable('left', [\n    'isActive',\n    'isMobile',\n    'miniVariant',\n    'expandOnHover',\n    'permanent',\n    'right',\n    'temporary',\n    'width',\n  ]),\n  Colorable,\n  Dependent,\n  Mobile,\n  Overlayable,\n  SSRBootable,\n  Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n  name: 'v-navigation-drawer',\n\n  provide (): object {\n    return {\n      isInNav: this.tag === 'nav',\n    }\n  },\n\n  directives: {\n    ClickOutside,\n    Resize,\n    Touch,\n  },\n\n  props: {\n    bottom: Boolean,\n    clipped: Boolean,\n    disableResizeWatcher: Boolean,\n    disableRouteWatcher: Boolean,\n    expandOnHover: Boolean,\n    floating: Boolean,\n    height: {\n      type: [Number, String],\n      default (): string {\n        return this.app ? '100vh' : '100%'\n      },\n    },\n    miniVariant: Boolean,\n    miniVariantWidth: {\n      type: [Number, String],\n      default: 56,\n    },\n    permanent: Boolean,\n    right: Boolean,\n    src: {\n      type: [String, Object] as PropType<string | srcObject>,\n      default: '',\n    },\n    stateless: Boolean,\n    tag: {\n      type: String,\n      default (): string {\n        return this.app ? 'nav' : 'aside'\n      },\n    },\n    temporary: Boolean,\n    touchless: Boolean,\n    width: {\n      type: [Number, String],\n      default: 256,\n    },\n    value: null as unknown as PropType<any>,\n  },\n\n  data: () => ({\n    isMouseover: false,\n    touchArea: {\n      left: 0,\n      right: 0,\n    },\n    stackMinZIndex: 6,\n  }),\n\n  computed: {\n    /**\n     * Used for setting an app value from a dynamic\n     * property. Called from applicationable.js\n     */\n    applicationProperty (): string {\n      return this.right ? 'right' : 'left'\n    },\n    classes (): object {\n      return {\n        'v-navigation-drawer': true,\n        'v-navigation-drawer--absolute': this.absolute,\n        'v-navigation-drawer--bottom': this.bottom,\n        'v-navigation-drawer--clipped': this.clipped,\n        'v-navigation-drawer--close': !this.isActive,\n        'v-navigation-drawer--fixed': !this.absolute && (this.app || this.fixed),\n        'v-navigation-drawer--floating': this.floating,\n        'v-navigation-drawer--is-mobile': this.isMobile,\n        'v-navigation-drawer--is-mouseover': this.isMouseover,\n        'v-navigation-drawer--mini-variant': this.isMiniVariant,\n        'v-navigation-drawer--custom-mini-variant': Number(this.miniVariantWidth) !== 56,\n        'v-navigation-drawer--open': this.isActive,\n        'v-navigation-drawer--open-on-hover': this.expandOnHover,\n        'v-navigation-drawer--right': this.right,\n        'v-navigation-drawer--temporary': this.temporary,\n        ...this.themeClasses,\n      }\n    },\n    computedMaxHeight (): number | null {\n      if (!this.hasApp) return null\n\n      const computedMaxHeight = (\n        this.$vuetify.application.bottom +\n        this.$vuetify.application.footer +\n        this.$vuetify.application.bar\n      )\n\n      if (!this.clipped) return computedMaxHeight\n\n      return computedMaxHeight + this.$vuetify.application.top\n    },\n    computedTop (): number {\n      if (!this.hasApp) return 0\n\n      let computedTop = this.$vuetify.application.bar\n\n      computedTop += this.clipped\n        ? this.$vuetify.application.top\n        : 0\n\n      return computedTop\n    },\n    computedTransform (): number {\n      if (this.isActive) return 0\n      if (this.isBottom) return 100\n      return this.right ? 100 : -100\n    },\n    computedWidth (): string | number {\n      return this.isMiniVariant ? this.miniVariantWidth : this.width\n    },\n    hasApp (): boolean {\n      return (\n        this.app &&\n        (!this.isMobile && !this.temporary)\n      )\n    },\n    isBottom (): boolean {\n      return this.bottom && this.isMobile\n    },\n    isMiniVariant (): boolean {\n      return (\n        !this.expandOnHover &&\n        this.miniVariant\n      ) || (\n        this.expandOnHover &&\n        !this.isMouseover\n      )\n    },\n    isMobile (): boolean {\n      return (\n        !this.stateless &&\n        !this.permanent &&\n        Mobile.options.computed.isMobile.call(this)\n      )\n    },\n    reactsToClick (): boolean {\n      return (\n        !this.stateless &&\n        !this.permanent &&\n        (this.isMobile || this.temporary)\n      )\n    },\n    reactsToMobile (): boolean {\n      return (\n        this.app &&\n        !this.disableResizeWatcher &&\n        !this.permanent &&\n        !this.stateless &&\n        !this.temporary\n      )\n    },\n    reactsToResize (): boolean {\n      return !this.disableResizeWatcher && !this.stateless\n    },\n    reactsToRoute (): boolean {\n      return (\n        !this.disableRouteWatcher &&\n        !this.stateless &&\n        (this.temporary || this.isMobile)\n      )\n    },\n    showOverlay (): boolean {\n      return (\n        !this.hideOverlay &&\n        this.isActive &&\n        (this.isMobile || this.temporary)\n      )\n    },\n    styles (): object {\n      const translate = this.isBottom ? 'translateY' : 'translateX'\n      const styles = {\n        height: convertToUnit(this.height),\n        top: !this.isBottom ? convertToUnit(this.computedTop) : 'auto',\n        maxHeight: this.computedMaxHeight != null\n          ? `calc(100% - ${convertToUnit(this.computedMaxHeight)})`\n          : undefined,\n        transform: `${translate}(${convertToUnit(this.computedTransform, '%')})`,\n        width: convertToUnit(this.computedWidth),\n      }\n\n      return styles\n    },\n  },\n\n  watch: {\n    $route: 'onRouteChange',\n    isActive (val) {\n      this.$emit('input', val)\n    },\n    /**\n     * When mobile changes, adjust the active state\n     * only when there has been a previous value\n     */\n    isMobile (val, prev) {\n      !val &&\n        this.isActive &&\n        !this.temporary &&\n        this.removeOverlay()\n\n      if (prev == null ||\n        !this.reactsToResize ||\n        !this.reactsToMobile\n      ) return\n\n      this.isActive = !val\n    },\n    permanent (val) {\n      // If enabling prop enable the drawer\n      if (val) this.isActive = true\n    },\n    showOverlay (val) {\n      if (val) this.genOverlay()\n      else this.removeOverlay()\n    },\n    value (val) {\n      if (this.permanent) return\n\n      if (val == null) {\n        this.init()\n        return\n      }\n\n      if (val !== this.isActive) this.isActive = val\n    },\n    expandOnHover: 'updateMiniVariant',\n    isMouseover (val) {\n      this.updateMiniVariant(!val)\n    },\n  },\n\n  beforeMount () {\n    this.init()\n  },\n\n  methods: {\n    calculateTouchArea () {\n      const parent = this.$el.parentNode as Element\n\n      if (!parent) return\n\n      const parentRect = parent.getBoundingClientRect()\n\n      this.touchArea = {\n        left: parentRect.left + 50,\n        right: parentRect.right - 50,\n      }\n    },\n    closeConditional () {\n      return this.isActive && !this._isDestroyed && this.reactsToClick\n    },\n    genAppend () {\n      return this.genPosition('append')\n    },\n    genBackground () {\n      const props = {\n        height: '100%',\n        width: '100%',\n        src: this.src,\n      }\n\n      const image = this.$scopedSlots.img\n        ? this.$scopedSlots.img(props)\n        : this.$createElement(VImg, { props })\n\n      return this.$createElement('div', {\n        staticClass: 'v-navigation-drawer__image',\n      }, [image])\n    },\n    genDirectives (): VNodeDirective[] {\n      const directives = [{\n        name: 'click-outside',\n        value: {\n          handler: () => { this.isActive = false },\n          closeConditional: this.closeConditional,\n          include: this.getOpenDependentElements,\n        },\n      }]\n\n      if (!this.touchless && !this.stateless) {\n        directives.push({\n          name: 'touch',\n          value: {\n            parent: true,\n            left: this.swipeLeft,\n            right: this.swipeRight,\n          },\n        } as any)\n      }\n\n      return directives\n    },\n    genListeners () {\n      const on: Record<string, (e: Event) => void> = {\n        transitionend: (e: Event) => {\n          if (e.target !== e.currentTarget) return\n          this.$emit('transitionend', e)\n\n          // IE11 does not support new Event('resize')\n          const resizeEvent = document.createEvent('UIEvents')\n          resizeEvent.initUIEvent('resize', true, false, window, 0)\n          window.dispatchEvent(resizeEvent)\n        },\n      }\n\n      if (this.miniVariant) {\n        on.click = () => this.$emit('update:mini-variant', false)\n      }\n\n      if (this.expandOnHover) {\n        on.mouseenter = () => (this.isMouseover = true)\n        on.mouseleave = () => (this.isMouseover = false)\n      }\n\n      return on\n    },\n    genPosition (name: 'prepend' | 'append') {\n      const slot = getSlot(this, name)\n\n      if (!slot) return slot\n\n      return this.$createElement('div', {\n        staticClass: `v-navigation-drawer__${name}`,\n      }, slot)\n    },\n    genPrepend () {\n      return this.genPosition('prepend')\n    },\n    genContent () {\n      return this.$createElement('div', {\n        staticClass: 'v-navigation-drawer__content',\n      }, this.$slots.default)\n    },\n    genBorder () {\n      return this.$createElement('div', {\n        staticClass: 'v-navigation-drawer__border',\n      })\n    },\n    init () {\n      if (this.permanent) {\n        this.isActive = true\n      } else if (this.stateless ||\n        this.value != null\n      ) {\n        this.isActive = this.value\n      } else if (!this.temporary) {\n        this.isActive = !this.isMobile\n      }\n    },\n    onRouteChange () {\n      if (this.reactsToRoute && this.closeConditional()) {\n        this.isActive = false\n      }\n    },\n    swipeLeft (e: TouchWrapper) {\n      if (this.isActive && this.right) return\n      this.calculateTouchArea()\n\n      if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n      if (this.right &&\n        e.touchstartX >= this.touchArea.right\n      ) this.isActive = true\n      else if (!this.right && this.isActive) this.isActive = false\n    },\n    swipeRight (e: TouchWrapper) {\n      if (this.isActive && !this.right) return\n      this.calculateTouchArea()\n\n      if (Math.abs(e.touchendX - e.touchstartX) < 100) return\n      if (!this.right &&\n        e.touchstartX <= this.touchArea.left\n      ) this.isActive = true\n      else if (this.right && this.isActive) this.isActive = false\n    },\n    /**\n     * Update the application layout\n     */\n    updateApplication () {\n      if (\n        !this.isActive ||\n        this.isMobile ||\n        this.temporary ||\n        !this.$el\n      ) return 0\n\n      const width = Number(this.computedWidth)\n\n      return isNaN(width) ? this.$el.clientWidth : width\n    },\n    updateMiniVariant (val: boolean) {\n      if (this.miniVariant !== val) this.$emit('update:mini-variant', val)\n    },\n  },\n\n  render (h): VNode {\n    const children = [\n      this.genPrepend(),\n      this.genContent(),\n      this.genAppend(),\n      this.genBorder(),\n    ]\n\n    if (this.src || getSlot(this, 'img')) children.unshift(this.genBackground())\n\n    return h(this.tag, this.setBackgroundColor(this.color, {\n      class: this.classes,\n      style: this.styles,\n      directives: this.genDirectives(),\n      on: this.genListeners(),\n    }), children)\n  },\n})\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('slice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n  slice: function slice(start, end) {\n    var O = toIndexedObject(this);\n    var length = toLength(O.length);\n    var k = toAbsoluteIndex(start, length);\n    var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n    // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n    var Constructor, result, n;\n    if (isArray(O)) {\n      Constructor = O.constructor;\n      // cross-realm fallback\n      if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n        Constructor = undefined;\n      } else if (isObject(Constructor)) {\n        Constructor = Constructor[SPECIES];\n        if (Constructor === null) Constructor = undefined;\n      }\n      if (Constructor === Array || Constructor === undefined) {\n        return nativeSlice.call(O, k, fin);\n      }\n    }\n    result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n    for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n    result.length = n;\n    return result;\n  }\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n  CSSRuleList: 0,\n  CSSStyleDeclaration: 0,\n  CSSValueList: 0,\n  ClientRectList: 0,\n  DOMRectList: 0,\n  DOMStringList: 0,\n  DOMTokenList: 1,\n  DataTransferItemList: 0,\n  FileList: 0,\n  HTMLAllCollection: 0,\n  HTMLCollection: 0,\n  HTMLFormElement: 0,\n  HTMLSelectElement: 0,\n  MediaList: 0,\n  MimeTypeArray: 0,\n  NamedNodeMap: 0,\n  NodeList: 1,\n  PaintRequestList: 0,\n  Plugin: 0,\n  PluginArray: 0,\n  SVGLengthList: 0,\n  SVGNumberList: 0,\n  SVGPathSegList: 0,\n  SVGPointList: 0,\n  SVGStringList: 0,\n  SVGTransformList: 0,\n  SourceBufferList: 0,\n  StyleSheetList: 0,\n  TextTrackCueList: 0,\n  TextTrackList: 0,\n  TouchList: 0\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n  // eslint-disable-next-line no-undef\n  && !Symbol.sham\n  // eslint-disable-next-line no-undef\n  && typeof Symbol.iterator == 'symbol';\n","import Vue from 'vue'\nimport { filterObjectOnKeys } from '../../util/helpers'\nimport { OptionsVue, VueConstructor } from 'vue/types/vue'\n\nconst availableProps = {\n  absolute: Boolean,\n  bottom: Boolean,\n  fixed: Boolean,\n  left: Boolean,\n  right: Boolean,\n  top: Boolean,\n}\ntype props = Record<keyof typeof availableProps, boolean>\n\nexport type Positionable<S extends keyof props> = VueConstructor<Vue & { [P in S]: boolean }, { [P in S]: BooleanConstructor }>\n\nexport function factory <S extends keyof props> (selected?: S[]): Positionable<S>\nexport function factory (selected: undefined): OptionsVue<Vue, {}, {}, {}, props, typeof availableProps>\nexport function factory (selected: any[] = []): any {\n  return Vue.extend({\n    name: 'positionable',\n    props: selected.length ? filterObjectOnKeys(availableProps, selected) : availableProps,\n  })\n}\n\nexport default factory()\n\n// Add a `*` before the second `/`\n/* Tests /\nlet single = factory(['top']).extend({\n  created () {\n    this.top\n    this.bottom\n    this.absolute\n  }\n})\n\nlet some = factory(['top', 'bottom']).extend({\n  created () {\n    this.top\n    this.bottom\n    this.absolute\n  }\n})\n\nlet all = factory().extend({\n  created () {\n    this.top\n    this.bottom\n    this.absolute\n    this.foobar\n  }\n})\n/**/\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/scripts/system/inventory/package-lock.json b/scripts/system/inventory/package-lock.json
new file mode 100644
index 0000000000..78a14492c7
--- /dev/null
+++ b/scripts/system/inventory/package-lock.json
@@ -0,0 +1,13049 @@
+{
+  "name": "Inventory",
+  "version": "0.1.0",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "@babel/code-frame": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
+      "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+      "dev": true,
+      "requires": {
+        "@babel/highlight": "^7.8.3"
+      }
+    },
+    "@babel/compat-data": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.5.tgz",
+      "integrity": "sha512-mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.12.0",
+        "invariant": "^2.2.4",
+        "semver": "^5.5.0"
+      }
+    },
+    "@babel/core": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.10.5.tgz",
+      "integrity": "sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.10.4",
+        "@babel/generator": "^7.10.5",
+        "@babel/helper-module-transforms": "^7.10.5",
+        "@babel/helpers": "^7.10.4",
+        "@babel/parser": "^7.10.5",
+        "@babel/template": "^7.10.4",
+        "@babel/traverse": "^7.10.5",
+        "@babel/types": "^7.10.5",
+        "convert-source-map": "^1.7.0",
+        "debug": "^4.1.0",
+        "gensync": "^1.0.0-beta.1",
+        "json5": "^2.1.2",
+        "lodash": "^4.17.19",
+        "resolve": "^1.3.2",
+        "semver": "^5.4.1",
+        "source-map": "^0.5.0"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/generator": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz",
+          "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.5",
+            "jsesc": "^2.5.1",
+            "source-map": "^0.5.0"
+          }
+        },
+        "@babel/helper-function-name": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+          "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-get-function-arity": "^7.10.4",
+            "@babel/template": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-get-function-arity": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+          "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-split-export-declaration": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+          "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/traverse": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz",
+          "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/generator": "^7.10.5",
+            "@babel/helper-function-name": "^7.10.4",
+            "@babel/helper-split-export-declaration": "^7.10.4",
+            "@babel/parser": "^7.10.5",
+            "@babel/types": "^7.10.5",
+            "debug": "^4.1.0",
+            "globals": "^11.1.0",
+            "lodash": "^4.17.19"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/generator": {
+      "version": "7.9.4",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz",
+      "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.9.0",
+        "jsesc": "^2.5.1",
+        "lodash": "^4.17.13",
+        "source-map": "^0.5.0"
+      }
+    },
+    "@babel/helper-annotate-as-pure": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz",
+      "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-builder-binary-assignment-operator-visitor": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz",
+      "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-explode-assignable-expression": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-compilation-targets": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz",
+      "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==",
+      "dev": true,
+      "requires": {
+        "@babel/compat-data": "^7.10.4",
+        "browserslist": "^4.12.0",
+        "invariant": "^2.2.4",
+        "levenary": "^1.1.1",
+        "semver": "^5.5.0"
+      }
+    },
+    "@babel/helper-create-class-features-plugin": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz",
+      "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-function-name": "^7.10.4",
+        "@babel/helper-member-expression-to-functions": "^7.10.5",
+        "@babel/helper-optimise-call-expression": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-replace-supers": "^7.10.4",
+        "@babel/helper-split-export-declaration": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/helper-function-name": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+          "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-get-function-arity": "^7.10.4",
+            "@babel/template": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-get-function-arity": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+          "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-split-export-declaration": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+          "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-create-regexp-features-plugin": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz",
+      "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-annotate-as-pure": "^7.10.4",
+        "@babel/helper-regex": "^7.10.4",
+        "regexpu-core": "^4.7.0"
+      }
+    },
+    "@babel/helper-define-map": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz",
+      "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-function-name": "^7.10.4",
+        "@babel/types": "^7.10.5",
+        "lodash": "^4.17.19"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/helper-function-name": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+          "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-get-function-arity": "^7.10.4",
+            "@babel/template": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-get-function-arity": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+          "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-explode-assignable-expression": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz",
+      "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==",
+      "dev": true,
+      "requires": {
+        "@babel/traverse": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/generator": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz",
+          "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.5",
+            "jsesc": "^2.5.1",
+            "source-map": "^0.5.0"
+          }
+        },
+        "@babel/helper-function-name": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+          "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-get-function-arity": "^7.10.4",
+            "@babel/template": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-get-function-arity": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+          "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-split-export-declaration": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+          "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/traverse": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz",
+          "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/generator": "^7.10.5",
+            "@babel/helper-function-name": "^7.10.4",
+            "@babel/helper-split-export-declaration": "^7.10.4",
+            "@babel/parser": "^7.10.5",
+            "@babel/types": "^7.10.5",
+            "debug": "^4.1.0",
+            "globals": "^11.1.0",
+            "lodash": "^4.17.19"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-function-name": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
+      "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-get-function-arity": "^7.8.3",
+        "@babel/template": "^7.8.3",
+        "@babel/types": "^7.8.3"
+      }
+    },
+    "@babel/helper-get-function-arity": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
+      "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.8.3"
+      }
+    },
+    "@babel/helper-hoist-variables": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz",
+      "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-member-expression-to-functions": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz",
+      "integrity": "sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.10.5"
+      },
+      "dependencies": {
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-module-imports": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
+      "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-module-transforms": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz",
+      "integrity": "sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-imports": "^7.10.4",
+        "@babel/helper-replace-supers": "^7.10.4",
+        "@babel/helper-simple-access": "^7.10.4",
+        "@babel/helper-split-export-declaration": "^7.10.4",
+        "@babel/template": "^7.10.4",
+        "@babel/types": "^7.10.5",
+        "lodash": "^4.17.19"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/helper-split-export-declaration": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+          "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-optimise-call-expression": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
+      "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-plugin-utils": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+      "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==",
+      "dev": true
+    },
+    "@babel/helper-regex": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz",
+      "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.19"
+      },
+      "dependencies": {
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-remap-async-to-generator": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz",
+      "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-annotate-as-pure": "^7.10.4",
+        "@babel/helper-wrap-function": "^7.10.4",
+        "@babel/template": "^7.10.4",
+        "@babel/traverse": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/generator": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz",
+          "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.5",
+            "jsesc": "^2.5.1",
+            "source-map": "^0.5.0"
+          }
+        },
+        "@babel/helper-function-name": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+          "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-get-function-arity": "^7.10.4",
+            "@babel/template": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-get-function-arity": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+          "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-split-export-declaration": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+          "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/traverse": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz",
+          "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/generator": "^7.10.5",
+            "@babel/helper-function-name": "^7.10.4",
+            "@babel/helper-split-export-declaration": "^7.10.4",
+            "@babel/parser": "^7.10.5",
+            "@babel/types": "^7.10.5",
+            "debug": "^4.1.0",
+            "globals": "^11.1.0",
+            "lodash": "^4.17.19"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-replace-supers": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
+      "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-member-expression-to-functions": "^7.10.4",
+        "@babel/helper-optimise-call-expression": "^7.10.4",
+        "@babel/traverse": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/generator": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz",
+          "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.5",
+            "jsesc": "^2.5.1",
+            "source-map": "^0.5.0"
+          }
+        },
+        "@babel/helper-function-name": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+          "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-get-function-arity": "^7.10.4",
+            "@babel/template": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-get-function-arity": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+          "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-split-export-declaration": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+          "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/traverse": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz",
+          "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/generator": "^7.10.5",
+            "@babel/helper-function-name": "^7.10.4",
+            "@babel/helper-split-export-declaration": "^7.10.4",
+            "@babel/parser": "^7.10.5",
+            "@babel/types": "^7.10.5",
+            "debug": "^4.1.0",
+            "globals": "^11.1.0",
+            "lodash": "^4.17.19"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-simple-access": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
+      "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
+      "dev": true,
+      "requires": {
+        "@babel/template": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helper-split-export-declaration": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
+      "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
+      "dev": true,
+      "requires": {
+        "@babel/types": "^7.8.3"
+      }
+    },
+    "@babel/helper-validator-identifier": {
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz",
+      "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==",
+      "dev": true
+    },
+    "@babel/helper-wrap-function": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz",
+      "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-function-name": "^7.10.4",
+        "@babel/template": "^7.10.4",
+        "@babel/traverse": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/generator": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz",
+          "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.5",
+            "jsesc": "^2.5.1",
+            "source-map": "^0.5.0"
+          }
+        },
+        "@babel/helper-function-name": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+          "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-get-function-arity": "^7.10.4",
+            "@babel/template": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-get-function-arity": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+          "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-split-export-declaration": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+          "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/traverse": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz",
+          "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/generator": "^7.10.5",
+            "@babel/helper-function-name": "^7.10.4",
+            "@babel/helper-split-export-declaration": "^7.10.4",
+            "@babel/parser": "^7.10.5",
+            "@babel/types": "^7.10.5",
+            "debug": "^4.1.0",
+            "globals": "^11.1.0",
+            "lodash": "^4.17.19"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/helpers": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
+      "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
+      "dev": true,
+      "requires": {
+        "@babel/template": "^7.10.4",
+        "@babel/traverse": "^7.10.4",
+        "@babel/types": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/generator": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz",
+          "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.5",
+            "jsesc": "^2.5.1",
+            "source-map": "^0.5.0"
+          }
+        },
+        "@babel/helper-function-name": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+          "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-get-function-arity": "^7.10.4",
+            "@babel/template": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-get-function-arity": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+          "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-split-export-declaration": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+          "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/traverse": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz",
+          "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/generator": "^7.10.5",
+            "@babel/helper-function-name": "^7.10.4",
+            "@babel/helper-split-export-declaration": "^7.10.4",
+            "@babel/parser": "^7.10.5",
+            "@babel/types": "^7.10.5",
+            "debug": "^4.1.0",
+            "globals": "^11.1.0",
+            "lodash": "^4.17.19"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/highlight": {
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+      "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-validator-identifier": "^7.9.0",
+        "chalk": "^2.0.0",
+        "js-tokens": "^4.0.0"
+      }
+    },
+    "@babel/parser": {
+      "version": "7.9.4",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+      "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+      "dev": true
+    },
+    "@babel/plugin-proposal-async-generator-functions": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz",
+      "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-remap-async-to-generator": "^7.10.4",
+        "@babel/plugin-syntax-async-generators": "^7.8.0"
+      }
+    },
+    "@babel/plugin-proposal-class-properties": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz",
+      "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-class-features-plugin": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-proposal-decorators": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.5.tgz",
+      "integrity": "sha512-Sc5TAQSZuLzgY0664mMDn24Vw2P8g/VhyLyGPaWiHahhgLqeZvcGeyBZOrJW0oSKIK2mvQ22a1ENXBIQLhrEiQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-class-features-plugin": "^7.10.5",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/plugin-syntax-decorators": "^7.10.4"
+      }
+    },
+    "@babel/plugin-proposal-dynamic-import": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz",
+      "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/plugin-syntax-dynamic-import": "^7.8.0"
+      }
+    },
+    "@babel/plugin-proposal-json-strings": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz",
+      "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/plugin-syntax-json-strings": "^7.8.0"
+      }
+    },
+    "@babel/plugin-proposal-nullish-coalescing-operator": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz",
+      "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
+      }
+    },
+    "@babel/plugin-proposal-numeric-separator": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz",
+      "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+      }
+    },
+    "@babel/plugin-proposal-object-rest-spread": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz",
+      "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+        "@babel/plugin-transform-parameters": "^7.10.4"
+      }
+    },
+    "@babel/plugin-proposal-optional-catch-binding": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz",
+      "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
+      }
+    },
+    "@babel/plugin-proposal-optional-chaining": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz",
+      "integrity": "sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/plugin-syntax-optional-chaining": "^7.8.0"
+      }
+    },
+    "@babel/plugin-proposal-private-methods": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz",
+      "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-class-features-plugin": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-proposal-unicode-property-regex": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz",
+      "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-syntax-async-generators": {
+      "version": "7.8.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+      "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-class-properties": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz",
+      "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-syntax-decorators": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz",
+      "integrity": "sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-syntax-dynamic-import": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+      "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-json-strings": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+      "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-jsx": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz",
+      "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-syntax-nullish-coalescing-operator": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+      "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-numeric-separator": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+      "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-syntax-object-rest-spread": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+      "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-optional-catch-binding": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+      "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-optional-chaining": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+      "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.0"
+      }
+    },
+    "@babel/plugin-syntax-top-level-await": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz",
+      "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-arrow-functions": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz",
+      "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-async-to-generator": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz",
+      "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-imports": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-remap-async-to-generator": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-block-scoped-functions": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz",
+      "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-block-scoping": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz",
+      "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-classes": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz",
+      "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-annotate-as-pure": "^7.10.4",
+        "@babel/helper-define-map": "^7.10.4",
+        "@babel/helper-function-name": "^7.10.4",
+        "@babel/helper-optimise-call-expression": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-replace-supers": "^7.10.4",
+        "@babel/helper-split-export-declaration": "^7.10.4",
+        "globals": "^11.1.0"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/helper-function-name": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+          "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-get-function-arity": "^7.10.4",
+            "@babel/template": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-get-function-arity": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+          "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-split-export-declaration": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz",
+          "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/plugin-transform-computed-properties": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz",
+      "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-destructuring": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz",
+      "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-dotall-regex": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz",
+      "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-duplicate-keys": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz",
+      "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-exponentiation-operator": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz",
+      "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-for-of": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz",
+      "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-function-name": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz",
+      "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-function-name": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/code-frame": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+          "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+          "dev": true,
+          "requires": {
+            "@babel/highlight": "^7.10.4"
+          }
+        },
+        "@babel/helper-function-name": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+          "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-get-function-arity": "^7.10.4",
+            "@babel/template": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-get-function-arity": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+          "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/highlight": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+          "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "chalk": "^2.0.0",
+            "js-tokens": "^4.0.0"
+          }
+        },
+        "@babel/parser": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz",
+          "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==",
+          "dev": true
+        },
+        "@babel/template": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+          "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.10.4",
+            "@babel/parser": "^7.10.4",
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/plugin-transform-literals": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz",
+      "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-member-expression-literals": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz",
+      "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-modules-amd": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz",
+      "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-transforms": "^7.10.5",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "babel-plugin-dynamic-import-node": "^2.3.3"
+      }
+    },
+    "@babel/plugin-transform-modules-commonjs": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz",
+      "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-transforms": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-simple-access": "^7.10.4",
+        "babel-plugin-dynamic-import-node": "^2.3.3"
+      }
+    },
+    "@babel/plugin-transform-modules-systemjs": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz",
+      "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-hoist-variables": "^7.10.4",
+        "@babel/helper-module-transforms": "^7.10.5",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "babel-plugin-dynamic-import-node": "^2.3.3"
+      }
+    },
+    "@babel/plugin-transform-modules-umd": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz",
+      "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-transforms": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-named-capturing-groups-regex": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz",
+      "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-regexp-features-plugin": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-new-target": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz",
+      "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-object-super": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz",
+      "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-replace-supers": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-parameters": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz",
+      "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-get-function-arity": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
+      },
+      "dependencies": {
+        "@babel/helper-get-function-arity": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+          "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
+          "dev": true,
+          "requires": {
+            "@babel/types": "^7.10.4"
+          }
+        },
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/plugin-transform-property-literals": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz",
+      "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-regenerator": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz",
+      "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==",
+      "dev": true,
+      "requires": {
+        "regenerator-transform": "^0.14.2"
+      }
+    },
+    "@babel/plugin-transform-reserved-words": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz",
+      "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-runtime": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.5.tgz",
+      "integrity": "sha512-tV4V/FjElJ9lQtyjr5xD2IFFbgY46r7EeVu5a8CpEKT5laheHKSlFeHjpkPppW3PqzGLAuv5k2qZX5LgVZIX5w==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-imports": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "resolve": "^1.8.1",
+        "semver": "^5.5.1"
+      }
+    },
+    "@babel/plugin-transform-shorthand-properties": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz",
+      "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-spread": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz",
+      "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-sticky-regex": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz",
+      "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/helper-regex": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-template-literals": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz",
+      "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-annotate-as-pure": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-typeof-symbol": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz",
+      "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-unicode-escapes": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz",
+      "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/plugin-transform-unicode-regex": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz",
+      "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4"
+      }
+    },
+    "@babel/preset-env": {
+      "version": "7.10.4",
+      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.4.tgz",
+      "integrity": "sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==",
+      "dev": true,
+      "requires": {
+        "@babel/compat-data": "^7.10.4",
+        "@babel/helper-compilation-targets": "^7.10.4",
+        "@babel/helper-module-imports": "^7.10.4",
+        "@babel/helper-plugin-utils": "^7.10.4",
+        "@babel/plugin-proposal-async-generator-functions": "^7.10.4",
+        "@babel/plugin-proposal-class-properties": "^7.10.4",
+        "@babel/plugin-proposal-dynamic-import": "^7.10.4",
+        "@babel/plugin-proposal-json-strings": "^7.10.4",
+        "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4",
+        "@babel/plugin-proposal-numeric-separator": "^7.10.4",
+        "@babel/plugin-proposal-object-rest-spread": "^7.10.4",
+        "@babel/plugin-proposal-optional-catch-binding": "^7.10.4",
+        "@babel/plugin-proposal-optional-chaining": "^7.10.4",
+        "@babel/plugin-proposal-private-methods": "^7.10.4",
+        "@babel/plugin-proposal-unicode-property-regex": "^7.10.4",
+        "@babel/plugin-syntax-async-generators": "^7.8.0",
+        "@babel/plugin-syntax-class-properties": "^7.10.4",
+        "@babel/plugin-syntax-dynamic-import": "^7.8.0",
+        "@babel/plugin-syntax-json-strings": "^7.8.0",
+        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
+        "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+        "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+        "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
+        "@babel/plugin-syntax-optional-chaining": "^7.8.0",
+        "@babel/plugin-syntax-top-level-await": "^7.10.4",
+        "@babel/plugin-transform-arrow-functions": "^7.10.4",
+        "@babel/plugin-transform-async-to-generator": "^7.10.4",
+        "@babel/plugin-transform-block-scoped-functions": "^7.10.4",
+        "@babel/plugin-transform-block-scoping": "^7.10.4",
+        "@babel/plugin-transform-classes": "^7.10.4",
+        "@babel/plugin-transform-computed-properties": "^7.10.4",
+        "@babel/plugin-transform-destructuring": "^7.10.4",
+        "@babel/plugin-transform-dotall-regex": "^7.10.4",
+        "@babel/plugin-transform-duplicate-keys": "^7.10.4",
+        "@babel/plugin-transform-exponentiation-operator": "^7.10.4",
+        "@babel/plugin-transform-for-of": "^7.10.4",
+        "@babel/plugin-transform-function-name": "^7.10.4",
+        "@babel/plugin-transform-literals": "^7.10.4",
+        "@babel/plugin-transform-member-expression-literals": "^7.10.4",
+        "@babel/plugin-transform-modules-amd": "^7.10.4",
+        "@babel/plugin-transform-modules-commonjs": "^7.10.4",
+        "@babel/plugin-transform-modules-systemjs": "^7.10.4",
+        "@babel/plugin-transform-modules-umd": "^7.10.4",
+        "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4",
+        "@babel/plugin-transform-new-target": "^7.10.4",
+        "@babel/plugin-transform-object-super": "^7.10.4",
+        "@babel/plugin-transform-parameters": "^7.10.4",
+        "@babel/plugin-transform-property-literals": "^7.10.4",
+        "@babel/plugin-transform-regenerator": "^7.10.4",
+        "@babel/plugin-transform-reserved-words": "^7.10.4",
+        "@babel/plugin-transform-shorthand-properties": "^7.10.4",
+        "@babel/plugin-transform-spread": "^7.10.4",
+        "@babel/plugin-transform-sticky-regex": "^7.10.4",
+        "@babel/plugin-transform-template-literals": "^7.10.4",
+        "@babel/plugin-transform-typeof-symbol": "^7.10.4",
+        "@babel/plugin-transform-unicode-escapes": "^7.10.4",
+        "@babel/plugin-transform-unicode-regex": "^7.10.4",
+        "@babel/preset-modules": "^0.1.3",
+        "@babel/types": "^7.10.4",
+        "browserslist": "^4.12.0",
+        "core-js-compat": "^3.6.2",
+        "invariant": "^2.2.2",
+        "levenary": "^1.1.1",
+        "semver": "^5.5.0"
+      },
+      "dependencies": {
+        "@babel/helper-validator-identifier": {
+          "version": "7.10.4",
+          "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+          "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
+          "dev": true
+        },
+        "@babel/types": {
+          "version": "7.10.5",
+          "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz",
+          "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==",
+          "dev": true,
+          "requires": {
+            "@babel/helper-validator-identifier": "^7.10.4",
+            "lodash": "^4.17.19",
+            "to-fast-properties": "^2.0.0"
+          }
+        },
+        "lodash": {
+          "version": "4.17.19",
+          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+          "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+          "dev": true
+        }
+      }
+    },
+    "@babel/preset-modules": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz",
+      "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.0.0",
+        "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+        "@babel/plugin-transform-dotall-regex": "^7.4.4",
+        "@babel/types": "^7.4.4",
+        "esutils": "^2.0.2"
+      }
+    },
+    "@babel/runtime": {
+      "version": "7.10.5",
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz",
+      "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==",
+      "dev": true,
+      "requires": {
+        "regenerator-runtime": "^0.13.4"
+      }
+    },
+    "@babel/template": {
+      "version": "7.8.6",
+      "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
+      "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.8.3",
+        "@babel/parser": "^7.8.6",
+        "@babel/types": "^7.8.6"
+      }
+    },
+    "@babel/traverse": {
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz",
+      "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.8.3",
+        "@babel/generator": "^7.9.0",
+        "@babel/helper-function-name": "^7.8.3",
+        "@babel/helper-split-export-declaration": "^7.8.3",
+        "@babel/parser": "^7.9.0",
+        "@babel/types": "^7.9.0",
+        "debug": "^4.1.0",
+        "globals": "^11.1.0",
+        "lodash": "^4.17.13"
+      }
+    },
+    "@babel/types": {
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz",
+      "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-validator-identifier": "^7.9.0",
+        "lodash": "^4.17.13",
+        "to-fast-properties": "^2.0.0"
+      }
+    },
+    "@hapi/address": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
+      "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==",
+      "dev": true
+    },
+    "@hapi/bourne": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
+      "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==",
+      "dev": true
+    },
+    "@hapi/hoek": {
+      "version": "8.5.1",
+      "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz",
+      "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==",
+      "dev": true
+    },
+    "@hapi/joi": {
+      "version": "15.1.1",
+      "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
+      "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
+      "dev": true,
+      "requires": {
+        "@hapi/address": "2.x.x",
+        "@hapi/bourne": "1.x.x",
+        "@hapi/hoek": "8.x.x",
+        "@hapi/topo": "3.x.x"
+      }
+    },
+    "@hapi/topo": {
+      "version": "3.1.6",
+      "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
+      "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
+      "dev": true,
+      "requires": {
+        "@hapi/hoek": "^8.3.0"
+      }
+    },
+    "@intervolga/optimize-cssnano-plugin": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz",
+      "integrity": "sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==",
+      "dev": true,
+      "requires": {
+        "cssnano": "^4.0.0",
+        "cssnano-preset-default": "^4.0.0",
+        "postcss": "^7.0.0"
+      }
+    },
+    "@mdi/font": {
+      "version": "4.9.95",
+      "resolved": "https://registry.npmjs.org/@mdi/font/-/font-4.9.95.tgz",
+      "integrity": "sha512-m2sbAs+SMwRnWpkMriBxEulwuhmqRyh6X+hdOZlqSxYZUM2C2TaDnQ4gcilzdoAgru2XYnWViZ/xPuSDGgRXVw=="
+    },
+    "@mrmlnc/readdir-enhanced": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
+      "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
+      "dev": true,
+      "requires": {
+        "call-me-maybe": "^1.0.1",
+        "glob-to-regexp": "^0.3.0"
+      }
+    },
+    "@nodelib/fs.stat": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
+      "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
+      "dev": true
+    },
+    "@soda/friendly-errors-webpack-plugin": {
+      "version": "1.7.1",
+      "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.1.tgz",
+      "integrity": "sha512-cWKrGaFX+rfbMrAxVv56DzhPNqOJPZuNIS2HGMELtgGzb+vsMzyig9mml5gZ/hr2BGtSLV+dP2LUEuAL8aG2mQ==",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "error-stack-parser": "^2.0.0",
+        "string-width": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+          "dev": true
+        },
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "string-width": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+          "dev": true,
+          "requires": {
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^4.0.0"
+          },
+          "dependencies": {
+            "ansi-regex": {
+              "version": "3.0.0",
+              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+              "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+              "dev": true
+            },
+            "strip-ansi": {
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^3.0.0"
+              }
+            }
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        }
+      }
+    },
+    "@soda/get-current-script": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/@soda/get-current-script/-/get-current-script-1.0.2.tgz",
+      "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==",
+      "dev": true
+    },
+    "@types/color-name": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+      "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
+      "dev": true
+    },
+    "@types/glob": {
+      "version": "7.1.3",
+      "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
+      "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==",
+      "dev": true,
+      "requires": {
+        "@types/minimatch": "*",
+        "@types/node": "*"
+      }
+    },
+    "@types/json-schema": {
+      "version": "7.0.5",
+      "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz",
+      "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==",
+      "dev": true
+    },
+    "@types/minimatch": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
+      "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
+      "dev": true
+    },
+    "@types/node": {
+      "version": "14.0.24",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.24.tgz",
+      "integrity": "sha512-btt/oNOiDWcSuI721MdL8VQGnjsKjlTMdrKyTcLCKeQp/n4AAMFJ961wMbp+09y8WuGPClDEv07RIItdXKIXAA==",
+      "dev": true
+    },
+    "@types/normalize-package-data": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+      "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==",
+      "dev": true
+    },
+    "@types/q": {
+      "version": "1.5.4",
+      "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz",
+      "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==",
+      "dev": true
+    },
+    "@vue/babel-helper-vue-jsx-merge-props": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz",
+      "integrity": "sha512-6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw==",
+      "dev": true
+    },
+    "@vue/babel-plugin-transform-vue-jsx": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.1.2.tgz",
+      "integrity": "sha512-YfdaoSMvD1nj7+DsrwfTvTnhDXI7bsuh+Y5qWwvQXlD24uLgnsoww3qbiZvWf/EoviZMrvqkqN4CBw0W3BWUTQ==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-module-imports": "^7.0.0",
+        "@babel/plugin-syntax-jsx": "^7.2.0",
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
+        "html-tags": "^2.0.0",
+        "lodash.kebabcase": "^4.1.1",
+        "svg-tags": "^1.0.0"
+      }
+    },
+    "@vue/babel-preset-app": {
+      "version": "4.4.6",
+      "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.4.6.tgz",
+      "integrity": "sha512-urIa6Qk3lKacLvscrzxMNyYlTqKFcPAUo5MohOjv1ISZ9PssHw693WTOrqSC0XksdMLtp/rnLvc6l5G8Muk0lw==",
+      "dev": true,
+      "requires": {
+        "@babel/core": "^7.9.6",
+        "@babel/helper-compilation-targets": "^7.9.6",
+        "@babel/helper-module-imports": "^7.8.3",
+        "@babel/plugin-proposal-class-properties": "^7.8.3",
+        "@babel/plugin-proposal-decorators": "^7.8.3",
+        "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+        "@babel/plugin-syntax-jsx": "^7.8.3",
+        "@babel/plugin-transform-runtime": "^7.9.6",
+        "@babel/preset-env": "^7.9.6",
+        "@babel/runtime": "^7.9.6",
+        "@vue/babel-preset-jsx": "^1.1.2",
+        "babel-plugin-dynamic-import-node": "^2.3.3",
+        "core-js": "^3.6.5",
+        "core-js-compat": "^3.6.5",
+        "semver": "^6.1.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        }
+      }
+    },
+    "@vue/babel-preset-jsx": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.1.2.tgz",
+      "integrity": "sha512-zDpVnFpeC9YXmvGIDSsKNdL7qCG2rA3gjywLYHPCKDT10erjxF4U+6ay9X6TW5fl4GsDlJp9bVfAVQAAVzxxvQ==",
+      "dev": true,
+      "requires": {
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
+        "@vue/babel-plugin-transform-vue-jsx": "^1.1.2",
+        "@vue/babel-sugar-functional-vue": "^1.1.2",
+        "@vue/babel-sugar-inject-h": "^1.1.2",
+        "@vue/babel-sugar-v-model": "^1.1.2",
+        "@vue/babel-sugar-v-on": "^1.1.2"
+      }
+    },
+    "@vue/babel-sugar-functional-vue": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.1.2.tgz",
+      "integrity": "sha512-YhmdJQSVEFF5ETJXzrMpj0nkCXEa39TvVxJTuVjzvP2rgKhdMmQzlJuMv/HpadhZaRVMCCF3AEjjJcK5q/cYzQ==",
+      "dev": true,
+      "requires": {
+        "@babel/plugin-syntax-jsx": "^7.2.0"
+      }
+    },
+    "@vue/babel-sugar-inject-h": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.1.2.tgz",
+      "integrity": "sha512-VRSENdTvD5htpnVp7i7DNuChR5rVMcORdXjvv5HVvpdKHzDZAYiLSD+GhnhxLm3/dMuk8pSzV+k28ECkiN5m8w==",
+      "dev": true,
+      "requires": {
+        "@babel/plugin-syntax-jsx": "^7.2.0"
+      }
+    },
+    "@vue/babel-sugar-v-model": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.1.2.tgz",
+      "integrity": "sha512-vLXPvNq8vDtt0u9LqFdpGM9W9IWDmCmCyJXuozlq4F4UYVleXJ2Fa+3JsnTZNJcG+pLjjfnEGHci2339Kj5sGg==",
+      "dev": true,
+      "requires": {
+        "@babel/plugin-syntax-jsx": "^7.2.0",
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
+        "@vue/babel-plugin-transform-vue-jsx": "^1.1.2",
+        "camelcase": "^5.0.0",
+        "html-tags": "^2.0.0",
+        "svg-tags": "^1.0.0"
+      }
+    },
+    "@vue/babel-sugar-v-on": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.1.2.tgz",
+      "integrity": "sha512-T8ZCwC8Jp2uRtcZ88YwZtZXe7eQrJcfRq0uTFy6ShbwYJyz5qWskRFoVsdTi9o0WEhmQXxhQUewodOSCUPVmsQ==",
+      "dev": true,
+      "requires": {
+        "@babel/plugin-syntax-jsx": "^7.2.0",
+        "@vue/babel-plugin-transform-vue-jsx": "^1.1.2",
+        "camelcase": "^5.0.0"
+      }
+    },
+    "@vue/cli-overlay": {
+      "version": "4.4.6",
+      "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.4.6.tgz",
+      "integrity": "sha512-fzjg2gWQt+jw5fyLsD9HZNxGNQgZjLDI2s9bLWJwRucdfmncSi9neqA0TZyszGrgcJA4Qu4V5KgV0qwVSBYCaw==",
+      "dev": true
+    },
+    "@vue/cli-plugin-babel": {
+      "version": "4.3.1",
+      "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-4.3.1.tgz",
+      "integrity": "sha512-tBqu0v1l4LfWX8xuJmofpp+8xQzKddFNxdLmeVDOX/omDBQX0qaVDeMUtRxxSTazI06SKr605SnUQoa35qwbvw==",
+      "dev": true,
+      "requires": {
+        "@babel/core": "^7.9.0",
+        "@vue/babel-preset-app": "^4.3.1",
+        "@vue/cli-shared-utils": "^4.3.1",
+        "babel-loader": "^8.1.0",
+        "cache-loader": "^4.1.0",
+        "thread-loader": "^2.1.3",
+        "webpack": "^4.0.0"
+      }
+    },
+    "@vue/cli-plugin-eslint": {
+      "version": "4.3.1",
+      "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.3.1.tgz",
+      "integrity": "sha512-5UEP93b8C/JQs9Rnuldsu8jMz0XO4wNXG0lL/GdChYBEheKCyXJXzan7qzEbIuvUwG3I+qlUkGsiyNokIgXejg==",
+      "dev": true,
+      "requires": {
+        "@vue/cli-shared-utils": "^4.3.1",
+        "eslint-loader": "^2.2.1",
+        "globby": "^9.2.0",
+        "inquirer": "^7.1.0",
+        "webpack": "^4.0.0",
+        "yorkie": "^2.0.0"
+      }
+    },
+    "@vue/cli-plugin-router": {
+      "version": "4.4.6",
+      "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.4.6.tgz",
+      "integrity": "sha512-TkLdn0ZYo3zgn78Rk8doPlR+4UkGjGW2R1eGEaZEkue/mw2VhUWtTk9cKLZaYrw0eY8Ro/j+OV6mD+scyrairg==",
+      "dev": true,
+      "requires": {
+        "@vue/cli-shared-utils": "^4.4.6"
+      }
+    },
+    "@vue/cli-plugin-vuex": {
+      "version": "4.4.6",
+      "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.4.6.tgz",
+      "integrity": "sha512-Ho0YzUivn8BLPqFoFypntR8CMTEXYYHVr0GdnZW99XL+DbGw75f+tJfnrV9UFHDTfvZt7uewKiXDMlrzQ0l3Ug==",
+      "dev": true
+    },
+    "@vue/cli-service": {
+      "version": "4.3.1",
+      "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.3.1.tgz",
+      "integrity": "sha512-CsNGfHe+9oKZdRwJmweQ0KsMYM27ssg1eNQqRKL/t+IgDLO3Tu86uaOOCLn4ZAaU5oxxpq4aSFvz+A0YxQRSWw==",
+      "dev": true,
+      "requires": {
+        "@intervolga/optimize-cssnano-plugin": "^1.0.5",
+        "@soda/friendly-errors-webpack-plugin": "^1.7.1",
+        "@soda/get-current-script": "^1.0.0",
+        "@vue/cli-overlay": "^4.3.1",
+        "@vue/cli-plugin-router": "^4.3.1",
+        "@vue/cli-plugin-vuex": "^4.3.1",
+        "@vue/cli-shared-utils": "^4.3.1",
+        "@vue/component-compiler-utils": "^3.0.2",
+        "@vue/preload-webpack-plugin": "^1.1.0",
+        "@vue/web-component-wrapper": "^1.2.0",
+        "acorn": "^7.1.0",
+        "acorn-walk": "^7.1.1",
+        "address": "^1.1.2",
+        "autoprefixer": "^9.7.5",
+        "browserslist": "^4.11.1",
+        "cache-loader": "^4.1.0",
+        "case-sensitive-paths-webpack-plugin": "^2.3.0",
+        "cli-highlight": "^2.1.4",
+        "clipboardy": "^2.3.0",
+        "cliui": "^6.0.0",
+        "copy-webpack-plugin": "^5.1.1",
+        "css-loader": "^3.4.2",
+        "cssnano": "^4.1.10",
+        "debug": "^4.1.1",
+        "default-gateway": "^5.0.5",
+        "dotenv": "^8.2.0",
+        "dotenv-expand": "^5.1.0",
+        "file-loader": "^4.2.0",
+        "fs-extra": "^7.0.1",
+        "globby": "^9.2.0",
+        "hash-sum": "^2.0.0",
+        "html-webpack-plugin": "^3.2.0",
+        "launch-editor-middleware": "^2.2.1",
+        "lodash.defaultsdeep": "^4.6.1",
+        "lodash.mapvalues": "^4.6.0",
+        "lodash.transform": "^4.6.0",
+        "mini-css-extract-plugin": "^0.9.0",
+        "minimist": "^1.2.5",
+        "pnp-webpack-plugin": "^1.6.4",
+        "portfinder": "^1.0.25",
+        "postcss-loader": "^3.0.0",
+        "ssri": "^7.1.0",
+        "terser-webpack-plugin": "^2.3.5",
+        "thread-loader": "^2.1.3",
+        "url-loader": "^2.2.0",
+        "vue-loader": "^15.9.1",
+        "vue-style-loader": "^4.1.2",
+        "webpack": "^4.0.0",
+        "webpack-bundle-analyzer": "^3.6.1",
+        "webpack-chain": "^6.4.0",
+        "webpack-dev-server": "^3.10.3",
+        "webpack-merge": "^4.2.2"
+      },
+      "dependencies": {
+        "acorn": {
+          "version": "7.3.1",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
+          "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==",
+          "dev": true
+        },
+        "ajv": {
+          "version": "6.12.3",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+          "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^3.1.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "cacache": {
+          "version": "13.0.1",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz",
+          "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==",
+          "dev": true,
+          "requires": {
+            "chownr": "^1.1.2",
+            "figgy-pudding": "^3.5.1",
+            "fs-minipass": "^2.0.0",
+            "glob": "^7.1.4",
+            "graceful-fs": "^4.2.2",
+            "infer-owner": "^1.0.4",
+            "lru-cache": "^5.1.1",
+            "minipass": "^3.0.0",
+            "minipass-collect": "^1.0.2",
+            "minipass-flush": "^1.0.5",
+            "minipass-pipeline": "^1.2.2",
+            "mkdirp": "^0.5.1",
+            "move-concurrently": "^1.0.1",
+            "p-map": "^3.0.0",
+            "promise-inflight": "^1.0.1",
+            "rimraf": "^2.7.1",
+            "ssri": "^7.0.0",
+            "unique-filename": "^1.1.1"
+          }
+        },
+        "find-cache-dir": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
+          "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
+          "dev": true,
+          "requires": {
+            "commondir": "^1.0.1",
+            "make-dir": "^3.0.2",
+            "pkg-dir": "^4.1.0"
+          }
+        },
+        "find-up": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^4.1.0"
+          }
+        },
+        "make-dir": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+          "dev": true,
+          "requires": {
+            "semver": "^6.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.2.0"
+          }
+        },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "4.2.0",
+          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+          "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+          "dev": true,
+          "requires": {
+            "find-up": "^4.0.0"
+          }
+        },
+        "schema-utils": {
+          "version": "2.7.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
+          "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
+          "dev": true,
+          "requires": {
+            "@types/json-schema": "^7.0.4",
+            "ajv": "^6.12.2",
+            "ajv-keywords": "^3.4.1"
+          }
+        },
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        },
+        "ssri": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz",
+          "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==",
+          "dev": true,
+          "requires": {
+            "figgy-pudding": "^3.5.1",
+            "minipass": "^3.1.1"
+          }
+        },
+        "terser-webpack-plugin": {
+          "version": "2.3.7",
+          "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.7.tgz",
+          "integrity": "sha512-xzYyaHUNhzgaAdBsXxk2Yvo/x1NJdslUaussK3fdpBbvttm1iIwU+c26dj9UxJcwk2c5UWt5F55MUTIA8BE7Dg==",
+          "dev": true,
+          "requires": {
+            "cacache": "^13.0.1",
+            "find-cache-dir": "^3.3.1",
+            "jest-worker": "^25.4.0",
+            "p-limit": "^2.3.0",
+            "schema-utils": "^2.6.6",
+            "serialize-javascript": "^3.1.0",
+            "source-map": "^0.6.1",
+            "terser": "^4.6.12",
+            "webpack-sources": "^1.4.3"
+          }
+        }
+      }
+    },
+    "@vue/cli-shared-utils": {
+      "version": "4.4.6",
+      "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.6.tgz",
+      "integrity": "sha512-ba+FZZCjiTSu2otnLjY4qXqASe7ZIQ/QBljk5oRPgqrR0p1NUkDPUcZhqa041aOaSW1yAfSfhOD7Q84nMnWhzQ==",
+      "dev": true,
+      "requires": {
+        "@hapi/joi": "^15.0.1",
+        "chalk": "^2.4.2",
+        "execa": "^1.0.0",
+        "launch-editor": "^2.2.1",
+        "lru-cache": "^5.1.1",
+        "node-ipc": "^9.1.1",
+        "open": "^6.3.0",
+        "ora": "^3.4.0",
+        "read-pkg": "^5.1.1",
+        "request": "^2.88.2",
+        "semver": "^6.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        }
+      }
+    },
+    "@vue/component-compiler-utils": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.1.2.tgz",
+      "integrity": "sha512-QLq9z8m79mCinpaEeSURhnNCN6djxpHw0lpP/bodMlt5kALfONpryMthvnrQOlTcIKoF+VoPi+lPHUYeDFPXug==",
+      "dev": true,
+      "requires": {
+        "consolidate": "^0.15.1",
+        "hash-sum": "^1.0.2",
+        "lru-cache": "^4.1.2",
+        "merge-source-map": "^1.1.0",
+        "postcss": "^7.0.14",
+        "postcss-selector-parser": "^6.0.2",
+        "prettier": "^1.18.2",
+        "source-map": "~0.6.1",
+        "vue-template-es2015-compiler": "^1.9.0"
+      },
+      "dependencies": {
+        "hash-sum": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+          "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
+          "dev": true
+        },
+        "lru-cache": {
+          "version": "4.1.5",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+          "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+          "dev": true,
+          "requires": {
+            "pseudomap": "^1.0.2",
+            "yallist": "^2.1.2"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        },
+        "yallist": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+          "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+          "dev": true
+        }
+      }
+    },
+    "@vue/preload-webpack-plugin": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.1.tgz",
+      "integrity": "sha512-8VCoJeeH8tCkzhkpfOkt+abALQkS11OIHhte5MBzYaKMTqK0A3ZAKEUVAffsOklhEv7t0yrQt696Opnu9oAx+w==",
+      "dev": true
+    },
+    "@vue/web-component-wrapper": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz",
+      "integrity": "sha512-Xn/+vdm9CjuC9p3Ae+lTClNutrVhsXpzxvoTXXtoys6kVRX9FkueSUAqSWAyZntmVLlR4DosBV4pH8y5Z/HbUw==",
+      "dev": true
+    },
+    "@webassemblyjs/ast": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
+      "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/helper-module-context": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/wast-parser": "1.9.0"
+      }
+    },
+    "@webassemblyjs/floating-point-hex-parser": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
+      "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-api-error": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
+      "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-buffer": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
+      "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-code-frame": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
+      "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/wast-printer": "1.9.0"
+      }
+    },
+    "@webassemblyjs/helper-fsm": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
+      "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-module-context": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
+      "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0"
+      }
+    },
+    "@webassemblyjs/helper-wasm-bytecode": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
+      "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==",
+      "dev": true
+    },
+    "@webassemblyjs/helper-wasm-section": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
+      "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-buffer": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/wasm-gen": "1.9.0"
+      }
+    },
+    "@webassemblyjs/ieee754": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
+      "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
+      "dev": true,
+      "requires": {
+        "@xtuc/ieee754": "^1.2.0"
+      }
+    },
+    "@webassemblyjs/leb128": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
+      "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
+      "dev": true,
+      "requires": {
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "@webassemblyjs/utf8": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
+      "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==",
+      "dev": true
+    },
+    "@webassemblyjs/wasm-edit": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
+      "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-buffer": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/helper-wasm-section": "1.9.0",
+        "@webassemblyjs/wasm-gen": "1.9.0",
+        "@webassemblyjs/wasm-opt": "1.9.0",
+        "@webassemblyjs/wasm-parser": "1.9.0",
+        "@webassemblyjs/wast-printer": "1.9.0"
+      }
+    },
+    "@webassemblyjs/wasm-gen": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
+      "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/ieee754": "1.9.0",
+        "@webassemblyjs/leb128": "1.9.0",
+        "@webassemblyjs/utf8": "1.9.0"
+      }
+    },
+    "@webassemblyjs/wasm-opt": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
+      "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-buffer": "1.9.0",
+        "@webassemblyjs/wasm-gen": "1.9.0",
+        "@webassemblyjs/wasm-parser": "1.9.0"
+      }
+    },
+    "@webassemblyjs/wasm-parser": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
+      "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-api-error": "1.9.0",
+        "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+        "@webassemblyjs/ieee754": "1.9.0",
+        "@webassemblyjs/leb128": "1.9.0",
+        "@webassemblyjs/utf8": "1.9.0"
+      }
+    },
+    "@webassemblyjs/wast-parser": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
+      "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+        "@webassemblyjs/helper-api-error": "1.9.0",
+        "@webassemblyjs/helper-code-frame": "1.9.0",
+        "@webassemblyjs/helper-fsm": "1.9.0",
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "@webassemblyjs/wast-printer": {
+      "version": "1.9.0",
+      "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
+      "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/wast-parser": "1.9.0",
+        "@xtuc/long": "4.2.2"
+      }
+    },
+    "@xtuc/ieee754": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+      "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+      "dev": true
+    },
+    "@xtuc/long": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+      "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+      "dev": true
+    },
+    "accepts": {
+      "version": "1.3.7",
+      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+      "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+      "dev": true,
+      "requires": {
+        "mime-types": "~2.1.24",
+        "negotiator": "0.6.2"
+      }
+    },
+    "acorn": {
+      "version": "6.4.1",
+      "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
+      "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
+      "dev": true
+    },
+    "acorn-jsx": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
+      "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
+      "dev": true
+    },
+    "acorn-walk": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+      "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
+      "dev": true
+    },
+    "address": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz",
+      "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==",
+      "dev": true
+    },
+    "aggregate-error": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz",
+      "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==",
+      "dev": true,
+      "requires": {
+        "clean-stack": "^2.0.0",
+        "indent-string": "^4.0.0"
+      }
+    },
+    "ajv": {
+      "version": "6.12.0",
+      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+      "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+      "dev": true,
+      "requires": {
+        "fast-deep-equal": "^3.1.1",
+        "fast-json-stable-stringify": "^2.0.0",
+        "json-schema-traverse": "^0.4.1",
+        "uri-js": "^4.2.2"
+      }
+    },
+    "ajv-errors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+      "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+      "dev": true
+    },
+    "ajv-keywords": {
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
+      "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==",
+      "dev": true
+    },
+    "alphanum-sort": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+      "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+      "dev": true
+    },
+    "ansi-colors": {
+      "version": "3.2.4",
+      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+      "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+      "dev": true
+    },
+    "ansi-escapes": {
+      "version": "4.3.1",
+      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
+      "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
+      "dev": true,
+      "requires": {
+        "type-fest": "^0.11.0"
+      },
+      "dependencies": {
+        "type-fest": {
+          "version": "0.11.0",
+          "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+          "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+          "dev": true
+        }
+      }
+    },
+    "ansi-html": {
+      "version": "0.0.7",
+      "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+      "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+      "dev": true
+    },
+    "ansi-regex": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+      "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+      "dev": true
+    },
+    "ansi-styles": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+      "dev": true,
+      "requires": {
+        "color-convert": "^1.9.0"
+      }
+    },
+    "any-promise": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+      "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=",
+      "dev": true
+    },
+    "anymatch": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+      "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+      "dev": true,
+      "requires": {
+        "normalize-path": "^3.0.0",
+        "picomatch": "^2.0.4"
+      }
+    },
+    "aproba": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+      "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+      "dev": true
+    },
+    "arch": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.2.tgz",
+      "integrity": "sha512-NTBIIbAfkJeIletyABbVtdPgeKfDafR+1mZV/AyyfC1UkVkp9iUjV+wwmqtUgphHYajbI86jejBJp5e+jkGTiQ==",
+      "dev": true
+    },
+    "argparse": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+      "dev": true,
+      "requires": {
+        "sprintf-js": "~1.0.2"
+      }
+    },
+    "arr-diff": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+      "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+      "dev": true
+    },
+    "arr-flatten": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+      "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+      "dev": true
+    },
+    "arr-union": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+      "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+      "dev": true
+    },
+    "array-flatten": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+      "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+      "dev": true
+    },
+    "array-union": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+      "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+      "dev": true,
+      "requires": {
+        "array-uniq": "^1.0.1"
+      }
+    },
+    "array-uniq": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+      "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+      "dev": true
+    },
+    "array-unique": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+      "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+      "dev": true
+    },
+    "asn1": {
+      "version": "0.2.4",
+      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+      "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+      "dev": true,
+      "requires": {
+        "safer-buffer": "~2.1.0"
+      }
+    },
+    "asn1.js": {
+      "version": "4.10.1",
+      "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+      "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
+      }
+    },
+    "assert": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+      "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+      "dev": true,
+      "requires": {
+        "object-assign": "^4.1.1",
+        "util": "0.10.3"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+          "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+          "dev": true
+        },
+        "util": {
+          "version": "0.10.3",
+          "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+          "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+          "dev": true,
+          "requires": {
+            "inherits": "2.0.1"
+          }
+        }
+      }
+    },
+    "assert-plus": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+      "dev": true
+    },
+    "assign-symbols": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+      "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+      "dev": true
+    },
+    "astral-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+      "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+      "dev": true
+    },
+    "async": {
+      "version": "2.6.3",
+      "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+      "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.14"
+      }
+    },
+    "async-each": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+      "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+      "dev": true
+    },
+    "async-limiter": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+      "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+      "dev": true
+    },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+      "dev": true
+    },
+    "atob": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+      "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+      "dev": true
+    },
+    "autoprefixer": {
+      "version": "9.8.5",
+      "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.5.tgz",
+      "integrity": "sha512-C2p5KkumJlsTHoNv9w31NrBRgXhf6eCMteJuHZi2xhkgC+5Vm40MEtCKPhc0qdgAOhox0YPy1SQHTAky05UoKg==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.12.0",
+        "caniuse-lite": "^1.0.30001097",
+        "colorette": "^1.2.0",
+        "normalize-range": "^0.1.2",
+        "num2fraction": "^1.2.2",
+        "postcss": "^7.0.32",
+        "postcss-value-parser": "^4.1.0"
+      }
+    },
+    "aws-sign2": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+      "dev": true
+    },
+    "aws4": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
+      "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==",
+      "dev": true
+    },
+    "babel-eslint": {
+      "version": "10.1.0",
+      "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
+      "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.0.0",
+        "@babel/parser": "^7.7.0",
+        "@babel/traverse": "^7.7.0",
+        "@babel/types": "^7.7.0",
+        "eslint-visitor-keys": "^1.0.0",
+        "resolve": "^1.12.0"
+      }
+    },
+    "babel-loader": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz",
+      "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==",
+      "dev": true,
+      "requires": {
+        "find-cache-dir": "^2.1.0",
+        "loader-utils": "^1.4.0",
+        "mkdirp": "^0.5.3",
+        "pify": "^4.0.1",
+        "schema-utils": "^2.6.5"
+      }
+    },
+    "babel-plugin-dynamic-import-node": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+      "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
+      "dev": true,
+      "requires": {
+        "object.assign": "^4.1.0"
+      }
+    },
+    "balanced-match": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+      "dev": true
+    },
+    "base": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+      "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+      "dev": true,
+      "requires": {
+        "cache-base": "^1.0.1",
+        "class-utils": "^0.3.5",
+        "component-emitter": "^1.2.1",
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.1",
+        "mixin-deep": "^1.2.0",
+        "pascalcase": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "base64-js": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+      "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
+      "dev": true
+    },
+    "batch": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+      "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=",
+      "dev": true
+    },
+    "bcrypt-pbkdf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+      "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+      "dev": true,
+      "requires": {
+        "tweetnacl": "^0.14.3"
+      }
+    },
+    "bfj": {
+      "version": "6.1.2",
+      "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz",
+      "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.5",
+        "check-types": "^8.0.3",
+        "hoopy": "^0.1.4",
+        "tryer": "^1.0.1"
+      }
+    },
+    "big.js": {
+      "version": "5.2.2",
+      "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+      "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+      "dev": true
+    },
+    "binary-extensions": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
+      "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+      "dev": true
+    },
+    "bluebird": {
+      "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": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz",
+      "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==",
+      "dev": true
+    },
+    "body-parser": {
+      "version": "1.19.0",
+      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+      "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+      "dev": true,
+      "requires": {
+        "bytes": "3.1.0",
+        "content-type": "~1.0.4",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "http-errors": "1.7.2",
+        "iconv-lite": "0.4.24",
+        "on-finished": "~2.3.0",
+        "qs": "6.7.0",
+        "raw-body": "2.4.0",
+        "type-is": "~1.6.17"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        },
+        "qs": {
+          "version": "6.7.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+          "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+          "dev": true
+        }
+      }
+    },
+    "bonjour": {
+      "version": "3.5.0",
+      "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+      "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+      "dev": true,
+      "requires": {
+        "array-flatten": "^2.1.0",
+        "deep-equal": "^1.0.1",
+        "dns-equal": "^1.0.0",
+        "dns-txt": "^2.0.2",
+        "multicast-dns": "^6.0.1",
+        "multicast-dns-service-types": "^1.1.0"
+      },
+      "dependencies": {
+        "array-flatten": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
+          "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
+          "dev": true
+        }
+      }
+    },
+    "boolbase": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+      "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+      "dev": true
+    },
+    "brace-expansion": {
+      "version": "1.1.11",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+      "dev": true,
+      "requires": {
+        "balanced-match": "^1.0.0",
+        "concat-map": "0.0.1"
+      }
+    },
+    "braces": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+      "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+      "dev": true,
+      "requires": {
+        "arr-flatten": "^1.1.0",
+        "array-unique": "^0.3.2",
+        "extend-shallow": "^2.0.1",
+        "fill-range": "^4.0.0",
+        "isobject": "^3.0.1",
+        "repeat-element": "^1.1.2",
+        "snapdragon": "^0.8.1",
+        "snapdragon-node": "^2.0.1",
+        "split-string": "^3.0.2",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "brorand": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+      "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+      "dev": true
+    },
+    "browserify-aes": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+      "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+      "dev": true,
+      "requires": {
+        "buffer-xor": "^1.0.3",
+        "cipher-base": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.3",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "browserify-cipher": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+      "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+      "dev": true,
+      "requires": {
+        "browserify-aes": "^1.0.4",
+        "browserify-des": "^1.0.0",
+        "evp_bytestokey": "^1.0.0"
+      }
+    },
+    "browserify-des": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+      "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "des.js": "^1.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "browserify-rsa": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+      "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "randombytes": "^2.0.1"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
+      }
+    },
+    "browserify-sign": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz",
+      "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^5.1.1",
+        "browserify-rsa": "^4.0.1",
+        "create-hash": "^1.2.0",
+        "create-hmac": "^1.1.7",
+        "elliptic": "^6.5.2",
+        "inherits": "^2.0.4",
+        "parse-asn1": "^5.1.5",
+        "readable-stream": "^3.6.0",
+        "safe-buffer": "^5.2.0"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.2.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+          "dev": true
+        }
+      }
+    },
+    "browserify-zlib": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+      "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+      "dev": true,
+      "requires": {
+        "pako": "~1.0.5"
+      }
+    },
+    "browserslist": {
+      "version": "4.13.0",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz",
+      "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==",
+      "dev": true,
+      "requires": {
+        "caniuse-lite": "^1.0.30001093",
+        "electron-to-chromium": "^1.3.488",
+        "escalade": "^3.0.1",
+        "node-releases": "^1.1.58"
+      }
+    },
+    "buffer": {
+      "version": "4.9.2",
+      "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+      "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+      "dev": true,
+      "requires": {
+        "base64-js": "^1.0.2",
+        "ieee754": "^1.1.4",
+        "isarray": "^1.0.0"
+      }
+    },
+    "buffer-from": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+      "dev": true
+    },
+    "buffer-indexof": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+      "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
+      "dev": true
+    },
+    "buffer-json": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz",
+      "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==",
+      "dev": true
+    },
+    "buffer-xor": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+      "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+      "dev": true
+    },
+    "builtin-status-codes": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+      "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+      "dev": true
+    },
+    "bytes": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+      "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+      "dev": true
+    },
+    "cacache": {
+      "version": "12.0.4",
+      "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+      "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.5.5",
+        "chownr": "^1.1.1",
+        "figgy-pudding": "^3.5.1",
+        "glob": "^7.1.4",
+        "graceful-fs": "^4.1.15",
+        "infer-owner": "^1.0.3",
+        "lru-cache": "^5.1.1",
+        "mississippi": "^3.0.0",
+        "mkdirp": "^0.5.1",
+        "move-concurrently": "^1.0.1",
+        "promise-inflight": "^1.0.1",
+        "rimraf": "^2.6.3",
+        "ssri": "^6.0.1",
+        "unique-filename": "^1.1.1",
+        "y18n": "^4.0.0"
+      }
+    },
+    "cache-base": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+      "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+      "dev": true,
+      "requires": {
+        "collection-visit": "^1.0.0",
+        "component-emitter": "^1.2.1",
+        "get-value": "^2.0.6",
+        "has-value": "^1.0.0",
+        "isobject": "^3.0.1",
+        "set-value": "^2.0.0",
+        "to-object-path": "^0.3.0",
+        "union-value": "^1.0.0",
+        "unset-value": "^1.0.0"
+      }
+    },
+    "cache-loader": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-4.1.0.tgz",
+      "integrity": "sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==",
+      "dev": true,
+      "requires": {
+        "buffer-json": "^2.0.0",
+        "find-cache-dir": "^3.0.0",
+        "loader-utils": "^1.2.3",
+        "mkdirp": "^0.5.1",
+        "neo-async": "^2.6.1",
+        "schema-utils": "^2.0.0"
+      },
+      "dependencies": {
+        "find-cache-dir": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz",
+          "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==",
+          "dev": true,
+          "requires": {
+            "commondir": "^1.0.1",
+            "make-dir": "^3.0.2",
+            "pkg-dir": "^4.1.0"
+          }
+        },
+        "find-up": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^4.1.0"
+          }
+        },
+        "make-dir": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+          "dev": true,
+          "requires": {
+            "semver": "^6.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.2.0"
+          }
+        },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+          "dev": true
+        },
+        "pkg-dir": {
+          "version": "4.2.0",
+          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+          "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+          "dev": true,
+          "requires": {
+            "find-up": "^4.0.0"
+          }
+        },
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        }
+      }
+    },
+    "call-me-maybe": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
+      "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
+      "dev": true
+    },
+    "caller-callsite": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+      "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
+      "dev": true,
+      "requires": {
+        "callsites": "^2.0.0"
+      }
+    },
+    "caller-path": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+      "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
+      "dev": true,
+      "requires": {
+        "caller-callsite": "^2.0.0"
+      }
+    },
+    "callsites": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+      "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
+      "dev": true
+    },
+    "camel-case": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+      "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+      "dev": true,
+      "requires": {
+        "no-case": "^2.2.0",
+        "upper-case": "^1.1.1"
+      }
+    },
+    "camelcase": {
+      "version": "5.3.1",
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+      "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+      "dev": true
+    },
+    "caniuse-api": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+      "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "caniuse-lite": "^1.0.0",
+        "lodash.memoize": "^4.1.2",
+        "lodash.uniq": "^4.5.0"
+      }
+    },
+    "caniuse-lite": {
+      "version": "1.0.30001104",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001104.tgz",
+      "integrity": "sha512-pkpCg7dmI/a7WcqM2yfdOiT4Xx5tzyoHAXWsX5/HxZ3TemwDZs0QXdqbE0UPLPVy/7BeK7693YfzfRYfu1YVpg==",
+      "dev": true
+    },
+    "case-sensitive-paths-webpack-plugin": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz",
+      "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==",
+      "dev": true
+    },
+    "caseless": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+      "dev": true
+    },
+    "chalk": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^3.2.1",
+        "escape-string-regexp": "^1.0.5",
+        "supports-color": "^5.3.0"
+      }
+    },
+    "chardet": {
+      "version": "0.7.0",
+      "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+      "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+      "dev": true
+    },
+    "check-types": {
+      "version": "8.0.3",
+      "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz",
+      "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==",
+      "dev": true
+    },
+    "chokidar": {
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz",
+      "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==",
+      "dev": true,
+      "requires": {
+        "anymatch": "~3.1.1",
+        "braces": "~3.0.2",
+        "fsevents": "~2.1.2",
+        "glob-parent": "~5.1.0",
+        "is-binary-path": "~2.1.0",
+        "is-glob": "~4.0.1",
+        "normalize-path": "~3.0.0",
+        "readdirp": "~3.4.0"
+      },
+      "dependencies": {
+        "braces": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+          "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+          "dev": true,
+          "requires": {
+            "fill-range": "^7.0.1"
+          }
+        },
+        "fill-range": {
+          "version": "7.0.1",
+          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+          "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+          "dev": true,
+          "requires": {
+            "to-regex-range": "^5.0.1"
+          }
+        },
+        "is-number": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+          "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+          "dev": true
+        },
+        "to-regex-range": {
+          "version": "5.0.1",
+          "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+          "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+          "dev": true,
+          "requires": {
+            "is-number": "^7.0.0"
+          }
+        }
+      }
+    },
+    "chownr": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+      "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+      "dev": true
+    },
+    "chrome-trace-event": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz",
+      "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
+      "dev": true,
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "ci-info": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
+      "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
+      "dev": true
+    },
+    "cipher-base": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+      "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "class-utils": {
+      "version": "0.3.6",
+      "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+      "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+      "dev": true,
+      "requires": {
+        "arr-union": "^3.1.0",
+        "define-property": "^0.2.5",
+        "isobject": "^3.0.0",
+        "static-extend": "^0.1.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "clean-css": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
+      "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==",
+      "dev": true,
+      "requires": {
+        "source-map": "~0.6.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "clean-stack": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+      "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+      "dev": true
+    },
+    "cli-cursor": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+      "dev": true,
+      "requires": {
+        "restore-cursor": "^2.0.0"
+      }
+    },
+    "cli-highlight": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.4.tgz",
+      "integrity": "sha512-s7Zofobm20qriqDoU9sXptQx0t2R9PEgac92mENNm7xaEe1hn71IIMsXMK+6encA6WRCWWxIGQbipr3q998tlQ==",
+      "dev": true,
+      "requires": {
+        "chalk": "^3.0.0",
+        "highlight.js": "^9.6.0",
+        "mz": "^2.4.0",
+        "parse5": "^5.1.1",
+        "parse5-htmlparser2-tree-adapter": "^5.1.1",
+        "yargs": "^15.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+          "dev": true,
+          "requires": {
+            "@types/color-name": "^1.1.1",
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
+    "cli-spinners": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz",
+      "integrity": "sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==",
+      "dev": true
+    },
+    "cli-width": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+      "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+      "dev": true
+    },
+    "clipboardy": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz",
+      "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==",
+      "dev": true,
+      "requires": {
+        "arch": "^2.1.1",
+        "execa": "^1.0.0",
+        "is-wsl": "^2.1.1"
+      },
+      "dependencies": {
+        "is-wsl": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+          "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+          "dev": true,
+          "requires": {
+            "is-docker": "^2.0.0"
+          }
+        }
+      }
+    },
+    "cliui": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+      "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+      "dev": true,
+      "requires": {
+        "string-width": "^4.2.0",
+        "strip-ansi": "^6.0.0",
+        "wrap-ansi": "^6.2.0"
+      }
+    },
+    "clone": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+      "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+      "dev": true
+    },
+    "clone-deep": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+      "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+      "dev": true,
+      "requires": {
+        "is-plain-object": "^2.0.4",
+        "kind-of": "^6.0.2",
+        "shallow-clone": "^3.0.0"
+      }
+    },
+    "coa": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
+      "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==",
+      "dev": true,
+      "requires": {
+        "@types/q": "^1.5.1",
+        "chalk": "^2.4.1",
+        "q": "^1.1.2"
+      }
+    },
+    "collection-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+      "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+      "dev": true,
+      "requires": {
+        "map-visit": "^1.0.0",
+        "object-visit": "^1.0.0"
+      }
+    },
+    "color": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz",
+      "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==",
+      "dev": true,
+      "requires": {
+        "color-convert": "^1.9.1",
+        "color-string": "^1.5.2"
+      }
+    },
+    "color-convert": {
+      "version": "1.9.3",
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+      "dev": true,
+      "requires": {
+        "color-name": "1.1.3"
+      }
+    },
+    "color-name": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+      "dev": true
+    },
+    "color-string": {
+      "version": "1.5.3",
+      "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
+      "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
+      "dev": true,
+      "requires": {
+        "color-name": "^1.0.0",
+        "simple-swizzle": "^0.2.2"
+      }
+    },
+    "colorette": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz",
+      "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==",
+      "dev": true
+    },
+    "combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+      "dev": true,
+      "requires": {
+        "delayed-stream": "~1.0.0"
+      }
+    },
+    "commander": {
+      "version": "2.20.3",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+      "dev": true
+    },
+    "commondir": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+      "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+      "dev": true
+    },
+    "component-emitter": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+      "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+      "dev": true
+    },
+    "compressible": {
+      "version": "2.0.18",
+      "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+      "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+      "dev": true,
+      "requires": {
+        "mime-db": ">= 1.43.0 < 2"
+      }
+    },
+    "compression": {
+      "version": "1.7.4",
+      "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
+      "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.5",
+        "bytes": "3.0.0",
+        "compressible": "~2.0.16",
+        "debug": "2.6.9",
+        "on-headers": "~1.0.2",
+        "safe-buffer": "5.1.2",
+        "vary": "~1.1.2"
+      },
+      "dependencies": {
+        "bytes": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+          "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+          "dev": true
+        },
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "concat-map": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+      "dev": true
+    },
+    "concat-stream": {
+      "version": "1.6.2",
+      "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+      "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+      "dev": true,
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.2.2",
+        "typedarray": "^0.0.6"
+      }
+    },
+    "connect-history-api-fallback": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
+      "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
+      "dev": true
+    },
+    "console-browserify": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+      "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
+      "dev": true
+    },
+    "consolidate": {
+      "version": "0.15.1",
+      "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz",
+      "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==",
+      "dev": true,
+      "requires": {
+        "bluebird": "^3.1.1"
+      }
+    },
+    "constants-browserify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+      "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+      "dev": true
+    },
+    "content-disposition": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+      "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "5.1.2"
+      }
+    },
+    "content-type": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+      "dev": true
+    },
+    "convert-source-map": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+      "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "~5.1.1"
+      }
+    },
+    "cookie": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+      "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+      "dev": true
+    },
+    "cookie-signature": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+      "dev": true
+    },
+    "copy-concurrently": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+      "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1",
+        "fs-write-stream-atomic": "^1.0.8",
+        "iferr": "^0.1.5",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.0"
+      }
+    },
+    "copy-descriptor": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+      "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+      "dev": true
+    },
+    "copy-webpack-plugin": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz",
+      "integrity": "sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==",
+      "dev": true,
+      "requires": {
+        "cacache": "^12.0.3",
+        "find-cache-dir": "^2.1.0",
+        "glob-parent": "^3.1.0",
+        "globby": "^7.1.1",
+        "is-glob": "^4.0.1",
+        "loader-utils": "^1.2.3",
+        "minimatch": "^3.0.4",
+        "normalize-path": "^3.0.0",
+        "p-limit": "^2.2.1",
+        "schema-utils": "^1.0.0",
+        "serialize-javascript": "^2.1.2",
+        "webpack-log": "^2.0.0"
+      },
+      "dependencies": {
+        "glob-parent": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+          "dev": true,
+          "requires": {
+            "is-glob": "^3.1.0",
+            "path-dirname": "^1.0.0"
+          },
+          "dependencies": {
+            "is-glob": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+              "dev": true,
+              "requires": {
+                "is-extglob": "^2.1.0"
+              }
+            }
+          }
+        },
+        "globby": {
+          "version": "7.1.1",
+          "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+          "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+          "dev": true,
+          "requires": {
+            "array-union": "^1.0.1",
+            "dir-glob": "^2.0.0",
+            "glob": "^7.1.2",
+            "ignore": "^3.3.5",
+            "pify": "^3.0.0",
+            "slash": "^1.0.0"
+          }
+        },
+        "ignore": {
+          "version": "3.3.10",
+          "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+          "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+          "dev": true
+        },
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
+        "serialize-javascript": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz",
+          "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==",
+          "dev": true
+        },
+        "slash": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+          "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+          "dev": true
+        }
+      }
+    },
+    "core-js": {
+      "version": "3.6.5",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
+      "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA=="
+    },
+    "core-js-compat": {
+      "version": "3.6.5",
+      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz",
+      "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.8.5",
+        "semver": "7.0.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "7.0.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+          "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+          "dev": true
+        }
+      }
+    },
+    "core-util-is": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+      "dev": true
+    },
+    "cosmiconfig": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+      "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+      "dev": true,
+      "requires": {
+        "import-fresh": "^2.0.0",
+        "is-directory": "^0.3.1",
+        "js-yaml": "^3.13.1",
+        "parse-json": "^4.0.0"
+      },
+      "dependencies": {
+        "parse-json": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+          "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+          "dev": true,
+          "requires": {
+            "error-ex": "^1.3.1",
+            "json-parse-better-errors": "^1.0.1"
+          }
+        }
+      }
+    },
+    "create-ecdh": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+      "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "elliptic": "^6.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
+      }
+    },
+    "create-hash": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+      "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.1",
+        "inherits": "^2.0.1",
+        "md5.js": "^1.3.4",
+        "ripemd160": "^2.0.1",
+        "sha.js": "^2.4.0"
+      }
+    },
+    "create-hmac": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+      "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+      "dev": true,
+      "requires": {
+        "cipher-base": "^1.0.3",
+        "create-hash": "^1.1.0",
+        "inherits": "^2.0.1",
+        "ripemd160": "^2.0.0",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "cross-spawn": {
+      "version": "6.0.5",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+      "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+      "dev": true,
+      "requires": {
+        "nice-try": "^1.0.4",
+        "path-key": "^2.0.1",
+        "semver": "^5.5.0",
+        "shebang-command": "^1.2.0",
+        "which": "^1.2.9"
+      }
+    },
+    "crypto-browserify": {
+      "version": "3.12.0",
+      "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+      "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+      "dev": true,
+      "requires": {
+        "browserify-cipher": "^1.0.0",
+        "browserify-sign": "^4.0.0",
+        "create-ecdh": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "create-hmac": "^1.1.0",
+        "diffie-hellman": "^5.0.0",
+        "inherits": "^2.0.1",
+        "pbkdf2": "^3.0.3",
+        "public-encrypt": "^4.0.0",
+        "randombytes": "^2.0.0",
+        "randomfill": "^1.0.3"
+      }
+    },
+    "css-color-names": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+      "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+      "dev": true
+    },
+    "css-declaration-sorter": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
+      "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.1",
+        "timsort": "^0.3.0"
+      }
+    },
+    "css-loader": {
+      "version": "3.6.0",
+      "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz",
+      "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==",
+      "dev": true,
+      "requires": {
+        "camelcase": "^5.3.1",
+        "cssesc": "^3.0.0",
+        "icss-utils": "^4.1.1",
+        "loader-utils": "^1.2.3",
+        "normalize-path": "^3.0.0",
+        "postcss": "^7.0.32",
+        "postcss-modules-extract-imports": "^2.0.0",
+        "postcss-modules-local-by-default": "^3.0.2",
+        "postcss-modules-scope": "^2.2.0",
+        "postcss-modules-values": "^3.0.0",
+        "postcss-value-parser": "^4.1.0",
+        "schema-utils": "^2.7.0",
+        "semver": "^6.3.0"
+      },
+      "dependencies": {
+        "ajv": {
+          "version": "6.12.3",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+          "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
+          "dev": true,
+          "requires": {
+            "fast-deep-equal": "^3.1.1",
+            "fast-json-stable-stringify": "^2.0.0",
+            "json-schema-traverse": "^0.4.1",
+            "uri-js": "^4.2.2"
+          }
+        },
+        "schema-utils": {
+          "version": "2.7.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
+          "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
+          "dev": true,
+          "requires": {
+            "@types/json-schema": "^7.0.4",
+            "ajv": "^6.12.2",
+            "ajv-keywords": "^3.4.1"
+          }
+        },
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        }
+      }
+    },
+    "css-select": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+      "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+      "dev": true,
+      "requires": {
+        "boolbase": "^1.0.0",
+        "css-what": "^3.2.1",
+        "domutils": "^1.7.0",
+        "nth-check": "^1.0.2"
+      }
+    },
+    "css-select-base-adapter": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
+      "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==",
+      "dev": true
+    },
+    "css-tree": {
+      "version": "1.0.0-alpha.37",
+      "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
+      "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==",
+      "dev": true,
+      "requires": {
+        "mdn-data": "2.0.4",
+        "source-map": "^0.6.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "css-what": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz",
+      "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==",
+      "dev": true
+    },
+    "cssesc": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+      "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+      "dev": true
+    },
+    "cssnano": {
+      "version": "4.1.10",
+      "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz",
+      "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==",
+      "dev": true,
+      "requires": {
+        "cosmiconfig": "^5.0.0",
+        "cssnano-preset-default": "^4.0.7",
+        "is-resolvable": "^1.0.0",
+        "postcss": "^7.0.0"
+      }
+    },
+    "cssnano-preset-default": {
+      "version": "4.0.7",
+      "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz",
+      "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==",
+      "dev": true,
+      "requires": {
+        "css-declaration-sorter": "^4.0.1",
+        "cssnano-util-raw-cache": "^4.0.1",
+        "postcss": "^7.0.0",
+        "postcss-calc": "^7.0.1",
+        "postcss-colormin": "^4.0.3",
+        "postcss-convert-values": "^4.0.1",
+        "postcss-discard-comments": "^4.0.2",
+        "postcss-discard-duplicates": "^4.0.2",
+        "postcss-discard-empty": "^4.0.1",
+        "postcss-discard-overridden": "^4.0.1",
+        "postcss-merge-longhand": "^4.0.11",
+        "postcss-merge-rules": "^4.0.3",
+        "postcss-minify-font-values": "^4.0.2",
+        "postcss-minify-gradients": "^4.0.2",
+        "postcss-minify-params": "^4.0.2",
+        "postcss-minify-selectors": "^4.0.2",
+        "postcss-normalize-charset": "^4.0.1",
+        "postcss-normalize-display-values": "^4.0.2",
+        "postcss-normalize-positions": "^4.0.2",
+        "postcss-normalize-repeat-style": "^4.0.2",
+        "postcss-normalize-string": "^4.0.2",
+        "postcss-normalize-timing-functions": "^4.0.2",
+        "postcss-normalize-unicode": "^4.0.1",
+        "postcss-normalize-url": "^4.0.1",
+        "postcss-normalize-whitespace": "^4.0.2",
+        "postcss-ordered-values": "^4.1.2",
+        "postcss-reduce-initial": "^4.0.3",
+        "postcss-reduce-transforms": "^4.0.2",
+        "postcss-svgo": "^4.0.2",
+        "postcss-unique-selectors": "^4.0.1"
+      }
+    },
+    "cssnano-util-get-arguments": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
+      "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=",
+      "dev": true
+    },
+    "cssnano-util-get-match": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz",
+      "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=",
+      "dev": true
+    },
+    "cssnano-util-raw-cache": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz",
+      "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "cssnano-util-same-parent": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz",
+      "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==",
+      "dev": true
+    },
+    "csso": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz",
+      "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==",
+      "dev": true,
+      "requires": {
+        "css-tree": "1.0.0-alpha.39"
+      },
+      "dependencies": {
+        "css-tree": {
+          "version": "1.0.0-alpha.39",
+          "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz",
+          "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==",
+          "dev": true,
+          "requires": {
+            "mdn-data": "2.0.6",
+            "source-map": "^0.6.1"
+          }
+        },
+        "mdn-data": {
+          "version": "2.0.6",
+          "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz",
+          "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "cyclist": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
+      "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
+      "dev": true
+    },
+    "dashdash": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "de-indent": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+      "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
+      "dev": true
+    },
+    "debug": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+      "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+      "dev": true,
+      "requires": {
+        "ms": "^2.1.1"
+      }
+    },
+    "decamelize": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+      "dev": true
+    },
+    "decode-uri-component": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+      "dev": true
+    },
+    "deep-equal": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
+      "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
+      "dev": true,
+      "requires": {
+        "is-arguments": "^1.0.4",
+        "is-date-object": "^1.0.1",
+        "is-regex": "^1.0.4",
+        "object-is": "^1.0.1",
+        "object-keys": "^1.1.1",
+        "regexp.prototype.flags": "^1.2.0"
+      }
+    },
+    "deep-is": {
+      "version": "0.1.3",
+      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+      "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+      "dev": true
+    },
+    "deepmerge": {
+      "version": "1.5.2",
+      "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
+      "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
+      "dev": true
+    },
+    "default-gateway": {
+      "version": "5.0.5",
+      "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-5.0.5.tgz",
+      "integrity": "sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA==",
+      "dev": true,
+      "requires": {
+        "execa": "^3.3.0"
+      },
+      "dependencies": {
+        "cross-spawn": {
+          "version": "7.0.3",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+          "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+          "dev": true,
+          "requires": {
+            "path-key": "^3.1.0",
+            "shebang-command": "^2.0.0",
+            "which": "^2.0.1"
+          }
+        },
+        "execa": {
+          "version": "3.4.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz",
+          "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^7.0.0",
+            "get-stream": "^5.0.0",
+            "human-signals": "^1.1.1",
+            "is-stream": "^2.0.0",
+            "merge-stream": "^2.0.0",
+            "npm-run-path": "^4.0.0",
+            "onetime": "^5.1.0",
+            "p-finally": "^2.0.0",
+            "signal-exit": "^3.0.2",
+            "strip-final-newline": "^2.0.0"
+          }
+        },
+        "get-stream": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
+          "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
+          "dev": true,
+          "requires": {
+            "pump": "^3.0.0"
+          }
+        },
+        "is-stream": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+          "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
+          "dev": true
+        },
+        "mimic-fn": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+          "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+          "dev": true
+        },
+        "npm-run-path": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+          "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+          "dev": true,
+          "requires": {
+            "path-key": "^3.0.0"
+          }
+        },
+        "onetime": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+          "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+          "dev": true,
+          "requires": {
+            "mimic-fn": "^2.1.0"
+          }
+        },
+        "p-finally": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
+          "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==",
+          "dev": true
+        },
+        "path-key": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+          "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+          "dev": true
+        },
+        "shebang-command": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+          "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+          "dev": true,
+          "requires": {
+            "shebang-regex": "^3.0.0"
+          }
+        },
+        "shebang-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+          "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+          "dev": true
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+          "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+          "dev": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
+        }
+      }
+    },
+    "defaults": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+      "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+      "dev": true,
+      "requires": {
+        "clone": "^1.0.2"
+      }
+    },
+    "define-properties": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+      "dev": true,
+      "requires": {
+        "object-keys": "^1.0.12"
+      }
+    },
+    "define-property": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+      "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+      "dev": true,
+      "requires": {
+        "is-descriptor": "^1.0.2",
+        "isobject": "^3.0.1"
+      },
+      "dependencies": {
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "del": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
+      "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
+      "dev": true,
+      "requires": {
+        "@types/glob": "^7.1.1",
+        "globby": "^6.1.0",
+        "is-path-cwd": "^2.0.0",
+        "is-path-in-cwd": "^2.0.0",
+        "p-map": "^2.0.0",
+        "pify": "^4.0.1",
+        "rimraf": "^2.6.3"
+      },
+      "dependencies": {
+        "globby": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+          "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
+          "dev": true,
+          "requires": {
+            "array-union": "^1.0.1",
+            "glob": "^7.0.3",
+            "object-assign": "^4.0.1",
+            "pify": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          },
+          "dependencies": {
+            "pify": {
+              "version": "2.3.0",
+              "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+              "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+              "dev": true
+            }
+          }
+        },
+        "p-map": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+          "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+          "dev": true
+        }
+      }
+    },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+      "dev": true
+    },
+    "depd": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+      "dev": true
+    },
+    "des.js": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+      "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "destroy": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+      "dev": true
+    },
+    "detect-node": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz",
+      "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
+      "dev": true
+    },
+    "diffie-hellman": {
+      "version": "5.0.3",
+      "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+      "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "miller-rabin": "^4.0.0",
+        "randombytes": "^2.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
+      }
+    },
+    "dir-glob": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+      "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+      "dev": true,
+      "requires": {
+        "path-type": "^3.0.0"
+      }
+    },
+    "dns-equal": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+      "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=",
+      "dev": true
+    },
+    "dns-packet": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
+      "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
+      "dev": true,
+      "requires": {
+        "ip": "^1.1.0",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "dns-txt": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+      "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+      "dev": true,
+      "requires": {
+        "buffer-indexof": "^1.0.0"
+      }
+    },
+    "doctrine": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+      "dev": true,
+      "requires": {
+        "esutils": "^2.0.2"
+      }
+    },
+    "dom-converter": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
+      "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+      "dev": true,
+      "requires": {
+        "utila": "~0.4"
+      }
+    },
+    "dom-serializer": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+      "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+      "dev": true,
+      "requires": {
+        "domelementtype": "^2.0.1",
+        "entities": "^2.0.0"
+      },
+      "dependencies": {
+        "domelementtype": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
+          "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==",
+          "dev": true
+        }
+      }
+    },
+    "domain-browser": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+      "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+      "dev": true
+    },
+    "domelementtype": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+      "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+      "dev": true
+    },
+    "domhandler": {
+      "version": "2.4.2",
+      "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+      "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+      "dev": true,
+      "requires": {
+        "domelementtype": "1"
+      }
+    },
+    "domutils": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+      "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+      "dev": true,
+      "requires": {
+        "dom-serializer": "0",
+        "domelementtype": "1"
+      }
+    },
+    "dot-prop": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
+      "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
+      "dev": true,
+      "requires": {
+        "is-obj": "^2.0.0"
+      }
+    },
+    "dotenv": {
+      "version": "8.2.0",
+      "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
+      "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==",
+      "dev": true
+    },
+    "dotenv-expand": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+      "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
+      "dev": true
+    },
+    "duplexer": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+      "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+      "dev": true
+    },
+    "duplexify": {
+      "version": "3.7.1",
+      "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+      "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "easy-stack": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz",
+      "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=",
+      "dev": true
+    },
+    "ecc-jsbn": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+      "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+      "dev": true,
+      "requires": {
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.1.0"
+      }
+    },
+    "ee-first": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+      "dev": true
+    },
+    "ejs": {
+      "version": "2.7.4",
+      "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz",
+      "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
+      "dev": true
+    },
+    "electron-to-chromium": {
+      "version": "1.3.502",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.502.tgz",
+      "integrity": "sha512-TIeXOaHAvfP7FemGUtAJxStmOc1YFGWFNqdey/4Nk41L9b1nMmDVDGNMIWhZJvOfJxix6Cv5FGEnBK+yvw3UTg==",
+      "dev": true
+    },
+    "elliptic": {
+      "version": "6.5.3",
+      "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+      "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.4.0",
+        "brorand": "^1.0.1",
+        "hash.js": "^1.0.0",
+        "hmac-drbg": "^1.0.0",
+        "inherits": "^2.0.1",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
+      }
+    },
+    "emoji-regex": {
+      "version": "8.0.0",
+      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+      "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+      "dev": true
+    },
+    "emojis-list": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+      "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+      "dev": true
+    },
+    "encodeurl": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+      "dev": true
+    },
+    "end-of-stream": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+      "dev": true,
+      "requires": {
+        "once": "^1.4.0"
+      }
+    },
+    "enhanced-resolve": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz",
+      "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "memory-fs": "^0.5.0",
+        "tapable": "^1.0.0"
+      },
+      "dependencies": {
+        "memory-fs": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
+          "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
+          "dev": true,
+          "requires": {
+            "errno": "^0.1.3",
+            "readable-stream": "^2.0.1"
+          }
+        }
+      }
+    },
+    "entities": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz",
+      "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==",
+      "dev": true
+    },
+    "errno": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+      "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+      "dev": true,
+      "requires": {
+        "prr": "~1.0.1"
+      }
+    },
+    "error-ex": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+      "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+      "dev": true,
+      "requires": {
+        "is-arrayish": "^0.2.1"
+      }
+    },
+    "error-stack-parser": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz",
+      "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==",
+      "dev": true,
+      "requires": {
+        "stackframe": "^1.1.1"
+      }
+    },
+    "es-abstract": {
+      "version": "1.17.6",
+      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+      "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
+      "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.2.0",
+        "is-regex": "^1.1.0",
+        "object-inspect": "^1.7.0",
+        "object-keys": "^1.1.1",
+        "object.assign": "^4.1.0",
+        "string.prototype.trimend": "^1.0.1",
+        "string.prototype.trimstart": "^1.0.1"
+      }
+    },
+    "es-to-primitive": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+      "dev": true,
+      "requires": {
+        "is-callable": "^1.1.4",
+        "is-date-object": "^1.0.1",
+        "is-symbol": "^1.0.2"
+      }
+    },
+    "escalade": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz",
+      "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==",
+      "dev": true
+    },
+    "escape-html": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+      "dev": true
+    },
+    "escape-string-regexp": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+      "dev": true
+    },
+    "eslint": {
+      "version": "6.8.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
+      "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.0.0",
+        "ajv": "^6.10.0",
+        "chalk": "^2.1.0",
+        "cross-spawn": "^6.0.5",
+        "debug": "^4.0.1",
+        "doctrine": "^3.0.0",
+        "eslint-scope": "^5.0.0",
+        "eslint-utils": "^1.4.3",
+        "eslint-visitor-keys": "^1.1.0",
+        "espree": "^6.1.2",
+        "esquery": "^1.0.1",
+        "esutils": "^2.0.2",
+        "file-entry-cache": "^5.0.1",
+        "functional-red-black-tree": "^1.0.1",
+        "glob-parent": "^5.0.0",
+        "globals": "^12.1.0",
+        "ignore": "^4.0.6",
+        "import-fresh": "^3.0.0",
+        "imurmurhash": "^0.1.4",
+        "inquirer": "^7.0.0",
+        "is-glob": "^4.0.0",
+        "js-yaml": "^3.13.1",
+        "json-stable-stringify-without-jsonify": "^1.0.1",
+        "levn": "^0.3.0",
+        "lodash": "^4.17.14",
+        "minimatch": "^3.0.4",
+        "mkdirp": "^0.5.1",
+        "natural-compare": "^1.4.0",
+        "optionator": "^0.8.3",
+        "progress": "^2.0.0",
+        "regexpp": "^2.0.1",
+        "semver": "^6.1.2",
+        "strip-ansi": "^5.2.0",
+        "strip-json-comments": "^3.0.1",
+        "table": "^5.2.3",
+        "text-table": "^0.2.0",
+        "v8-compile-cache": "^2.0.3"
+      },
+      "dependencies": {
+        "eslint-scope": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
+          "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
+          "dev": true,
+          "requires": {
+            "esrecurse": "^4.1.0",
+            "estraverse": "^4.1.1"
+          }
+        },
+        "glob-parent": {
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+          "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+          "dev": true,
+          "requires": {
+            "is-glob": "^4.0.1"
+          }
+        },
+        "globals": {
+          "version": "12.4.0",
+          "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+          "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+          "dev": true,
+          "requires": {
+            "type-fest": "^0.8.1"
+          }
+        },
+        "import-fresh": {
+          "version": "3.2.1",
+          "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
+          "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
+          "dev": true,
+          "requires": {
+            "parent-module": "^1.0.0",
+            "resolve-from": "^4.0.0"
+          }
+        },
+        "resolve-from": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+          "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+          "dev": true
+        },
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        },
+        "strip-ansi": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^4.1.0"
+          }
+        },
+        "type-fest": {
+          "version": "0.8.1",
+          "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+          "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+          "dev": true
+        }
+      }
+    },
+    "eslint-loader": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz",
+      "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==",
+      "dev": true,
+      "requires": {
+        "loader-fs-cache": "^1.0.0",
+        "loader-utils": "^1.0.2",
+        "object-assign": "^4.0.1",
+        "object-hash": "^1.1.4",
+        "rimraf": "^2.6.1"
+      }
+    },
+    "eslint-plugin-vue": {
+      "version": "6.2.2",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz",
+      "integrity": "sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==",
+      "dev": true,
+      "requires": {
+        "natural-compare": "^1.4.0",
+        "semver": "^5.6.0",
+        "vue-eslint-parser": "^7.0.0"
+      }
+    },
+    "eslint-scope": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+      "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+      "dev": true,
+      "requires": {
+        "esrecurse": "^4.1.0",
+        "estraverse": "^4.1.1"
+      }
+    },
+    "eslint-utils": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+      "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+      "dev": true,
+      "requires": {
+        "eslint-visitor-keys": "^1.1.0"
+      }
+    },
+    "eslint-visitor-keys": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
+      "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
+      "dev": true
+    },
+    "espree": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
+      "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+      "dev": true,
+      "requires": {
+        "acorn": "^7.1.1",
+        "acorn-jsx": "^5.2.0",
+        "eslint-visitor-keys": "^1.1.0"
+      },
+      "dependencies": {
+        "acorn": {
+          "version": "7.1.1",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
+          "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
+          "dev": true
+        }
+      }
+    },
+    "esprima": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+      "dev": true
+    },
+    "esquery": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz",
+      "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==",
+      "dev": true,
+      "requires": {
+        "estraverse": "^5.0.0"
+      },
+      "dependencies": {
+        "estraverse": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz",
+          "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==",
+          "dev": true
+        }
+      }
+    },
+    "esrecurse": {
+      "version": "4.2.1",
+      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+      "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+      "dev": true,
+      "requires": {
+        "estraverse": "^4.1.0"
+      }
+    },
+    "estraverse": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+      "dev": true
+    },
+    "esutils": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+      "dev": true
+    },
+    "etag": {
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+      "dev": true
+    },
+    "event-pubsub": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz",
+      "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==",
+      "dev": true
+    },
+    "eventemitter3": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+      "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
+      "dev": true
+    },
+    "events": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
+      "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==",
+      "dev": true
+    },
+    "eventsource": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz",
+      "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==",
+      "dev": true,
+      "requires": {
+        "original": "^1.0.0"
+      }
+    },
+    "evp_bytestokey": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+      "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+      "dev": true,
+      "requires": {
+        "md5.js": "^1.3.4",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "execa": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+      "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+      "dev": true,
+      "requires": {
+        "cross-spawn": "^6.0.0",
+        "get-stream": "^4.0.0",
+        "is-stream": "^1.1.0",
+        "npm-run-path": "^2.0.0",
+        "p-finally": "^1.0.0",
+        "signal-exit": "^3.0.0",
+        "strip-eof": "^1.0.0"
+      }
+    },
+    "expand-brackets": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+      "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+      "dev": true,
+      "requires": {
+        "debug": "^2.3.3",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "posix-character-classes": "^0.1.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "express": {
+      "version": "4.17.1",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+      "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.7",
+        "array-flatten": "1.1.1",
+        "body-parser": "1.19.0",
+        "content-disposition": "0.5.3",
+        "content-type": "~1.0.4",
+        "cookie": "0.4.0",
+        "cookie-signature": "1.0.6",
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "finalhandler": "~1.1.2",
+        "fresh": "0.5.2",
+        "merge-descriptors": "1.0.1",
+        "methods": "~1.1.2",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.3",
+        "path-to-regexp": "0.1.7",
+        "proxy-addr": "~2.0.5",
+        "qs": "6.7.0",
+        "range-parser": "~1.2.1",
+        "safe-buffer": "5.1.2",
+        "send": "0.17.1",
+        "serve-static": "1.14.1",
+        "setprototypeof": "1.1.1",
+        "statuses": "~1.5.0",
+        "type-is": "~1.6.18",
+        "utils-merge": "1.0.1",
+        "vary": "~1.1.2"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        },
+        "qs": {
+          "version": "6.7.0",
+          "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+          "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+          "dev": true
+        }
+      }
+    },
+    "extend": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+      "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+      "dev": true
+    },
+    "extend-shallow": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+      "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+      "dev": true,
+      "requires": {
+        "assign-symbols": "^1.0.0",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "dev": true,
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "external-editor": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+      "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+      "dev": true,
+      "requires": {
+        "chardet": "^0.7.0",
+        "iconv-lite": "^0.4.24",
+        "tmp": "^0.0.33"
+      }
+    },
+    "extglob": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+      "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+      "dev": true,
+      "requires": {
+        "array-unique": "^0.3.2",
+        "define-property": "^1.0.0",
+        "expand-brackets": "^2.1.4",
+        "extend-shallow": "^2.0.1",
+        "fragment-cache": "^0.2.1",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "extsprintf": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+      "dev": true
+    },
+    "fast-deep-equal": {
+      "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": {
+      "version": "2.2.7",
+      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
+      "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==",
+      "dev": true,
+      "requires": {
+        "@mrmlnc/readdir-enhanced": "^2.2.1",
+        "@nodelib/fs.stat": "^1.1.2",
+        "glob-parent": "^3.1.0",
+        "is-glob": "^4.0.0",
+        "merge2": "^1.2.3",
+        "micromatch": "^3.1.10"
+      },
+      "dependencies": {
+        "glob-parent": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+          "dev": true,
+          "requires": {
+            "is-glob": "^3.1.0",
+            "path-dirname": "^1.0.0"
+          },
+          "dependencies": {
+            "is-glob": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+              "dev": true,
+              "requires": {
+                "is-extglob": "^2.1.0"
+              }
+            }
+          }
+        }
+      }
+    },
+    "fast-json-stable-stringify": {
+      "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
+    },
+    "fast-levenshtein": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+      "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+      "dev": true
+    },
+    "faye-websocket": {
+      "version": "0.10.0",
+      "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
+      "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
+      "dev": true,
+      "requires": {
+        "websocket-driver": ">=0.5.1"
+      }
+    },
+    "figgy-pudding": {
+      "version": "3.5.2",
+      "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
+      "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
+      "dev": true
+    },
+    "figures": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+      "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+      "dev": true,
+      "requires": {
+        "escape-string-regexp": "^1.0.5"
+      }
+    },
+    "file-entry-cache": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+      "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+      "dev": true,
+      "requires": {
+        "flat-cache": "^2.0.1"
+      }
+    },
+    "file-loader": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz",
+      "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.2.3",
+        "schema-utils": "^2.5.0"
+      }
+    },
+    "filesize": {
+      "version": "3.6.1",
+      "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
+      "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==",
+      "dev": true
+    },
+    "fill-range": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+      "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1",
+        "to-regex-range": "^2.1.0"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "finalhandler": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+      "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "on-finished": "~2.3.0",
+        "parseurl": "~1.3.3",
+        "statuses": "~1.5.0",
+        "unpipe": "~1.0.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "find-cache-dir": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+      "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+      "dev": true,
+      "requires": {
+        "commondir": "^1.0.1",
+        "make-dir": "^2.0.0",
+        "pkg-dir": "^3.0.0"
+      }
+    },
+    "find-up": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+      "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+      "dev": true,
+      "requires": {
+        "locate-path": "^3.0.0"
+      }
+    },
+    "flat-cache": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+      "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+      "dev": true,
+      "requires": {
+        "flatted": "^2.0.0",
+        "rimraf": "2.6.3",
+        "write": "1.0.3"
+      },
+      "dependencies": {
+        "rimraf": {
+          "version": "2.6.3",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+          "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+          "dev": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        }
+      }
+    },
+    "flatted": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+      "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+      "dev": true
+    },
+    "flush-write-stream": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+      "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.3.6"
+      }
+    },
+    "follow-redirects": {
+      "version": "1.12.1",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz",
+      "integrity": "sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==",
+      "dev": true
+    },
+    "for-in": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+      "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+      "dev": true
+    },
+    "forever-agent": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+      "dev": true
+    },
+    "form-data": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+      "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+      "dev": true,
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.6",
+        "mime-types": "^2.1.12"
+      }
+    },
+    "forwarded": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+      "dev": true
+    },
+    "fragment-cache": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+      "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+      "dev": true,
+      "requires": {
+        "map-cache": "^0.2.2"
+      }
+    },
+    "fresh": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+      "dev": true
+    },
+    "from2": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+      "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.0.0"
+      }
+    },
+    "fs-extra": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+      "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "jsonfile": "^4.0.0",
+        "universalify": "^0.1.0"
+      }
+    },
+    "fs-minipass": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+      "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
+    "fs-write-stream-atomic": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+      "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.2",
+        "iferr": "^0.1.5",
+        "imurmurhash": "^0.1.4",
+        "readable-stream": "1 || 2"
+      }
+    },
+    "fs.realpath": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+      "dev": true
+    },
+    "fsevents": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+      "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+      "dev": true,
+      "optional": true
+    },
+    "function-bind": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+      "dev": true
+    },
+    "functional-red-black-tree": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+      "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+      "dev": true
+    },
+    "gensync": {
+      "version": "1.0.0-beta.1",
+      "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
+      "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==",
+      "dev": true
+    },
+    "get-caller-file": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+      "dev": true
+    },
+    "get-stream": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+      "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+      "dev": true,
+      "requires": {
+        "pump": "^3.0.0"
+      }
+    },
+    "get-value": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+      "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+      "dev": true
+    },
+    "getpass": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "glob": {
+      "version": "7.1.6",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+      "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+      "dev": true,
+      "requires": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.0.4",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      }
+    },
+    "glob-parent": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+      "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+      "dev": true,
+      "requires": {
+        "is-glob": "^4.0.1"
+      }
+    },
+    "glob-to-regexp": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
+      "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+      "dev": true
+    },
+    "globals": {
+      "version": "11.12.0",
+      "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+      "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+      "dev": true
+    },
+    "globby": {
+      "version": "9.2.0",
+      "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz",
+      "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==",
+      "dev": true,
+      "requires": {
+        "@types/glob": "^7.1.1",
+        "array-union": "^1.0.2",
+        "dir-glob": "^2.2.2",
+        "fast-glob": "^2.2.6",
+        "glob": "^7.1.3",
+        "ignore": "^4.0.3",
+        "pify": "^4.0.1",
+        "slash": "^2.0.0"
+      }
+    },
+    "graceful-fs": {
+      "version": "4.2.4",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+      "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+      "dev": true
+    },
+    "gzip-size": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
+      "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
+      "dev": true,
+      "requires": {
+        "duplexer": "^0.1.1",
+        "pify": "^4.0.1"
+      }
+    },
+    "handle-thing": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
+      "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
+      "dev": true
+    },
+    "har-schema": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+      "dev": true
+    },
+    "har-validator": {
+      "version": "5.1.3",
+      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+      "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+      "dev": true,
+      "requires": {
+        "ajv": "^6.5.5",
+        "har-schema": "^2.0.0"
+      }
+    },
+    "has": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+      "dev": true,
+      "requires": {
+        "function-bind": "^1.1.1"
+      }
+    },
+    "has-ansi": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^2.0.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+          "dev": true
+        }
+      }
+    },
+    "has-flag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+      "dev": true
+    },
+    "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
+    },
+    "has-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+      "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+      "dev": true,
+      "requires": {
+        "get-value": "^2.0.6",
+        "has-values": "^1.0.0",
+        "isobject": "^3.0.0"
+      }
+    },
+    "has-values": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+      "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+      "dev": true,
+      "requires": {
+        "is-number": "^3.0.0",
+        "kind-of": "^4.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+          "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "hash-base": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+      "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.4",
+        "readable-stream": "^3.6.0",
+        "safe-buffer": "^5.2.0"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.2.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+          "dev": true
+        }
+      }
+    },
+    "hash-sum": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",
+      "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==",
+      "dev": true
+    },
+    "hash.js": {
+      "version": "1.1.7",
+      "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+      "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.3",
+        "minimalistic-assert": "^1.0.1"
+      }
+    },
+    "he": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+      "dev": true
+    },
+    "hex-color-regex": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+      "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
+      "dev": true
+    },
+    "highlight.js": {
+      "version": "9.18.1",
+      "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz",
+      "integrity": "sha512-OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg==",
+      "dev": true
+    },
+    "hmac-drbg": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+      "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+      "dev": true,
+      "requires": {
+        "hash.js": "^1.0.3",
+        "minimalistic-assert": "^1.0.0",
+        "minimalistic-crypto-utils": "^1.0.1"
+      }
+    },
+    "hoopy": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
+      "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==",
+      "dev": true
+    },
+    "hosted-git-info": {
+      "version": "2.8.8",
+      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
+      "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
+      "dev": true
+    },
+    "hpack.js": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+      "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "obuf": "^1.0.0",
+        "readable-stream": "^2.0.1",
+        "wbuf": "^1.1.0"
+      }
+    },
+    "hsl-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+      "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
+      "dev": true
+    },
+    "hsla-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+      "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
+      "dev": true
+    },
+    "html-comment-regex": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz",
+      "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==",
+      "dev": true
+    },
+    "html-entities": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz",
+      "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==",
+      "dev": true
+    },
+    "html-minifier": {
+      "version": "3.5.21",
+      "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz",
+      "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==",
+      "dev": true,
+      "requires": {
+        "camel-case": "3.0.x",
+        "clean-css": "4.2.x",
+        "commander": "2.17.x",
+        "he": "1.2.x",
+        "param-case": "2.1.x",
+        "relateurl": "0.2.x",
+        "uglify-js": "3.4.x"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.17.1",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
+          "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+          "dev": true
+        }
+      }
+    },
+    "html-tags": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz",
+      "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
+      "dev": true
+    },
+    "html-webpack-plugin": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz",
+      "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=",
+      "dev": true,
+      "requires": {
+        "html-minifier": "^3.2.3",
+        "loader-utils": "^0.2.16",
+        "lodash": "^4.17.3",
+        "pretty-error": "^2.0.2",
+        "tapable": "^1.0.0",
+        "toposort": "^1.0.0",
+        "util.promisify": "1.0.0"
+      },
+      "dependencies": {
+        "big.js": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+          "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+          "dev": true
+        },
+        "emojis-list": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+          "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+          "dev": true
+        },
+        "json5": {
+          "version": "0.5.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+          "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+          "dev": true
+        },
+        "loader-utils": {
+          "version": "0.2.17",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+          "dev": true,
+          "requires": {
+            "big.js": "^3.1.3",
+            "emojis-list": "^2.0.0",
+            "json5": "^0.5.0",
+            "object-assign": "^4.0.1"
+          }
+        },
+        "util.promisify": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+          "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+          "dev": true,
+          "requires": {
+            "define-properties": "^1.1.2",
+            "object.getownpropertydescriptors": "^2.0.3"
+          }
+        }
+      }
+    },
+    "htmlparser2": {
+      "version": "3.10.1",
+      "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+      "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+      "dev": true,
+      "requires": {
+        "domelementtype": "^1.3.1",
+        "domhandler": "^2.3.0",
+        "domutils": "^1.5.1",
+        "entities": "^1.1.1",
+        "inherits": "^2.0.1",
+        "readable-stream": "^3.1.1"
+      },
+      "dependencies": {
+        "entities": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+          "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+          "dev": true
+        },
+        "readable-stream": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        }
+      }
+    },
+    "http-deceiver": {
+      "version": "1.2.7",
+      "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+      "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=",
+      "dev": true
+    },
+    "http-errors": {
+      "version": "1.7.2",
+      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+      "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+      "dev": true,
+      "requires": {
+        "depd": "~1.1.2",
+        "inherits": "2.0.3",
+        "setprototypeof": "1.1.1",
+        "statuses": ">= 1.5.0 < 2",
+        "toidentifier": "1.0.0"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true
+        }
+      }
+    },
+    "http-proxy": {
+      "version": "1.18.1",
+      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+      "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+      "dev": true,
+      "requires": {
+        "eventemitter3": "^4.0.0",
+        "follow-redirects": "^1.0.0",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "http-proxy-middleware": {
+      "version": "0.19.1",
+      "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
+      "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
+      "dev": true,
+      "requires": {
+        "http-proxy": "^1.17.0",
+        "is-glob": "^4.0.0",
+        "lodash": "^4.17.11",
+        "micromatch": "^3.1.10"
+      }
+    },
+    "http-signature": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "jsprim": "^1.2.2",
+        "sshpk": "^1.7.0"
+      }
+    },
+    "https-browserify": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+      "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+      "dev": true
+    },
+    "human-signals": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+      "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+      "dev": true
+    },
+    "iconv-lite": {
+      "version": "0.4.24",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+      "dev": true,
+      "requires": {
+        "safer-buffer": ">= 2.1.2 < 3"
+      }
+    },
+    "icss-utils": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
+      "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.14"
+      }
+    },
+    "ieee754": {
+      "version": "1.1.13",
+      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+      "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
+      "dev": true
+    },
+    "iferr": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+      "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+      "dev": true
+    },
+    "ignore": {
+      "version": "4.0.6",
+      "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+      "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+      "dev": true
+    },
+    "import-cwd": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+      "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
+      "dev": true,
+      "requires": {
+        "import-from": "^2.1.0"
+      }
+    },
+    "import-fresh": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+      "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
+      "dev": true,
+      "requires": {
+        "caller-path": "^2.0.0",
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "import-from": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+      "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
+      "dev": true,
+      "requires": {
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "import-local": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+      "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+      "dev": true,
+      "requires": {
+        "pkg-dir": "^3.0.0",
+        "resolve-cwd": "^2.0.0"
+      }
+    },
+    "imurmurhash": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+      "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+      "dev": true
+    },
+    "indent-string": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+      "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+      "dev": true
+    },
+    "indexes-of": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+      "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+      "dev": true
+    },
+    "infer-owner": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+      "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+      "dev": true
+    },
+    "inflight": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+      "dev": true,
+      "requires": {
+        "once": "^1.3.0",
+        "wrappy": "1"
+      }
+    },
+    "inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "dev": true
+    },
+    "inquirer": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz",
+      "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==",
+      "dev": true,
+      "requires": {
+        "ansi-escapes": "^4.2.1",
+        "chalk": "^3.0.0",
+        "cli-cursor": "^3.1.0",
+        "cli-width": "^2.0.0",
+        "external-editor": "^3.0.3",
+        "figures": "^3.0.0",
+        "lodash": "^4.17.15",
+        "mute-stream": "0.0.8",
+        "run-async": "^2.4.0",
+        "rxjs": "^6.5.3",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0",
+        "through": "^2.3.6"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+          "dev": true,
+          "requires": {
+            "@types/color-name": "^1.1.1",
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "cli-cursor": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+          "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+          "dev": true,
+          "requires": {
+            "restore-cursor": "^3.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true
+        },
+        "mimic-fn": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+          "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+          "dev": true
+        },
+        "onetime": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
+          "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+          "dev": true,
+          "requires": {
+            "mimic-fn": "^2.1.0"
+          }
+        },
+        "restore-cursor": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+          "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+          "dev": true,
+          "requires": {
+            "onetime": "^5.1.0",
+            "signal-exit": "^3.0.2"
+          }
+        },
+        "supports-color": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
+    "internal-ip": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
+      "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+      "dev": true,
+      "requires": {
+        "default-gateway": "^4.2.0",
+        "ipaddr.js": "^1.9.0"
+      },
+      "dependencies": {
+        "default-gateway": {
+          "version": "4.2.0",
+          "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
+          "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+          "dev": true,
+          "requires": {
+            "execa": "^1.0.0",
+            "ip-regex": "^2.1.0"
+          }
+        }
+      }
+    },
+    "interpret": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+      "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+      "dev": true
+    },
+    "invariant": {
+      "version": "2.2.4",
+      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+      "dev": true,
+      "requires": {
+        "loose-envify": "^1.0.0"
+      }
+    },
+    "ip": {
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+      "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+      "dev": true
+    },
+    "ip-regex": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+      "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+      "dev": true
+    },
+    "ipaddr.js": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+      "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+      "dev": true
+    },
+    "is-absolute-url": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+      "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+      "dev": true
+    },
+    "is-accessor-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+      "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-arguments": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
+      "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==",
+      "dev": true
+    },
+    "is-arrayish": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+      "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+      "dev": true
+    },
+    "is-binary-path": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+      "dev": true,
+      "requires": {
+        "binary-extensions": "^2.0.0"
+      }
+    },
+    "is-buffer": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+      "dev": true
+    },
+    "is-callable": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz",
+      "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==",
+      "dev": true
+    },
+    "is-ci": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
+      "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
+      "dev": true,
+      "requires": {
+        "ci-info": "^1.5.0"
+      }
+    },
+    "is-color-stop": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
+      "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=",
+      "dev": true,
+      "requires": {
+        "css-color-names": "^0.0.4",
+        "hex-color-regex": "^1.1.0",
+        "hsl-regex": "^1.0.0",
+        "hsla-regex": "^1.0.0",
+        "rgb-regex": "^1.0.1",
+        "rgba-regex": "^1.0.0"
+      }
+    },
+    "is-data-descriptor": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+      "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-date-object": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
+      "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
+      "dev": true
+    },
+    "is-descriptor": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+      "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+      "dev": true,
+      "requires": {
+        "is-accessor-descriptor": "^0.1.6",
+        "is-data-descriptor": "^0.1.4",
+        "kind-of": "^5.0.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+          "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+          "dev": true
+        }
+      }
+    },
+    "is-directory": {
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+      "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+      "dev": true
+    },
+    "is-docker": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz",
+      "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==",
+      "dev": true
+    },
+    "is-extendable": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+      "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+      "dev": true
+    },
+    "is-extglob": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+      "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+      "dev": true
+    },
+    "is-fullwidth-code-point": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+      "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+      "dev": true
+    },
+    "is-glob": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+      "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+      "dev": true,
+      "requires": {
+        "is-extglob": "^2.1.1"
+      }
+    },
+    "is-number": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+      "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "is-obj": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+      "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+      "dev": true
+    },
+    "is-path-cwd": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
+      "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
+      "dev": true
+    },
+    "is-path-in-cwd": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
+      "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
+      "dev": true,
+      "requires": {
+        "is-path-inside": "^2.1.0"
+      }
+    },
+    "is-path-inside": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
+      "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
+      "dev": true,
+      "requires": {
+        "path-is-inside": "^1.0.2"
+      }
+    },
+    "is-plain-obj": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+      "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+      "dev": true
+    },
+    "is-plain-object": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+      "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "is-promise": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+      "dev": true
+    },
+    "is-regex": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz",
+      "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==",
+      "dev": true,
+      "requires": {
+        "has-symbols": "^1.0.1"
+      }
+    },
+    "is-resolvable": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+      "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+      "dev": true
+    },
+    "is-stream": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+      "dev": true
+    },
+    "is-svg": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz",
+      "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==",
+      "dev": true,
+      "requires": {
+        "html-comment-regex": "^1.1.0"
+      }
+    },
+    "is-symbol": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+      "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
+      "dev": true,
+      "requires": {
+        "has-symbols": "^1.0.1"
+      }
+    },
+    "is-typedarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+      "dev": true
+    },
+    "is-windows": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+      "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+      "dev": true
+    },
+    "is-wsl": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+      "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+      "dev": true
+    },
+    "isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+      "dev": true
+    },
+    "isexe": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+      "dev": true
+    },
+    "isobject": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+      "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+      "dev": true
+    },
+    "isstream": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+      "dev": true
+    },
+    "javascript-stringify": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.0.1.tgz",
+      "integrity": "sha512-yV+gqbd5vaOYjqlbk16EG89xB5udgjqQF3C5FAORDg4f/IS1Yc5ERCv5e/57yBcfJYw05V5JyIXabhwb75Xxow==",
+      "dev": true
+    },
+    "jest-worker": {
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+      "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
+      "dev": true,
+      "requires": {
+        "merge-stream": "^2.0.0",
+        "supports-color": "^7.0.0"
+      },
+      "dependencies": {
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        }
+      }
+    },
+    "js-message": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz",
+      "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=",
+      "dev": true
+    },
+    "js-queue": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz",
+      "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=",
+      "dev": true,
+      "requires": {
+        "easy-stack": "^1.0.0"
+      }
+    },
+    "js-tokens": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+      "dev": true
+    },
+    "js-yaml": {
+      "version": "3.13.1",
+      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+      "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+      "dev": true,
+      "requires": {
+        "argparse": "^1.0.7",
+        "esprima": "^4.0.0"
+      }
+    },
+    "jsbn": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+      "dev": true
+    },
+    "jsesc": {
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+      "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+      "dev": true
+    },
+    "json-parse-better-errors": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+      "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+      "dev": true
+    },
+    "json-schema": {
+      "version": "0.2.3",
+      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+      "dev": true
+    },
+    "json-schema-traverse": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+      "dev": true
+    },
+    "json-stable-stringify-without-jsonify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+      "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+      "dev": true
+    },
+    "json-stringify-safe": {
+      "version": "5.0.1",
+      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+      "dev": true
+    },
+    "json3": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz",
+      "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==",
+      "dev": true
+    },
+    "json5": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
+      "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
+      "dev": true,
+      "requires": {
+        "minimist": "^1.2.5"
+      }
+    },
+    "jsonfile": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+      "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.1.6"
+      }
+    },
+    "jsprim": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "1.0.0",
+        "extsprintf": "1.3.0",
+        "json-schema": "0.2.3",
+        "verror": "1.10.0"
+      }
+    },
+    "killable": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
+      "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==",
+      "dev": true
+    },
+    "kind-of": {
+      "version": "6.0.3",
+      "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+      "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+      "dev": true
+    },
+    "launch-editor": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz",
+      "integrity": "sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.3.0",
+        "shell-quote": "^1.6.1"
+      }
+    },
+    "launch-editor-middleware": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz",
+      "integrity": "sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg==",
+      "dev": true,
+      "requires": {
+        "launch-editor": "^2.2.1"
+      }
+    },
+    "leven": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+      "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+      "dev": true
+    },
+    "levenary": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz",
+      "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==",
+      "dev": true,
+      "requires": {
+        "leven": "^3.1.0"
+      }
+    },
+    "levn": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+      "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+      "dev": true,
+      "requires": {
+        "prelude-ls": "~1.1.2",
+        "type-check": "~0.3.2"
+      }
+    },
+    "lines-and-columns": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
+      "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
+      "dev": true
+    },
+    "loader-fs-cache": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz",
+      "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==",
+      "dev": true,
+      "requires": {
+        "find-cache-dir": "^0.1.1",
+        "mkdirp": "^0.5.1"
+      },
+      "dependencies": {
+        "find-cache-dir": {
+          "version": "0.1.1",
+          "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
+          "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
+          "dev": true,
+          "requires": {
+            "commondir": "^1.0.1",
+            "mkdirp": "^0.5.1",
+            "pkg-dir": "^1.0.0"
+          }
+        },
+        "find-up": {
+          "version": "1.1.2",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+          "dev": true,
+          "requires": {
+            "path-exists": "^2.0.0",
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "path-exists": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+          "dev": true,
+          "requires": {
+            "pinkie-promise": "^2.0.0"
+          }
+        },
+        "pkg-dir": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+          "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+          "dev": true,
+          "requires": {
+            "find-up": "^1.0.0"
+          }
+        }
+      }
+    },
+    "loader-runner": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+      "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+      "dev": true
+    },
+    "loader-utils": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+      "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+      "dev": true,
+      "requires": {
+        "big.js": "^5.2.2",
+        "emojis-list": "^3.0.0",
+        "json5": "^1.0.1"
+      },
+      "dependencies": {
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        }
+      }
+    },
+    "locate-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+      "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+      "dev": true,
+      "requires": {
+        "p-locate": "^3.0.0",
+        "path-exists": "^3.0.0"
+      }
+    },
+    "lodash": {
+      "version": "4.17.15",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+      "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+      "dev": true
+    },
+    "lodash.defaultsdeep": {
+      "version": "4.6.1",
+      "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz",
+      "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==",
+      "dev": true
+    },
+    "lodash.kebabcase": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz",
+      "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=",
+      "dev": true
+    },
+    "lodash.mapvalues": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz",
+      "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=",
+      "dev": true
+    },
+    "lodash.memoize": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+      "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+      "dev": true
+    },
+    "lodash.transform": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz",
+      "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=",
+      "dev": true
+    },
+    "lodash.uniq": {
+      "version": "4.5.0",
+      "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+      "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+      "dev": true
+    },
+    "log-symbols": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+      "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.0.1"
+      }
+    },
+    "loglevel": {
+      "version": "1.6.8",
+      "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz",
+      "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==",
+      "dev": true
+    },
+    "loose-envify": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+      "dev": true,
+      "requires": {
+        "js-tokens": "^3.0.0 || ^4.0.0"
+      }
+    },
+    "lower-case": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+      "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+      "dev": true
+    },
+    "lru-cache": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+      "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+      "dev": true,
+      "requires": {
+        "yallist": "^3.0.2"
+      }
+    },
+    "make-dir": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+      "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+      "dev": true,
+      "requires": {
+        "pify": "^4.0.1",
+        "semver": "^5.6.0"
+      }
+    },
+    "map-cache": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+      "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+      "dev": true
+    },
+    "map-visit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+      "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+      "dev": true,
+      "requires": {
+        "object-visit": "^1.0.0"
+      }
+    },
+    "md5.js": {
+      "version": "1.3.5",
+      "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+      "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+      "dev": true,
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      }
+    },
+    "mdn-data": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
+      "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==",
+      "dev": true
+    },
+    "media-typer": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+      "dev": true
+    },
+    "memory-fs": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+      "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+      "dev": true,
+      "requires": {
+        "errno": "^0.1.3",
+        "readable-stream": "^2.0.1"
+      }
+    },
+    "merge-descriptors": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+      "dev": true
+    },
+    "merge-source-map": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
+      "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
+      "dev": true,
+      "requires": {
+        "source-map": "^0.6.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "merge-stream": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+      "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+      "dev": true
+    },
+    "merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+      "dev": true
+    },
+    "methods": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+      "dev": true
+    },
+    "micromatch": {
+      "version": "3.1.10",
+      "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+      "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+      "dev": true,
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "braces": "^2.3.1",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "extglob": "^2.0.4",
+        "fragment-cache": "^0.2.1",
+        "kind-of": "^6.0.2",
+        "nanomatch": "^1.2.9",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.2"
+      }
+    },
+    "miller-rabin": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+      "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.0.0",
+        "brorand": "^1.0.1"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
+      }
+    },
+    "mime": {
+      "version": "2.4.6",
+      "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
+      "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==",
+      "dev": true
+    },
+    "mime-db": {
+      "version": "1.44.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+      "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
+      "dev": true
+    },
+    "mime-types": {
+      "version": "2.1.27",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+      "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+      "dev": true,
+      "requires": {
+        "mime-db": "1.44.0"
+      }
+    },
+    "mimic-fn": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+      "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+      "dev": true
+    },
+    "mini-css-extract-plugin": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz",
+      "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "normalize-url": "1.9.1",
+        "schema-utils": "^1.0.0",
+        "webpack-sources": "^1.1.0"
+      },
+      "dependencies": {
+        "normalize-url": {
+          "version": "1.9.1",
+          "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+          "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+          "dev": true,
+          "requires": {
+            "object-assign": "^4.0.1",
+            "prepend-http": "^1.0.0",
+            "query-string": "^4.1.0",
+            "sort-keys": "^1.0.0"
+          }
+        },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "minimalistic-assert": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+      "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+      "dev": true
+    },
+    "minimalistic-crypto-utils": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+      "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+      "dev": true
+    },
+    "minimatch": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+      "dev": true,
+      "requires": {
+        "brace-expansion": "^1.1.7"
+      }
+    },
+    "minimist": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+      "dev": true
+    },
+    "minipass": {
+      "version": "3.1.3",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
+      "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
+      "dev": true,
+      "requires": {
+        "yallist": "^4.0.0"
+      },
+      "dependencies": {
+        "yallist": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+          "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+          "dev": true
+        }
+      }
+    },
+    "minipass-collect": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+      "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
+    "minipass-flush": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+      "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
+    "minipass-pipeline": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz",
+      "integrity": "sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==",
+      "dev": true,
+      "requires": {
+        "minipass": "^3.0.0"
+      }
+    },
+    "mississippi": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+      "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+      "dev": true,
+      "requires": {
+        "concat-stream": "^1.5.0",
+        "duplexify": "^3.4.2",
+        "end-of-stream": "^1.1.0",
+        "flush-write-stream": "^1.0.0",
+        "from2": "^2.1.0",
+        "parallel-transform": "^1.1.0",
+        "pump": "^3.0.0",
+        "pumpify": "^1.3.3",
+        "stream-each": "^1.1.0",
+        "through2": "^2.0.0"
+      }
+    },
+    "mixin-deep": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+      "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+      "dev": true,
+      "requires": {
+        "for-in": "^1.0.2",
+        "is-extendable": "^1.0.1"
+      },
+      "dependencies": {
+        "is-extendable": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+          "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+          "dev": true,
+          "requires": {
+            "is-plain-object": "^2.0.4"
+          }
+        }
+      }
+    },
+    "mkdirp": {
+      "version": "0.5.5",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+      "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+      "dev": true,
+      "requires": {
+        "minimist": "^1.2.5"
+      }
+    },
+    "move-concurrently": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+      "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1",
+        "copy-concurrently": "^1.0.0",
+        "fs-write-stream-atomic": "^1.0.8",
+        "mkdirp": "^0.5.1",
+        "rimraf": "^2.5.4",
+        "run-queue": "^1.0.3"
+      }
+    },
+    "ms": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "dev": true
+    },
+    "multicast-dns": {
+      "version": "6.2.3",
+      "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+      "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+      "dev": true,
+      "requires": {
+        "dns-packet": "^1.3.1",
+        "thunky": "^1.0.2"
+      }
+    },
+    "multicast-dns-service-types": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+      "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
+      "dev": true
+    },
+    "mute-stream": {
+      "version": "0.0.8",
+      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+      "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+      "dev": true
+    },
+    "mz": {
+      "version": "2.7.0",
+      "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+      "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+      "dev": true,
+      "requires": {
+        "any-promise": "^1.0.0",
+        "object-assign": "^4.0.1",
+        "thenify-all": "^1.0.0"
+      }
+    },
+    "nanomatch": {
+      "version": "1.2.13",
+      "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+      "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+      "dev": true,
+      "requires": {
+        "arr-diff": "^4.0.0",
+        "array-unique": "^0.3.2",
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "fragment-cache": "^0.2.1",
+        "is-windows": "^1.0.2",
+        "kind-of": "^6.0.2",
+        "object.pick": "^1.3.0",
+        "regex-not": "^1.0.0",
+        "snapdragon": "^0.8.1",
+        "to-regex": "^3.0.1"
+      }
+    },
+    "natural-compare": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+      "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+      "dev": true
+    },
+    "negotiator": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+      "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+      "dev": true
+    },
+    "neo-async": {
+      "version": "2.6.1",
+      "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+      "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
+      "dev": true
+    },
+    "nice-try": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+      "dev": true
+    },
+    "no-case": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+      "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+      "dev": true,
+      "requires": {
+        "lower-case": "^1.1.1"
+      }
+    },
+    "node-forge": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz",
+      "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==",
+      "dev": true
+    },
+    "node-ipc": {
+      "version": "9.1.1",
+      "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.1.tgz",
+      "integrity": "sha512-FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w==",
+      "dev": true,
+      "requires": {
+        "event-pubsub": "4.3.0",
+        "js-message": "1.0.5",
+        "js-queue": "2.0.0"
+      }
+    },
+    "node-libs-browser": {
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+      "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+      "dev": true,
+      "requires": {
+        "assert": "^1.1.1",
+        "browserify-zlib": "^0.2.0",
+        "buffer": "^4.3.0",
+        "console-browserify": "^1.1.0",
+        "constants-browserify": "^1.0.0",
+        "crypto-browserify": "^3.11.0",
+        "domain-browser": "^1.1.1",
+        "events": "^3.0.0",
+        "https-browserify": "^1.0.0",
+        "os-browserify": "^0.3.0",
+        "path-browserify": "0.0.1",
+        "process": "^0.11.10",
+        "punycode": "^1.2.4",
+        "querystring-es3": "^0.2.0",
+        "readable-stream": "^2.3.3",
+        "stream-browserify": "^2.0.1",
+        "stream-http": "^2.7.2",
+        "string_decoder": "^1.0.0",
+        "timers-browserify": "^2.0.4",
+        "tty-browserify": "0.0.0",
+        "url": "^0.11.0",
+        "util": "^0.11.0",
+        "vm-browserify": "^1.0.1"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.4.1",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+          "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+          "dev": true
+        }
+      }
+    },
+    "node-releases": {
+      "version": "1.1.59",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.59.tgz",
+      "integrity": "sha512-H3JrdUczbdiwxN5FuJPyCHnGHIFqQ0wWxo+9j1kAXAzqNMAHlo+4I/sYYxpyK0irQ73HgdiyzD32oqQDcU2Osw==",
+      "dev": true
+    },
+    "normalize-package-data": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+      "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+      "dev": true,
+      "requires": {
+        "hosted-git-info": "^2.1.4",
+        "resolve": "^1.10.0",
+        "semver": "2 || 3 || 4 || 5",
+        "validate-npm-package-license": "^3.0.1"
+      }
+    },
+    "normalize-path": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+      "dev": true
+    },
+    "normalize-range": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+      "dev": true
+    },
+    "normalize-url": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
+      "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==",
+      "dev": true
+    },
+    "npm-run-path": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+      "dev": true,
+      "requires": {
+        "path-key": "^2.0.0"
+      }
+    },
+    "nth-check": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+      "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+      "dev": true,
+      "requires": {
+        "boolbase": "~1.0.0"
+      }
+    },
+    "null-loader": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-3.0.0.tgz",
+      "integrity": "sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.2.3",
+        "schema-utils": "^1.0.0"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "num2fraction": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+      "dev": true
+    },
+    "oauth-sign": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+      "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+      "dev": true
+    },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+      "dev": true
+    },
+    "object-copy": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+      "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+      "dev": true,
+      "requires": {
+        "copy-descriptor": "^0.1.0",
+        "define-property": "^0.2.5",
+        "kind-of": "^3.0.3"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "object-hash": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz",
+      "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==",
+      "dev": true
+    },
+    "object-inspect": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+      "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==",
+      "dev": true
+    },
+    "object-is": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz",
+      "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.5"
+      }
+    },
+    "object-keys": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+      "dev": true
+    },
+    "object-visit": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+      "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.0"
+      }
+    },
+    "object.assign": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+      "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.2",
+        "function-bind": "^1.1.1",
+        "has-symbols": "^1.0.0",
+        "object-keys": "^1.0.11"
+      }
+    },
+    "object.getownpropertydescriptors": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz",
+      "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.0-next.1"
+      }
+    },
+    "object.pick": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+      "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+      "dev": true,
+      "requires": {
+        "isobject": "^3.0.1"
+      }
+    },
+    "object.values": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz",
+      "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.0-next.1",
+        "function-bind": "^1.1.1",
+        "has": "^1.0.3"
+      }
+    },
+    "obuf": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+      "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+      "dev": true
+    },
+    "on-finished": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+      "dev": true,
+      "requires": {
+        "ee-first": "1.1.1"
+      }
+    },
+    "on-headers": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+      "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+      "dev": true
+    },
+    "once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+      "dev": true,
+      "requires": {
+        "wrappy": "1"
+      }
+    },
+    "onetime": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+      "dev": true,
+      "requires": {
+        "mimic-fn": "^1.0.0"
+      }
+    },
+    "open": {
+      "version": "6.4.0",
+      "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
+      "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+      "dev": true,
+      "requires": {
+        "is-wsl": "^1.1.0"
+      }
+    },
+    "opener": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz",
+      "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==",
+      "dev": true
+    },
+    "opn": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+      "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+      "dev": true,
+      "requires": {
+        "is-wsl": "^1.1.0"
+      }
+    },
+    "optionator": {
+      "version": "0.8.3",
+      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+      "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+      "dev": true,
+      "requires": {
+        "deep-is": "~0.1.3",
+        "fast-levenshtein": "~2.0.6",
+        "levn": "~0.3.0",
+        "prelude-ls": "~1.1.2",
+        "type-check": "~0.3.2",
+        "word-wrap": "~1.2.3"
+      }
+    },
+    "ora": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
+      "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.2",
+        "cli-cursor": "^2.1.0",
+        "cli-spinners": "^2.0.0",
+        "log-symbols": "^2.2.0",
+        "strip-ansi": "^5.2.0",
+        "wcwidth": "^1.0.1"
+      },
+      "dependencies": {
+        "strip-ansi": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^4.1.0"
+          }
+        }
+      }
+    },
+    "original": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
+      "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
+      "dev": true,
+      "requires": {
+        "url-parse": "^1.4.3"
+      }
+    },
+    "os-browserify": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+      "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+      "dev": true
+    },
+    "os-tmpdir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+      "dev": true
+    },
+    "p-finally": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+      "dev": true
+    },
+    "p-limit": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+      "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+      "dev": true,
+      "requires": {
+        "p-try": "^2.0.0"
+      }
+    },
+    "p-locate": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+      "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+      "dev": true,
+      "requires": {
+        "p-limit": "^2.0.0"
+      }
+    },
+    "p-map": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
+      "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
+      "dev": true,
+      "requires": {
+        "aggregate-error": "^3.0.0"
+      }
+    },
+    "p-retry": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz",
+      "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==",
+      "dev": true,
+      "requires": {
+        "retry": "^0.12.0"
+      }
+    },
+    "p-try": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+      "dev": true
+    },
+    "pako": {
+      "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": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+      "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+      "dev": true,
+      "requires": {
+        "cyclist": "^1.0.1",
+        "inherits": "^2.0.3",
+        "readable-stream": "^2.1.5"
+      }
+    },
+    "param-case": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+      "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+      "dev": true,
+      "requires": {
+        "no-case": "^2.2.0"
+      }
+    },
+    "parent-module": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+      "dev": true,
+      "requires": {
+        "callsites": "^3.0.0"
+      },
+      "dependencies": {
+        "callsites": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+          "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+          "dev": true
+        }
+      }
+    },
+    "parse-asn1": {
+      "version": "5.1.5",
+      "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
+      "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==",
+      "dev": true,
+      "requires": {
+        "asn1.js": "^4.0.0",
+        "browserify-aes": "^1.0.0",
+        "create-hash": "^1.1.0",
+        "evp_bytestokey": "^1.0.0",
+        "pbkdf2": "^3.0.3",
+        "safe-buffer": "^5.1.1"
+      }
+    },
+    "parse-json": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+      "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+      "dev": true,
+      "requires": {
+        "@babel/code-frame": "^7.0.0",
+        "error-ex": "^1.3.1",
+        "json-parse-better-errors": "^1.0.1",
+        "lines-and-columns": "^1.1.6"
+      }
+    },
+    "parse5": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
+      "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
+      "dev": true
+    },
+    "parse5-htmlparser2-tree-adapter": {
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-5.1.1.tgz",
+      "integrity": "sha512-CF+TKjXqoqyDwHqBhFQ+3l5t83xYi6fVT1tQNg+Ye0JRLnTxWvIroCjEp1A0k4lneHNBGnICUf0cfYVYGEazqw==",
+      "dev": true,
+      "requires": {
+        "parse5": "^5.1.1"
+      }
+    },
+    "parseurl": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+      "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+      "dev": true
+    },
+    "pascalcase": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+      "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+      "dev": true
+    },
+    "path-browserify": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+      "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
+      "dev": true
+    },
+    "path-dirname": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+      "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+      "dev": true
+    },
+    "path-exists": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+      "dev": true
+    },
+    "path-is-absolute": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+      "dev": true
+    },
+    "path-is-inside": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+      "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+      "dev": true
+    },
+    "path-key": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+      "dev": true
+    },
+    "path-parse": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+      "dev": true
+    },
+    "path-to-regexp": {
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+      "dev": true
+    },
+    "path-type": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+      "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+      "dev": true,
+      "requires": {
+        "pify": "^3.0.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+          "dev": true
+        }
+      }
+    },
+    "pbkdf2": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",
+      "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==",
+      "dev": true,
+      "requires": {
+        "create-hash": "^1.1.2",
+        "create-hmac": "^1.1.4",
+        "ripemd160": "^2.0.1",
+        "safe-buffer": "^5.0.1",
+        "sha.js": "^2.4.8"
+      }
+    },
+    "performance-now": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+      "dev": true
+    },
+    "picomatch": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+      "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+      "dev": true
+    },
+    "pify": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+      "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+      "dev": true
+    },
+    "pinkie": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+      "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+      "dev": true
+    },
+    "pinkie-promise": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+      "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+      "dev": true,
+      "requires": {
+        "pinkie": "^2.0.0"
+      }
+    },
+    "pkg-dir": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+      "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+      "dev": true,
+      "requires": {
+        "find-up": "^3.0.0"
+      }
+    },
+    "pnp-webpack-plugin": {
+      "version": "1.6.4",
+      "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz",
+      "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==",
+      "dev": true,
+      "requires": {
+        "ts-pnp": "^1.1.6"
+      }
+    },
+    "portfinder": {
+      "version": "1.0.27",
+      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.27.tgz",
+      "integrity": "sha512-bJ3U3MThKnyJ9Dx1Idtm5pQmxXqw08+XOHhi/Lie8OF1OlhVaBFhsntAIhkZYjfDcCzszSr0w1yCbccThhzgxQ==",
+      "dev": true,
+      "requires": {
+        "async": "^2.6.2",
+        "debug": "^3.1.1",
+        "mkdirp": "^0.5.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        }
+      }
+    },
+    "posix-character-classes": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+      "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+      "dev": true
+    },
+    "postcss": {
+      "version": "7.0.32",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz",
+      "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.2",
+        "source-map": "^0.6.1",
+        "supports-color": "^6.1.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+          "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^3.0.0"
+          }
+        }
+      }
+    },
+    "postcss-calc": {
+      "version": "7.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz",
+      "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.27",
+        "postcss-selector-parser": "^6.0.2",
+        "postcss-value-parser": "^4.0.2"
+      }
+    },
+    "postcss-colormin": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz",
+      "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "color": "^3.0.0",
+        "has": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-convert-values": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz",
+      "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-discard-comments": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz",
+      "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-discard-duplicates": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz",
+      "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-discard-empty": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz",
+      "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-discard-overridden": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz",
+      "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-load-config": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
+      "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==",
+      "dev": true,
+      "requires": {
+        "cosmiconfig": "^5.0.0",
+        "import-cwd": "^2.0.0"
+      }
+    },
+    "postcss-loader": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
+      "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.1.0",
+        "postcss": "^7.0.0",
+        "postcss-load-config": "^2.0.0",
+        "schema-utils": "^1.0.0"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "postcss-merge-longhand": {
+      "version": "4.0.11",
+      "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz",
+      "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==",
+      "dev": true,
+      "requires": {
+        "css-color-names": "0.0.4",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0",
+        "stylehacks": "^4.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-merge-rules": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz",
+      "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "caniuse-api": "^3.0.0",
+        "cssnano-util-same-parent": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-selector-parser": "^3.0.0",
+        "vendors": "^1.0.0"
+      },
+      "dependencies": {
+        "postcss-selector-parser": {
+          "version": "3.1.2",
+          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+          "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+          "dev": true,
+          "requires": {
+            "dot-prop": "^5.2.0",
+            "indexes-of": "^1.0.1",
+            "uniq": "^1.0.1"
+          }
+        }
+      }
+    },
+    "postcss-minify-font-values": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz",
+      "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-minify-gradients": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz",
+      "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-arguments": "^4.0.0",
+        "is-color-stop": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-minify-params": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz",
+      "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==",
+      "dev": true,
+      "requires": {
+        "alphanum-sort": "^1.0.0",
+        "browserslist": "^4.0.0",
+        "cssnano-util-get-arguments": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0",
+        "uniqs": "^2.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-minify-selectors": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz",
+      "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==",
+      "dev": true,
+      "requires": {
+        "alphanum-sort": "^1.0.0",
+        "has": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-selector-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-selector-parser": {
+          "version": "3.1.2",
+          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+          "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+          "dev": true,
+          "requires": {
+            "dot-prop": "^5.2.0",
+            "indexes-of": "^1.0.1",
+            "uniq": "^1.0.1"
+          }
+        }
+      }
+    },
+    "postcss-modules-extract-imports": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
+      "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.5"
+      }
+    },
+    "postcss-modules-local-by-default": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz",
+      "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==",
+      "dev": true,
+      "requires": {
+        "icss-utils": "^4.1.1",
+        "postcss": "^7.0.16",
+        "postcss-selector-parser": "^6.0.2",
+        "postcss-value-parser": "^4.0.0"
+      }
+    },
+    "postcss-modules-scope": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz",
+      "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.6",
+        "postcss-selector-parser": "^6.0.0"
+      }
+    },
+    "postcss-modules-values": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz",
+      "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==",
+      "dev": true,
+      "requires": {
+        "icss-utils": "^4.0.0",
+        "postcss": "^7.0.6"
+      }
+    },
+    "postcss-normalize-charset": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
+      "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-normalize-display-values": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz",
+      "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-match": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-positions": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz",
+      "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-arguments": "^4.0.0",
+        "has": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-repeat-style": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz",
+      "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-arguments": "^4.0.0",
+        "cssnano-util-get-match": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-string": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz",
+      "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==",
+      "dev": true,
+      "requires": {
+        "has": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-timing-functions": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz",
+      "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-match": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-unicode": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz",
+      "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-url": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz",
+      "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==",
+      "dev": true,
+      "requires": {
+        "is-absolute-url": "^2.0.0",
+        "normalize-url": "^3.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-normalize-whitespace": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz",
+      "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==",
+      "dev": true,
+      "requires": {
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-ordered-values": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz",
+      "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-arguments": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-reduce-initial": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz",
+      "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "caniuse-api": "^3.0.0",
+        "has": "^1.0.0",
+        "postcss": "^7.0.0"
+      }
+    },
+    "postcss-reduce-transforms": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz",
+      "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==",
+      "dev": true,
+      "requires": {
+        "cssnano-util-get-match": "^4.0.0",
+        "has": "^1.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-selector-parser": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz",
+      "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==",
+      "dev": true,
+      "requires": {
+        "cssesc": "^3.0.0",
+        "indexes-of": "^1.0.1",
+        "uniq": "^1.0.1"
+      }
+    },
+    "postcss-svgo": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz",
+      "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==",
+      "dev": true,
+      "requires": {
+        "is-svg": "^3.0.0",
+        "postcss": "^7.0.0",
+        "postcss-value-parser": "^3.0.0",
+        "svgo": "^1.0.0"
+      },
+      "dependencies": {
+        "postcss-value-parser": {
+          "version": "3.3.1",
+          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+          "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+          "dev": true
+        }
+      }
+    },
+    "postcss-unique-selectors": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz",
+      "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==",
+      "dev": true,
+      "requires": {
+        "alphanum-sort": "^1.0.0",
+        "postcss": "^7.0.0",
+        "uniqs": "^2.0.0"
+      }
+    },
+    "postcss-value-parser": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
+      "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
+      "dev": true
+    },
+    "prelude-ls": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+      "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+      "dev": true
+    },
+    "prepend-http": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+      "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+      "dev": true
+    },
+    "prettier": {
+      "version": "1.19.1",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
+      "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
+      "dev": true,
+      "optional": true
+    },
+    "pretty-error": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
+      "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
+      "dev": true,
+      "requires": {
+        "renderkid": "^2.0.1",
+        "utila": "~0.4"
+      }
+    },
+    "process": {
+      "version": "0.11.10",
+      "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+      "dev": true
+    },
+    "process-nextick-args": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+      "dev": true
+    },
+    "progress": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+      "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+      "dev": true
+    },
+    "promise-inflight": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+      "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+      "dev": true
+    },
+    "proxy-addr": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
+      "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+      "dev": true,
+      "requires": {
+        "forwarded": "~0.1.2",
+        "ipaddr.js": "1.9.1"
+      }
+    },
+    "prr": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+      "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+      "dev": true
+    },
+    "pseudomap": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+      "dev": true
+    },
+    "psl": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+      "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
+      "dev": true
+    },
+    "public-encrypt": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+      "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^4.1.0",
+        "browserify-rsa": "^4.0.0",
+        "create-hash": "^1.1.0",
+        "parse-asn1": "^5.0.0",
+        "randombytes": "^2.0.1",
+        "safe-buffer": "^5.1.2"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
+      }
+    },
+    "pump": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+      "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "once": "^1.3.1"
+      }
+    },
+    "pumpify": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+      "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+      "dev": true,
+      "requires": {
+        "duplexify": "^3.6.0",
+        "inherits": "^2.0.3",
+        "pump": "^2.0.0"
+      },
+      "dependencies": {
+        "pump": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+          "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+          "dev": true,
+          "requires": {
+            "end-of-stream": "^1.1.0",
+            "once": "^1.3.1"
+          }
+        }
+      }
+    },
+    "punycode": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+      "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+      "dev": true
+    },
+    "q": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+      "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+      "dev": true
+    },
+    "qs": {
+      "version": "6.5.2",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+      "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+      "dev": true
+    },
+    "query-string": {
+      "version": "4.3.4",
+      "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+      "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+      "dev": true,
+      "requires": {
+        "object-assign": "^4.1.0",
+        "strict-uri-encode": "^1.0.0"
+      }
+    },
+    "querystring": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+      "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+      "dev": true
+    },
+    "querystring-es3": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+      "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+      "dev": true
+    },
+    "querystringify": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
+      "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
+      "dev": true
+    },
+    "randombytes": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+      "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "randomfill": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+      "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+      "dev": true,
+      "requires": {
+        "randombytes": "^2.0.5",
+        "safe-buffer": "^5.1.0"
+      }
+    },
+    "range-parser": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+      "dev": true
+    },
+    "raw-body": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+      "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+      "dev": true,
+      "requires": {
+        "bytes": "3.1.0",
+        "http-errors": "1.7.2",
+        "iconv-lite": "0.4.24",
+        "unpipe": "1.0.0"
+      }
+    },
+    "read-pkg": {
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+      "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+      "dev": true,
+      "requires": {
+        "@types/normalize-package-data": "^2.4.0",
+        "normalize-package-data": "^2.5.0",
+        "parse-json": "^5.0.0",
+        "type-fest": "^0.6.0"
+      }
+    },
+    "readable-stream": {
+      "version": "2.3.7",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+      "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+      "dev": true,
+      "requires": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "readdirp": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
+      "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
+      "dev": true,
+      "requires": {
+        "picomatch": "^2.2.1"
+      }
+    },
+    "rechoir": {
+      "version": "0.6.2",
+      "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+      "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+      "dev": true,
+      "requires": {
+        "resolve": "^1.1.6"
+      }
+    },
+    "regenerate": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz",
+      "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==",
+      "dev": true
+    },
+    "regenerate-unicode-properties": {
+      "version": "8.2.0",
+      "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
+      "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
+      "dev": true,
+      "requires": {
+        "regenerate": "^1.4.0"
+      }
+    },
+    "regenerator-runtime": {
+      "version": "0.13.5",
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
+      "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
+      "dev": true
+    },
+    "regenerator-transform": {
+      "version": "0.14.5",
+      "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
+      "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
+      "dev": true,
+      "requires": {
+        "@babel/runtime": "^7.8.4"
+      }
+    },
+    "regex-not": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+      "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^3.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "regexp.prototype.flags": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz",
+      "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.0-next.1"
+      }
+    },
+    "regexpp": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+      "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+      "dev": true
+    },
+    "regexpu-core": {
+      "version": "4.7.0",
+      "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
+      "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
+      "dev": true,
+      "requires": {
+        "regenerate": "^1.4.0",
+        "regenerate-unicode-properties": "^8.2.0",
+        "regjsgen": "^0.5.1",
+        "regjsparser": "^0.6.4",
+        "unicode-match-property-ecmascript": "^1.0.4",
+        "unicode-match-property-value-ecmascript": "^1.2.0"
+      }
+    },
+    "regjsgen": {
+      "version": "0.5.2",
+      "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
+      "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==",
+      "dev": true
+    },
+    "regjsparser": {
+      "version": "0.6.4",
+      "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
+      "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
+      "dev": true,
+      "requires": {
+        "jsesc": "~0.5.0"
+      },
+      "dependencies": {
+        "jsesc": {
+          "version": "0.5.0",
+          "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+          "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+          "dev": true
+        }
+      }
+    },
+    "relateurl": {
+      "version": "0.2.7",
+      "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+      "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
+      "dev": true
+    },
+    "remove-trailing-separator": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+      "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+      "dev": true
+    },
+    "renderkid": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz",
+      "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==",
+      "dev": true,
+      "requires": {
+        "css-select": "^1.1.0",
+        "dom-converter": "^0.2",
+        "htmlparser2": "^3.3.0",
+        "strip-ansi": "^3.0.0",
+        "utila": "^0.4.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+          "dev": true
+        },
+        "css-select": {
+          "version": "1.2.0",
+          "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+          "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+          "dev": true,
+          "requires": {
+            "boolbase": "~1.0.0",
+            "css-what": "2.1",
+            "domutils": "1.5.1",
+            "nth-check": "~1.0.1"
+          }
+        },
+        "css-what": {
+          "version": "2.1.3",
+          "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+          "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+          "dev": true
+        },
+        "domutils": {
+          "version": "1.5.1",
+          "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+          "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+          "dev": true,
+          "requires": {
+            "dom-serializer": "0",
+            "domelementtype": "1"
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        }
+      }
+    },
+    "repeat-element": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+      "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+      "dev": true
+    },
+    "repeat-string": {
+      "version": "1.6.1",
+      "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+      "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+      "dev": true
+    },
+    "request": {
+      "version": "2.88.2",
+      "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+      "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+      "dev": true,
+      "requires": {
+        "aws-sign2": "~0.7.0",
+        "aws4": "^1.8.0",
+        "caseless": "~0.12.0",
+        "combined-stream": "~1.0.6",
+        "extend": "~3.0.2",
+        "forever-agent": "~0.6.1",
+        "form-data": "~2.3.2",
+        "har-validator": "~5.1.3",
+        "http-signature": "~1.2.0",
+        "is-typedarray": "~1.0.0",
+        "isstream": "~0.1.2",
+        "json-stringify-safe": "~5.0.1",
+        "mime-types": "~2.1.19",
+        "oauth-sign": "~0.9.0",
+        "performance-now": "^2.1.0",
+        "qs": "~6.5.2",
+        "safe-buffer": "^5.1.2",
+        "tough-cookie": "~2.5.0",
+        "tunnel-agent": "^0.6.0",
+        "uuid": "^3.3.2"
+      }
+    },
+    "require-directory": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+      "dev": true
+    },
+    "require-main-filename": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+      "dev": true
+    },
+    "requires-port": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+      "dev": true
+    },
+    "resolve": {
+      "version": "1.15.1",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
+      "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+      "dev": true,
+      "requires": {
+        "path-parse": "^1.0.6"
+      }
+    },
+    "resolve-cwd": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+      "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
+      "dev": true,
+      "requires": {
+        "resolve-from": "^3.0.0"
+      }
+    },
+    "resolve-from": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+      "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
+      "dev": true
+    },
+    "resolve-url": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+      "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+      "dev": true
+    },
+    "restore-cursor": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+      "dev": true,
+      "requires": {
+        "onetime": "^2.0.0",
+        "signal-exit": "^3.0.2"
+      }
+    },
+    "ret": {
+      "version": "0.1.15",
+      "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+      "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+      "dev": true
+    },
+    "retry": {
+      "version": "0.12.0",
+      "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+      "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
+      "dev": true
+    },
+    "rgb-regex": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+      "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
+      "dev": true
+    },
+    "rgba-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+      "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
+      "dev": true
+    },
+    "rimraf": {
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+      "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+      "dev": true,
+      "requires": {
+        "glob": "^7.1.3"
+      }
+    },
+    "ripemd160": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+      "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+      "dev": true,
+      "requires": {
+        "hash-base": "^3.0.0",
+        "inherits": "^2.0.1"
+      }
+    },
+    "run-async": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz",
+      "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==",
+      "dev": true,
+      "requires": {
+        "is-promise": "^2.1.0"
+      }
+    },
+    "run-queue": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+      "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+      "dev": true,
+      "requires": {
+        "aproba": "^1.1.1"
+      }
+    },
+    "rxjs": {
+      "version": "6.5.5",
+      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
+      "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+      "dev": true,
+      "requires": {
+        "tslib": "^1.9.0"
+      }
+    },
+    "safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+      "dev": true
+    },
+    "safe-regex": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+      "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+      "dev": true,
+      "requires": {
+        "ret": "~0.1.10"
+      }
+    },
+    "safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+      "dev": true
+    },
+    "sass": {
+      "version": "1.26.10",
+      "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.10.tgz",
+      "integrity": "sha512-bzN0uvmzfsTvjz0qwccN1sPm2HxxpNI/Xa+7PlUEMS+nQvbyuEK7Y0qFqxlPHhiNHb1Ze8WQJtU31olMObkAMw==",
+      "dev": true,
+      "requires": {
+        "chokidar": ">=2.0.0 <4.0.0"
+      }
+    },
+    "sass-loader": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz",
+      "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==",
+      "dev": true,
+      "requires": {
+        "clone-deep": "^4.0.1",
+        "loader-utils": "^1.2.3",
+        "neo-async": "^2.6.1",
+        "schema-utils": "^2.6.1",
+        "semver": "^6.3.0"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        }
+      }
+    },
+    "sax": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+      "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+      "dev": true
+    },
+    "schema-utils": {
+      "version": "2.6.5",
+      "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
+      "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+      "dev": true,
+      "requires": {
+        "ajv": "^6.12.0",
+        "ajv-keywords": "^3.4.1"
+      }
+    },
+    "select-hose": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+      "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
+      "dev": true
+    },
+    "selfsigned": {
+      "version": "1.10.7",
+      "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz",
+      "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==",
+      "dev": true,
+      "requires": {
+        "node-forge": "0.9.0"
+      }
+    },
+    "semver": {
+      "version": "5.7.1",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+      "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+      "dev": true
+    },
+    "send": {
+      "version": "0.17.1",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+      "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+      "dev": true,
+      "requires": {
+        "debug": "2.6.9",
+        "depd": "~1.1.2",
+        "destroy": "~1.0.4",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "fresh": "0.5.2",
+        "http-errors": "~1.7.2",
+        "mime": "1.6.0",
+        "ms": "2.1.1",
+        "on-finished": "~2.3.0",
+        "range-parser": "~1.2.1",
+        "statuses": "~1.5.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          },
+          "dependencies": {
+            "ms": {
+              "version": "2.0.0",
+              "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+              "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+              "dev": true
+            }
+          }
+        },
+        "mime": {
+          "version": "1.6.0",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+          "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+          "dev": true
+        },
+        "ms": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+          "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+          "dev": true
+        }
+      }
+    },
+    "serialize-javascript": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz",
+      "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==",
+      "dev": true,
+      "requires": {
+        "randombytes": "^2.1.0"
+      }
+    },
+    "serve-index": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+      "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+      "dev": true,
+      "requires": {
+        "accepts": "~1.3.4",
+        "batch": "0.6.1",
+        "debug": "2.6.9",
+        "escape-html": "~1.0.3",
+        "http-errors": "~1.6.2",
+        "mime-types": "~2.1.17",
+        "parseurl": "~1.3.2"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "http-errors": {
+          "version": "1.6.3",
+          "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+          "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+          "dev": true,
+          "requires": {
+            "depd": "~1.1.2",
+            "inherits": "2.0.3",
+            "setprototypeof": "1.1.0",
+            "statuses": ">= 1.4.0 < 2"
+          }
+        },
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        },
+        "setprototypeof": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+          "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+          "dev": true
+        }
+      }
+    },
+    "serve-static": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+      "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+      "dev": true,
+      "requires": {
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "parseurl": "~1.3.3",
+        "send": "0.17.1"
+      }
+    },
+    "set-blocking": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+      "dev": true
+    },
+    "set-value": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+      "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^2.0.1",
+        "is-extendable": "^0.1.1",
+        "is-plain-object": "^2.0.3",
+        "split-string": "^3.0.1"
+      },
+      "dependencies": {
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        }
+      }
+    },
+    "setimmediate": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+      "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+      "dev": true
+    },
+    "setprototypeof": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+      "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+      "dev": true
+    },
+    "sha.js": {
+      "version": "2.4.11",
+      "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+      "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+      "dev": true,
+      "requires": {
+        "inherits": "^2.0.1",
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "shallow-clone": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+      "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+      "dev": true,
+      "requires": {
+        "kind-of": "^6.0.2"
+      }
+    },
+    "shebang-command": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+      "dev": true,
+      "requires": {
+        "shebang-regex": "^1.0.0"
+      }
+    },
+    "shebang-regex": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+      "dev": true
+    },
+    "shell-quote": {
+      "version": "1.7.2",
+      "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
+      "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==",
+      "dev": true
+    },
+    "shelljs": {
+      "version": "0.8.4",
+      "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz",
+      "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==",
+      "dev": true,
+      "requires": {
+        "glob": "^7.0.0",
+        "interpret": "^1.0.0",
+        "rechoir": "^0.6.2"
+      }
+    },
+    "signal-exit": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+      "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
+      "dev": true
+    },
+    "simple-swizzle": {
+      "version": "0.2.2",
+      "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+      "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
+      "dev": true,
+      "requires": {
+        "is-arrayish": "^0.3.1"
+      },
+      "dependencies": {
+        "is-arrayish": {
+          "version": "0.3.2",
+          "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+          "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+          "dev": true
+        }
+      }
+    },
+    "slash": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+      "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+      "dev": true
+    },
+    "slice-ansi": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+      "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^3.2.0",
+        "astral-regex": "^1.0.0",
+        "is-fullwidth-code-point": "^2.0.0"
+      },
+      "dependencies": {
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        }
+      }
+    },
+    "snapdragon": {
+      "version": "0.8.2",
+      "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+      "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+      "dev": true,
+      "requires": {
+        "base": "^0.11.1",
+        "debug": "^2.2.0",
+        "define-property": "^0.2.5",
+        "extend-shallow": "^2.0.1",
+        "map-cache": "^0.2.2",
+        "source-map": "^0.5.6",
+        "source-map-resolve": "^0.5.0",
+        "use": "^3.1.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
+        },
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+          "dev": true
+        }
+      }
+    },
+    "snapdragon-node": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+      "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+      "dev": true,
+      "requires": {
+        "define-property": "^1.0.0",
+        "isobject": "^3.0.0",
+        "snapdragon-util": "^3.0.1"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+          "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^1.0.0"
+          }
+        },
+        "is-accessor-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+          "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-data-descriptor": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+          "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+          "dev": true,
+          "requires": {
+            "kind-of": "^6.0.0"
+          }
+        },
+        "is-descriptor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+          "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+          "dev": true,
+          "requires": {
+            "is-accessor-descriptor": "^1.0.0",
+            "is-data-descriptor": "^1.0.0",
+            "kind-of": "^6.0.2"
+          }
+        }
+      }
+    },
+    "snapdragon-util": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+      "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.2.0"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "sockjs": {
+      "version": "0.3.20",
+      "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz",
+      "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==",
+      "dev": true,
+      "requires": {
+        "faye-websocket": "^0.10.0",
+        "uuid": "^3.4.0",
+        "websocket-driver": "0.6.5"
+      }
+    },
+    "sockjs-client": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz",
+      "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==",
+      "dev": true,
+      "requires": {
+        "debug": "^3.2.5",
+        "eventsource": "^1.0.7",
+        "faye-websocket": "~0.11.1",
+        "inherits": "^2.0.3",
+        "json3": "^3.3.2",
+        "url-parse": "^1.4.3"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "faye-websocket": {
+          "version": "0.11.3",
+          "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
+          "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
+          "dev": true,
+          "requires": {
+            "websocket-driver": ">=0.5.1"
+          }
+        }
+      }
+    },
+    "sort-keys": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+      "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+      "dev": true,
+      "requires": {
+        "is-plain-obj": "^1.0.0"
+      }
+    },
+    "sortablejs": {
+      "version": "1.10.2",
+      "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz",
+      "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A=="
+    },
+    "source-list-map": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+      "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+      "dev": true
+    },
+    "source-map": {
+      "version": "0.5.7",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+      "dev": true
+    },
+    "source-map-resolve": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+      "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+      "dev": true,
+      "requires": {
+        "atob": "^2.1.2",
+        "decode-uri-component": "^0.2.0",
+        "resolve-url": "^0.2.1",
+        "source-map-url": "^0.4.0",
+        "urix": "^0.1.0"
+      }
+    },
+    "source-map-support": {
+      "version": "0.5.19",
+      "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
+      "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
+      "dev": true,
+      "requires": {
+        "buffer-from": "^1.0.0",
+        "source-map": "^0.6.0"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "source-map-url": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+      "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+      "dev": true
+    },
+    "spdx-correct": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+      "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+      "dev": true,
+      "requires": {
+        "spdx-expression-parse": "^3.0.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-exceptions": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+      "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+      "dev": true
+    },
+    "spdx-expression-parse": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+      "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+      "dev": true,
+      "requires": {
+        "spdx-exceptions": "^2.1.0",
+        "spdx-license-ids": "^3.0.0"
+      }
+    },
+    "spdx-license-ids": {
+      "version": "3.0.5",
+      "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+      "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+      "dev": true
+    },
+    "spdy": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
+      "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+      "dev": true,
+      "requires": {
+        "debug": "^4.1.0",
+        "handle-thing": "^2.0.0",
+        "http-deceiver": "^1.2.7",
+        "select-hose": "^2.0.0",
+        "spdy-transport": "^3.0.0"
+      }
+    },
+    "spdy-transport": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
+      "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+      "dev": true,
+      "requires": {
+        "debug": "^4.1.0",
+        "detect-node": "^2.0.4",
+        "hpack.js": "^2.1.6",
+        "obuf": "^1.1.2",
+        "readable-stream": "^3.0.6",
+        "wbuf": "^1.7.3"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        }
+      }
+    },
+    "split-string": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+      "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+      "dev": true,
+      "requires": {
+        "extend-shallow": "^3.0.0"
+      }
+    },
+    "sprintf-js": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+      "dev": true
+    },
+    "sshpk": {
+      "version": "1.16.1",
+      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+      "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+      "dev": true,
+      "requires": {
+        "asn1": "~0.2.3",
+        "assert-plus": "^1.0.0",
+        "bcrypt-pbkdf": "^1.0.0",
+        "dashdash": "^1.12.0",
+        "ecc-jsbn": "~0.1.1",
+        "getpass": "^0.1.1",
+        "jsbn": "~0.1.0",
+        "safer-buffer": "^2.0.2",
+        "tweetnacl": "~0.14.0"
+      }
+    },
+    "ssri": {
+      "version": "6.0.1",
+      "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
+      "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
+      "dev": true,
+      "requires": {
+        "figgy-pudding": "^3.5.1"
+      }
+    },
+    "stable": {
+      "version": "0.1.8",
+      "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
+      "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+      "dev": true
+    },
+    "stackframe": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz",
+      "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==",
+      "dev": true
+    },
+    "static-extend": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+      "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+      "dev": true,
+      "requires": {
+        "define-property": "^0.2.5",
+        "object-copy": "^0.1.0"
+      },
+      "dependencies": {
+        "define-property": {
+          "version": "0.2.5",
+          "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+          "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+          "dev": true,
+          "requires": {
+            "is-descriptor": "^0.1.0"
+          }
+        }
+      }
+    },
+    "statuses": {
+      "version": "1.5.0",
+      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+      "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+      "dev": true
+    },
+    "stream-browserify": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+      "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+      "dev": true,
+      "requires": {
+        "inherits": "~2.0.1",
+        "readable-stream": "^2.0.2"
+      }
+    },
+    "stream-each": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+      "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+      "dev": true,
+      "requires": {
+        "end-of-stream": "^1.1.0",
+        "stream-shift": "^1.0.0"
+      }
+    },
+    "stream-http": {
+      "version": "2.8.3",
+      "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+      "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+      "dev": true,
+      "requires": {
+        "builtin-status-codes": "^3.0.0",
+        "inherits": "^2.0.1",
+        "readable-stream": "^2.3.6",
+        "to-arraybuffer": "^1.0.0",
+        "xtend": "^4.0.0"
+      }
+    },
+    "stream-shift": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+      "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
+      "dev": true
+    },
+    "strict-uri-encode": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+      "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+      "dev": true
+    },
+    "string-width": {
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+      "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+      "dev": true,
+      "requires": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.0"
+      }
+    },
+    "string.prototype.trimend": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
+      "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.5"
+      }
+    },
+    "string.prototype.trimstart": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
+      "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.5"
+      }
+    },
+    "string_decoder": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "strip-ansi": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+      "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+      "dev": true,
+      "requires": {
+        "ansi-regex": "^5.0.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+          "dev": true
+        }
+      }
+    },
+    "strip-eof": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+      "dev": true
+    },
+    "strip-final-newline": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+      "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+      "dev": true
+    },
+    "strip-indent": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+      "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+      "dev": true
+    },
+    "strip-json-comments": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz",
+      "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==",
+      "dev": true
+    },
+    "stylehacks": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
+      "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==",
+      "dev": true,
+      "requires": {
+        "browserslist": "^4.0.0",
+        "postcss": "^7.0.0",
+        "postcss-selector-parser": "^3.0.0"
+      },
+      "dependencies": {
+        "postcss-selector-parser": {
+          "version": "3.1.2",
+          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+          "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+          "dev": true,
+          "requires": {
+            "dot-prop": "^5.2.0",
+            "indexes-of": "^1.0.1",
+            "uniq": "^1.0.1"
+          }
+        }
+      }
+    },
+    "supports-color": {
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+      "dev": true,
+      "requires": {
+        "has-flag": "^3.0.0"
+      }
+    },
+    "svg-tags": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
+      "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
+      "dev": true
+    },
+    "svgo": {
+      "version": "1.3.2",
+      "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
+      "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.1",
+        "coa": "^2.0.2",
+        "css-select": "^2.0.0",
+        "css-select-base-adapter": "^0.1.1",
+        "css-tree": "1.0.0-alpha.37",
+        "csso": "^4.0.2",
+        "js-yaml": "^3.13.1",
+        "mkdirp": "~0.5.1",
+        "object.values": "^1.1.0",
+        "sax": "~1.2.4",
+        "stable": "^0.1.8",
+        "unquote": "~1.1.1",
+        "util.promisify": "~1.0.0"
+      }
+    },
+    "table": {
+      "version": "5.4.6",
+      "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+      "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+      "dev": true,
+      "requires": {
+        "ajv": "^6.10.2",
+        "lodash": "^4.17.14",
+        "slice-ansi": "^2.1.0",
+        "string-width": "^3.0.0"
+      },
+      "dependencies": {
+        "emoji-regex": {
+          "version": "7.0.3",
+          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+          "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+          "dev": true
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "string-width": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+          "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+          "dev": true,
+          "requires": {
+            "emoji-regex": "^7.0.1",
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^5.1.0"
+          }
+        },
+        "strip-ansi": {
+          "version": "5.2.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^4.1.0"
+          }
+        }
+      }
+    },
+    "tapable": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+      "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+      "dev": true
+    },
+    "terser": {
+      "version": "4.8.0",
+      "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
+      "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
+      "dev": true,
+      "requires": {
+        "commander": "^2.20.0",
+        "source-map": "~0.6.1",
+        "source-map-support": "~0.5.12"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "terser-webpack-plugin": {
+      "version": "1.4.4",
+      "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz",
+      "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==",
+      "dev": true,
+      "requires": {
+        "cacache": "^12.0.2",
+        "find-cache-dir": "^2.1.0",
+        "is-wsl": "^1.1.0",
+        "schema-utils": "^1.0.0",
+        "serialize-javascript": "^3.1.0",
+        "source-map": "^0.6.1",
+        "terser": "^4.1.2",
+        "webpack-sources": "^1.4.0",
+        "worker-farm": "^1.7.0"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "text-table": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+      "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+      "dev": true
+    },
+    "thenify": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+      "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+      "dev": true,
+      "requires": {
+        "any-promise": "^1.0.0"
+      }
+    },
+    "thenify-all": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+      "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
+      "dev": true,
+      "requires": {
+        "thenify": ">= 3.1.0 < 4"
+      }
+    },
+    "thread-loader": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.3.tgz",
+      "integrity": "sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==",
+      "dev": true,
+      "requires": {
+        "loader-runner": "^2.3.1",
+        "loader-utils": "^1.1.0",
+        "neo-async": "^2.6.0"
+      }
+    },
+    "through": {
+      "version": "2.3.8",
+      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+      "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+      "dev": true
+    },
+    "through2": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+      "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+      "dev": true,
+      "requires": {
+        "readable-stream": "~2.3.6",
+        "xtend": "~4.0.1"
+      }
+    },
+    "thunky": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
+      "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
+      "dev": true
+    },
+    "timers-browserify": {
+      "version": "2.0.11",
+      "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
+      "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==",
+      "dev": true,
+      "requires": {
+        "setimmediate": "^1.0.4"
+      }
+    },
+    "timsort": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+      "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
+      "dev": true
+    },
+    "tmp": {
+      "version": "0.0.33",
+      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+      "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+      "dev": true,
+      "requires": {
+        "os-tmpdir": "~1.0.2"
+      }
+    },
+    "to-arraybuffer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+      "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+      "dev": true
+    },
+    "to-fast-properties": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+      "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+      "dev": true
+    },
+    "to-object-path": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+      "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+      "dev": true,
+      "requires": {
+        "kind-of": "^3.0.2"
+      },
+      "dependencies": {
+        "kind-of": {
+          "version": "3.2.2",
+          "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+          "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+          "dev": true,
+          "requires": {
+            "is-buffer": "^1.1.5"
+          }
+        }
+      }
+    },
+    "to-regex": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+      "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+      "dev": true,
+      "requires": {
+        "define-property": "^2.0.2",
+        "extend-shallow": "^3.0.2",
+        "regex-not": "^1.0.2",
+        "safe-regex": "^1.1.0"
+      }
+    },
+    "to-regex-range": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+      "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+      "dev": true,
+      "requires": {
+        "is-number": "^3.0.0",
+        "repeat-string": "^1.6.1"
+      }
+    },
+    "toidentifier": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+      "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+      "dev": true
+    },
+    "toposort": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz",
+      "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
+      "dev": true
+    },
+    "tough-cookie": {
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+      "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+      "dev": true,
+      "requires": {
+        "psl": "^1.1.28",
+        "punycode": "^2.1.1"
+      }
+    },
+    "tryer": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
+      "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==",
+      "dev": true
+    },
+    "ts-pnp": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
+      "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==",
+      "dev": true
+    },
+    "tslib": {
+      "version": "1.11.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+      "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==",
+      "dev": true
+    },
+    "tty-browserify": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+      "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+      "dev": true
+    },
+    "tunnel-agent": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+      "dev": true,
+      "requires": {
+        "safe-buffer": "^5.0.1"
+      }
+    },
+    "tweetnacl": {
+      "version": "0.14.5",
+      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+      "dev": true
+    },
+    "type-check": {
+      "version": "0.3.2",
+      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+      "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+      "dev": true,
+      "requires": {
+        "prelude-ls": "~1.1.2"
+      }
+    },
+    "type-fest": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+      "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+      "dev": true
+    },
+    "type-is": {
+      "version": "1.6.18",
+      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+      "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+      "dev": true,
+      "requires": {
+        "media-typer": "0.3.0",
+        "mime-types": "~2.1.24"
+      }
+    },
+    "typedarray": {
+      "version": "0.0.6",
+      "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+      "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+      "dev": true
+    },
+    "uglify-js": {
+      "version": "3.4.10",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
+      "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==",
+      "dev": true,
+      "requires": {
+        "commander": "~2.19.0",
+        "source-map": "~0.6.1"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "2.19.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
+          "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+          "dev": true
+        },
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "unicode-canonical-property-names-ecmascript": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+      "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
+      "dev": true
+    },
+    "unicode-match-property-ecmascript": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
+      "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
+      "dev": true,
+      "requires": {
+        "unicode-canonical-property-names-ecmascript": "^1.0.4",
+        "unicode-property-aliases-ecmascript": "^1.0.4"
+      }
+    },
+    "unicode-match-property-value-ecmascript": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
+      "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==",
+      "dev": true
+    },
+    "unicode-property-aliases-ecmascript": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
+      "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
+      "dev": true
+    },
+    "union-value": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+      "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+      "dev": true,
+      "requires": {
+        "arr-union": "^3.1.0",
+        "get-value": "^2.0.6",
+        "is-extendable": "^0.1.1",
+        "set-value": "^2.0.1"
+      }
+    },
+    "uniq": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+      "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+      "dev": true
+    },
+    "uniqs": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+      "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+      "dev": true
+    },
+    "unique-filename": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+      "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+      "dev": true,
+      "requires": {
+        "unique-slug": "^2.0.0"
+      }
+    },
+    "unique-slug": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+      "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+      "dev": true,
+      "requires": {
+        "imurmurhash": "^0.1.4"
+      }
+    },
+    "universalify": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+      "dev": true
+    },
+    "unpipe": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+      "dev": true
+    },
+    "unquote": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
+      "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
+      "dev": true
+    },
+    "unset-value": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+      "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+      "dev": true,
+      "requires": {
+        "has-value": "^0.3.1",
+        "isobject": "^3.0.0"
+      },
+      "dependencies": {
+        "has-value": {
+          "version": "0.3.1",
+          "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+          "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+          "dev": true,
+          "requires": {
+            "get-value": "^2.0.3",
+            "has-values": "^0.1.4",
+            "isobject": "^2.0.0"
+          },
+          "dependencies": {
+            "isobject": {
+              "version": "2.1.0",
+              "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+              "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+              "dev": true,
+              "requires": {
+                "isarray": "1.0.0"
+              }
+            }
+          }
+        },
+        "has-values": {
+          "version": "0.1.4",
+          "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+          "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+          "dev": true
+        }
+      }
+    },
+    "upath": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+      "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+      "dev": true
+    },
+    "upper-case": {
+      "version": "1.1.3",
+      "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+      "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+      "dev": true
+    },
+    "uri-js": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+      "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+      "dev": true,
+      "requires": {
+        "punycode": "^2.1.0"
+      }
+    },
+    "urix": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+      "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+      "dev": true
+    },
+    "url": {
+      "version": "0.11.0",
+      "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+      "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+      "dev": true,
+      "requires": {
+        "punycode": "1.3.2",
+        "querystring": "0.2.0"
+      },
+      "dependencies": {
+        "punycode": {
+          "version": "1.3.2",
+          "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+          "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+          "dev": true
+        }
+      }
+    },
+    "url-loader": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz",
+      "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^1.2.3",
+        "mime": "^2.4.4",
+        "schema-utils": "^2.5.0"
+      }
+    },
+    "url-parse": {
+      "version": "1.4.7",
+      "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
+      "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
+      "dev": true,
+      "requires": {
+        "querystringify": "^2.1.1",
+        "requires-port": "^1.0.0"
+      }
+    },
+    "use": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+      "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+      "dev": true
+    },
+    "util": {
+      "version": "0.11.1",
+      "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+      "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+      "dev": true,
+      "requires": {
+        "inherits": "2.0.3"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+          "dev": true
+        }
+      }
+    },
+    "util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+      "dev": true
+    },
+    "util.promisify": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
+      "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.2",
+        "has-symbols": "^1.0.1",
+        "object.getownpropertydescriptors": "^2.1.0"
+      }
+    },
+    "utila": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+      "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
+      "dev": true
+    },
+    "utils-merge": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+      "dev": true
+    },
+    "uuid": {
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+      "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+      "dev": true
+    },
+    "v8-compile-cache": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
+      "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==",
+      "dev": true
+    },
+    "validate-npm-package-license": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+      "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+      "dev": true,
+      "requires": {
+        "spdx-correct": "^3.0.0",
+        "spdx-expression-parse": "^3.0.0"
+      }
+    },
+    "vary": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+      "dev": true
+    },
+    "vendors": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz",
+      "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==",
+      "dev": true
+    },
+    "verror": {
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0",
+        "core-util-is": "1.0.2",
+        "extsprintf": "^1.2.0"
+      }
+    },
+    "vm-browserify": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+      "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
+      "dev": true
+    },
+    "vue": {
+      "version": "2.6.11",
+      "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz",
+      "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ=="
+    },
+    "vue-cli-plugin-vuetify": {
+      "version": "2.0.7",
+      "resolved": "https://registry.npmjs.org/vue-cli-plugin-vuetify/-/vue-cli-plugin-vuetify-2.0.7.tgz",
+      "integrity": "sha512-4riK5bzyvkZ4CxpQk/Vl6z8n8tmJUhuxh+k8xc/MZRdCt9RxAm3G4SxcEweroqKGXg+CRRfhqysaEQVtd4D40Q==",
+      "dev": true,
+      "requires": {
+        "null-loader": "^3.0.0",
+        "semver": "^7.1.2",
+        "shelljs": "^0.8.3"
+      },
+      "dependencies": {
+        "semver": {
+          "version": "7.3.2",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+          "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
+          "dev": true
+        }
+      }
+    },
+    "vue-eslint-parser": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz",
+      "integrity": "sha512-yR0dLxsTT7JfD2YQo9BhnQ6bUTLsZouuzt9SKRP7XNaZJV459gvlsJo4vT2nhZ/2dH9j3c53bIx9dnqU2prM9g==",
+      "dev": true,
+      "requires": {
+        "debug": "^4.1.1",
+        "eslint-scope": "^5.0.0",
+        "eslint-visitor-keys": "^1.1.0",
+        "espree": "^6.1.2",
+        "esquery": "^1.0.1",
+        "lodash": "^4.17.15"
+      },
+      "dependencies": {
+        "eslint-scope": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
+          "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
+          "dev": true,
+          "requires": {
+            "esrecurse": "^4.1.0",
+            "estraverse": "^4.1.1"
+          }
+        }
+      }
+    },
+    "vue-hot-reload-api": {
+      "version": "2.3.4",
+      "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
+      "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
+      "dev": true
+    },
+    "vue-loader": {
+      "version": "15.9.3",
+      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.3.tgz",
+      "integrity": "sha512-Y67VnGGgVLH5Voostx8JBZgPQTlDQeOVBLOEsjc2cXbCYBKexSKEpOA56x0YZofoDOTszrLnIShyOX1p9uCEHA==",
+      "dev": true,
+      "requires": {
+        "@vue/component-compiler-utils": "^3.1.0",
+        "hash-sum": "^1.0.2",
+        "loader-utils": "^1.1.0",
+        "vue-hot-reload-api": "^2.3.0",
+        "vue-style-loader": "^4.1.0"
+      },
+      "dependencies": {
+        "hash-sum": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+          "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
+          "dev": true
+        }
+      }
+    },
+    "vue-style-loader": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz",
+      "integrity": "sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==",
+      "dev": true,
+      "requires": {
+        "hash-sum": "^1.0.2",
+        "loader-utils": "^1.0.2"
+      },
+      "dependencies": {
+        "hash-sum": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+          "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
+          "dev": true
+        }
+      }
+    },
+    "vue-template-compiler": {
+      "version": "2.6.11",
+      "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz",
+      "integrity": "sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA==",
+      "dev": true,
+      "requires": {
+        "de-indent": "^1.0.2",
+        "he": "^1.1.0"
+      }
+    },
+    "vue-template-es2015-compiler": {
+      "version": "1.9.1",
+      "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz",
+      "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
+      "dev": true
+    },
+    "vuedraggable": {
+      "version": "2.24.0",
+      "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.24.0.tgz",
+      "integrity": "sha512-IlslPpc+iZ2zPNSJbydFZIDrE+don5u+Nc/bjT2YaF+Azidc+wxxJKfKT0NwE68AKk0syb0YbZneAcnynqREZQ==",
+      "requires": {
+        "sortablejs": "^1.10.1"
+      }
+    },
+    "vuetify": {
+      "version": "2.3.4",
+      "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.3.4.tgz",
+      "integrity": "sha512-vMtCNqv5BhrjfTfIhH2Lptoxx7z/Nu1NfBiZ2oCvI2QbTagMlhF5GMXgbnnyTGIjooFf/ozKznuMxk6tuI5cxw=="
+    },
+    "vuetify-loader": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/vuetify-loader/-/vuetify-loader-1.6.0.tgz",
+      "integrity": "sha512-1bx3YeZ712dT1+QMX+XSFlP0O5k5O5Ui9ysBBmUZ9bWkAEHWZJQI9soI+qG5qmeFxUC0L9QYMCIKP0hOL/pf3Q==",
+      "dev": true,
+      "requires": {
+        "file-loader": "^4.0.0",
+        "loader-utils": "^1.2.0"
+      }
+    },
+    "vuex": {
+      "version": "3.5.1",
+      "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.5.1.tgz",
+      "integrity": "sha512-w7oJzmHQs0FM9LXodfskhw9wgKBiaB+totOdb8sNzbTB2KDCEEwEs29NzBZFh/lmEK1t5tDmM1vtsO7ubG1DFw=="
+    },
+    "watchpack": {
+      "version": "1.7.2",
+      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz",
+      "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==",
+      "dev": true,
+      "requires": {
+        "chokidar": "^3.4.0",
+        "graceful-fs": "^4.1.2",
+        "neo-async": "^2.5.0",
+        "watchpack-chokidar2": "^2.0.0"
+      }
+    },
+    "watchpack-chokidar2": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz",
+      "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "chokidar": "^2.1.8"
+      },
+      "dependencies": {
+        "anymatch": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+          "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "micromatch": "^3.1.4",
+            "normalize-path": "^2.1.1"
+          },
+          "dependencies": {
+            "normalize-path": {
+              "version": "2.1.1",
+              "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+              "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "remove-trailing-separator": "^1.0.1"
+              }
+            }
+          }
+        },
+        "binary-extensions": {
+          "version": "1.13.1",
+          "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+          "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+          "dev": true,
+          "optional": true
+        },
+        "chokidar": {
+          "version": "2.1.8",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+          "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.1",
+            "braces": "^2.3.2",
+            "fsevents": "^1.2.7",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.3",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "normalize-path": "^3.0.0",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.2.1",
+            "upath": "^1.1.1"
+          }
+        },
+        "fsevents": {
+          "version": "1.2.13",
+          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+          "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+          "dev": true,
+          "optional": true
+        },
+        "glob-parent": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "is-glob": "^3.1.0",
+            "path-dirname": "^1.0.0"
+          },
+          "dependencies": {
+            "is-glob": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+              "dev": true,
+              "optional": true,
+              "requires": {
+                "is-extglob": "^2.1.0"
+              }
+            }
+          }
+        },
+        "is-binary-path": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+          "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "binary-extensions": "^1.0.0"
+          }
+        },
+        "readdirp": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+          "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "graceful-fs": "^4.1.11",
+            "micromatch": "^3.1.10",
+            "readable-stream": "^2.0.2"
+          }
+        }
+      }
+    },
+    "wbuf": {
+      "version": "1.7.3",
+      "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+      "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+      "dev": true,
+      "requires": {
+        "minimalistic-assert": "^1.0.0"
+      }
+    },
+    "wcwidth": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+      "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+      "dev": true,
+      "requires": {
+        "defaults": "^1.0.3"
+      }
+    },
+    "webpack": {
+      "version": "4.43.0",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz",
+      "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==",
+      "dev": true,
+      "requires": {
+        "@webassemblyjs/ast": "1.9.0",
+        "@webassemblyjs/helper-module-context": "1.9.0",
+        "@webassemblyjs/wasm-edit": "1.9.0",
+        "@webassemblyjs/wasm-parser": "1.9.0",
+        "acorn": "^6.4.1",
+        "ajv": "^6.10.2",
+        "ajv-keywords": "^3.4.1",
+        "chrome-trace-event": "^1.0.2",
+        "enhanced-resolve": "^4.1.0",
+        "eslint-scope": "^4.0.3",
+        "json-parse-better-errors": "^1.0.2",
+        "loader-runner": "^2.4.0",
+        "loader-utils": "^1.2.3",
+        "memory-fs": "^0.4.1",
+        "micromatch": "^3.1.10",
+        "mkdirp": "^0.5.3",
+        "neo-async": "^2.6.1",
+        "node-libs-browser": "^2.2.1",
+        "schema-utils": "^1.0.0",
+        "tapable": "^1.1.3",
+        "terser-webpack-plugin": "^1.4.3",
+        "watchpack": "^1.6.1",
+        "webpack-sources": "^1.4.1"
+      },
+      "dependencies": {
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        }
+      }
+    },
+    "webpack-bundle-analyzer": {
+      "version": "3.8.0",
+      "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.8.0.tgz",
+      "integrity": "sha512-PODQhAYVEourCcOuU+NiYI7WdR8QyELZGgPvB1y2tjbUpbmcQOt5Q7jEK+ttd5se0KSBKD9SXHCEozS++Wllmw==",
+      "dev": true,
+      "requires": {
+        "acorn": "^7.1.1",
+        "acorn-walk": "^7.1.1",
+        "bfj": "^6.1.1",
+        "chalk": "^2.4.1",
+        "commander": "^2.18.0",
+        "ejs": "^2.6.1",
+        "express": "^4.16.3",
+        "filesize": "^3.6.1",
+        "gzip-size": "^5.0.0",
+        "lodash": "^4.17.15",
+        "mkdirp": "^0.5.1",
+        "opener": "^1.5.1",
+        "ws": "^6.0.0"
+      },
+      "dependencies": {
+        "acorn": {
+          "version": "7.3.1",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
+          "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==",
+          "dev": true
+        }
+      }
+    },
+    "webpack-chain": {
+      "version": "6.5.0",
+      "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.0.tgz",
+      "integrity": "sha512-K4EHiEg4WlP4w1rKXKpYWvX9cfGBERHCGP06ETSNV62XUIfOUg1DDRQpxyBsFYxZLKc4YUAI3iiCIvWoliheGA==",
+      "dev": true,
+      "requires": {
+        "deepmerge": "^1.5.2",
+        "javascript-stringify": "^2.0.1"
+      }
+    },
+    "webpack-dev-middleware": {
+      "version": "3.7.2",
+      "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz",
+      "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==",
+      "dev": true,
+      "requires": {
+        "memory-fs": "^0.4.1",
+        "mime": "^2.4.4",
+        "mkdirp": "^0.5.1",
+        "range-parser": "^1.2.1",
+        "webpack-log": "^2.0.0"
+      }
+    },
+    "webpack-dev-server": {
+      "version": "3.11.0",
+      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz",
+      "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==",
+      "dev": true,
+      "requires": {
+        "ansi-html": "0.0.7",
+        "bonjour": "^3.5.0",
+        "chokidar": "^2.1.8",
+        "compression": "^1.7.4",
+        "connect-history-api-fallback": "^1.6.0",
+        "debug": "^4.1.1",
+        "del": "^4.1.1",
+        "express": "^4.17.1",
+        "html-entities": "^1.3.1",
+        "http-proxy-middleware": "0.19.1",
+        "import-local": "^2.0.0",
+        "internal-ip": "^4.3.0",
+        "ip": "^1.1.5",
+        "is-absolute-url": "^3.0.3",
+        "killable": "^1.0.1",
+        "loglevel": "^1.6.8",
+        "opn": "^5.5.0",
+        "p-retry": "^3.0.1",
+        "portfinder": "^1.0.26",
+        "schema-utils": "^1.0.0",
+        "selfsigned": "^1.10.7",
+        "semver": "^6.3.0",
+        "serve-index": "^1.9.1",
+        "sockjs": "0.3.20",
+        "sockjs-client": "1.4.0",
+        "spdy": "^4.0.2",
+        "strip-ansi": "^3.0.1",
+        "supports-color": "^6.1.0",
+        "url": "^0.11.0",
+        "webpack-dev-middleware": "^3.7.2",
+        "webpack-log": "^2.0.0",
+        "ws": "^6.2.1",
+        "yargs": "^13.3.2"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+          "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+          "dev": true
+        },
+        "anymatch": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+          "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+          "dev": true,
+          "requires": {
+            "micromatch": "^3.1.4",
+            "normalize-path": "^2.1.1"
+          },
+          "dependencies": {
+            "normalize-path": {
+              "version": "2.1.1",
+              "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+              "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+              "dev": true,
+              "requires": {
+                "remove-trailing-separator": "^1.0.1"
+              }
+            }
+          }
+        },
+        "binary-extensions": {
+          "version": "1.13.1",
+          "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+          "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+          "dev": true
+        },
+        "chokidar": {
+          "version": "2.1.8",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+          "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+          "dev": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.1",
+            "braces": "^2.3.2",
+            "fsevents": "^1.2.7",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.3",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "normalize-path": "^3.0.0",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.2.1",
+            "upath": "^1.1.1"
+          }
+        },
+        "cliui": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+          "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+          "dev": true,
+          "requires": {
+            "string-width": "^3.1.0",
+            "strip-ansi": "^5.2.0",
+            "wrap-ansi": "^5.1.0"
+          },
+          "dependencies": {
+            "ansi-regex": {
+              "version": "4.1.0",
+              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+              "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+              "dev": true
+            },
+            "strip-ansi": {
+              "version": "5.2.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+              "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^4.1.0"
+              }
+            }
+          }
+        },
+        "emoji-regex": {
+          "version": "7.0.3",
+          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+          "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+          "dev": true
+        },
+        "fsevents": {
+          "version": "1.2.13",
+          "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+          "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+          "dev": true,
+          "optional": true
+        },
+        "glob-parent": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+          "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+          "dev": true,
+          "requires": {
+            "is-glob": "^3.1.0",
+            "path-dirname": "^1.0.0"
+          },
+          "dependencies": {
+            "is-glob": {
+              "version": "3.1.0",
+              "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+              "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+              "dev": true,
+              "requires": {
+                "is-extglob": "^2.1.0"
+              }
+            }
+          }
+        },
+        "is-absolute-url": {
+          "version": "3.0.3",
+          "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
+          "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
+          "dev": true
+        },
+        "is-binary-path": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+          "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+          "dev": true,
+          "requires": {
+            "binary-extensions": "^1.0.0"
+          }
+        },
+        "is-fullwidth-code-point": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "dev": true
+        },
+        "readdirp": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+          "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+          "dev": true,
+          "requires": {
+            "graceful-fs": "^4.1.11",
+            "micromatch": "^3.1.10",
+            "readable-stream": "^2.0.2"
+          }
+        },
+        "schema-utils": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+          "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+          "dev": true,
+          "requires": {
+            "ajv": "^6.1.0",
+            "ajv-errors": "^1.0.0",
+            "ajv-keywords": "^3.1.0"
+          }
+        },
+        "semver": {
+          "version": "6.3.0",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+          "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+          "dev": true
+        },
+        "string-width": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+          "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+          "dev": true,
+          "requires": {
+            "emoji-regex": "^7.0.1",
+            "is-fullwidth-code-point": "^2.0.0",
+            "strip-ansi": "^5.1.0"
+          },
+          "dependencies": {
+            "ansi-regex": {
+              "version": "4.1.0",
+              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+              "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+              "dev": true
+            },
+            "strip-ansi": {
+              "version": "5.2.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+              "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^4.1.0"
+              }
+            }
+          }
+        },
+        "strip-ansi": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+          "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^2.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+          "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^3.0.0"
+          }
+        },
+        "wrap-ansi": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+          "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^3.2.0",
+            "string-width": "^3.0.0",
+            "strip-ansi": "^5.0.0"
+          },
+          "dependencies": {
+            "ansi-regex": {
+              "version": "4.1.0",
+              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+              "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+              "dev": true
+            },
+            "strip-ansi": {
+              "version": "5.2.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+              "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+              "dev": true,
+              "requires": {
+                "ansi-regex": "^4.1.0"
+              }
+            }
+          }
+        },
+        "yargs": {
+          "version": "13.3.2",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
+          "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+          "dev": true,
+          "requires": {
+            "cliui": "^5.0.0",
+            "find-up": "^3.0.0",
+            "get-caller-file": "^2.0.1",
+            "require-directory": "^2.1.1",
+            "require-main-filename": "^2.0.0",
+            "set-blocking": "^2.0.0",
+            "string-width": "^3.0.0",
+            "which-module": "^2.0.0",
+            "y18n": "^4.0.0",
+            "yargs-parser": "^13.1.2"
+          }
+        },
+        "yargs-parser": {
+          "version": "13.1.2",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+          "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+          "dev": true,
+          "requires": {
+            "camelcase": "^5.0.0",
+            "decamelize": "^1.2.0"
+          }
+        }
+      }
+    },
+    "webpack-log": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+      "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+      "dev": true,
+      "requires": {
+        "ansi-colors": "^3.0.0",
+        "uuid": "^3.3.2"
+      }
+    },
+    "webpack-merge": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz",
+      "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==",
+      "dev": true,
+      "requires": {
+        "lodash": "^4.17.15"
+      }
+    },
+    "webpack-sources": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+      "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+      "dev": true,
+      "requires": {
+        "source-list-map": "^2.0.0",
+        "source-map": "~0.6.1"
+      },
+      "dependencies": {
+        "source-map": {
+          "version": "0.6.1",
+          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+          "dev": true
+        }
+      }
+    },
+    "websocket-driver": {
+      "version": "0.6.5",
+      "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz",
+      "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=",
+      "dev": true,
+      "requires": {
+        "websocket-extensions": ">=0.1.1"
+      }
+    },
+    "websocket-extensions": {
+      "version": "0.1.4",
+      "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+      "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
+      "dev": true
+    },
+    "which": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+      "dev": true,
+      "requires": {
+        "isexe": "^2.0.0"
+      }
+    },
+    "which-module": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+      "dev": true
+    },
+    "word-wrap": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+      "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+      "dev": true
+    },
+    "worker-farm": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
+      "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
+      "dev": true,
+      "requires": {
+        "errno": "~0.1.7"
+      }
+    },
+    "wrap-ansi": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+      "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+          "dev": true,
+          "requires": {
+            "@types/color-name": "^1.1.1",
+            "color-convert": "^2.0.1"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true
+        }
+      }
+    },
+    "wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+      "dev": true
+    },
+    "write": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+      "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+      "dev": true,
+      "requires": {
+        "mkdirp": "^0.5.1"
+      }
+    },
+    "ws": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+      "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+      "dev": true,
+      "requires": {
+        "async-limiter": "~1.0.0"
+      }
+    },
+    "xtend": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+      "dev": true
+    },
+    "y18n": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+      "dev": true
+    },
+    "yallist": {
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+      "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+      "dev": true
+    },
+    "yargs": {
+      "version": "15.4.1",
+      "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+      "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+      "dev": true,
+      "requires": {
+        "cliui": "^6.0.0",
+        "decamelize": "^1.2.0",
+        "find-up": "^4.1.0",
+        "get-caller-file": "^2.0.1",
+        "require-directory": "^2.1.1",
+        "require-main-filename": "^2.0.0",
+        "set-blocking": "^2.0.0",
+        "string-width": "^4.2.0",
+        "which-module": "^2.0.0",
+        "y18n": "^4.0.0",
+        "yargs-parser": "^18.1.2"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^4.1.0"
+          }
+        },
+        "p-locate": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.2.0"
+          }
+        },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+          "dev": true
+        }
+      }
+    },
+    "yargs-parser": {
+      "version": "18.1.3",
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+      "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+      "dev": true,
+      "requires": {
+        "camelcase": "^5.0.0",
+        "decamelize": "^1.2.0"
+      }
+    },
+    "yorkie": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/yorkie/-/yorkie-2.0.0.tgz",
+      "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==",
+      "dev": true,
+      "requires": {
+        "execa": "^0.8.0",
+        "is-ci": "^1.0.10",
+        "normalize-path": "^1.0.0",
+        "strip-indent": "^2.0.0"
+      },
+      "dependencies": {
+        "cross-spawn": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+          "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+          "dev": true,
+          "requires": {
+            "lru-cache": "^4.0.1",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        },
+        "execa": {
+          "version": "0.8.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
+          "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^5.0.1",
+            "get-stream": "^3.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
+          }
+        },
+        "get-stream": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+          "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+          "dev": true
+        },
+        "lru-cache": {
+          "version": "4.1.5",
+          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+          "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+          "dev": true,
+          "requires": {
+            "pseudomap": "^1.0.2",
+            "yallist": "^2.1.2"
+          }
+        },
+        "normalize-path": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz",
+          "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=",
+          "dev": true
+        },
+        "yallist": {
+          "version": "2.1.2",
+          "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+          "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+          "dev": true
+        }
+      }
+    }
+  }
+}
diff --git a/scripts/system/inventory/package.json b/scripts/system/inventory/package.json
new file mode 100644
index 0000000000..8932bc1ecd
--- /dev/null
+++ b/scripts/system/inventory/package.json
@@ -0,0 +1,52 @@
+{
+  "name": "Inventory",
+  "version": "0.1.0",
+  "private": true,
+  "scripts": {
+    "serve": "vue-cli-service serve",
+    "build": "vue-cli-service build",
+    "lint": "vue-cli-service lint"
+  },
+  "dependencies": {
+    "@mdi/font": "^4.9.95",
+    "core-js": "^3.6.5",
+    "vue": "^2.6.11",
+    "vuedraggable": "^2.24.0",
+    "vuetify": "^2.3.4",
+    "vuex": "^3.5.1"
+  },
+  "devDependencies": {
+    "@vue/cli-plugin-babel": "^4.3.1",
+    "@vue/cli-plugin-eslint": "^4.3.1",
+    "@vue/cli-service": "^4.3.1",
+    "babel-eslint": "^10.1.0",
+    "eslint": "^6.7.2",
+    "eslint-plugin-vue": "^6.2.2",
+    "sass": "^1.26.10",
+    "sass-loader": "^8.0.0",
+    "vue-cli-plugin-vuetify": "^2.0.7",
+    "vue-template-compiler": "^2.6.11",
+    "vuetify-loader": "^1.6.0"
+  },
+  "eslintConfig": {
+    "root": true,
+    "env": {
+      "node": true
+    },
+    "extends": [
+      "plugin:vue/essential",
+      "eslint:recommended"
+    ],
+    "parserOptions": {
+      "parser": "babel-eslint"
+    },
+    "rules": {}
+  },
+  "browserslist": [
+    "> 1%",
+    "last 2 versions",
+    "not dead",
+    "ChromeAndroid > 55",
+    "Chrome > 55"
+  ]
+}
diff --git a/scripts/system/inventory/public/favicon.ico b/scripts/system/inventory/public/favicon.ico
new file mode 100644
index 0000000000..df36fcfb72
Binary files /dev/null and b/scripts/system/inventory/public/favicon.ico differ
diff --git a/scripts/system/inventory/public/index.html b/scripts/system/inventory/public/index.html
new file mode 100644
index 0000000000..51e1aa18f5
--- /dev/null
+++ b/scripts/system/inventory/public/index.html
@@ -0,0 +1,30 @@
+<!--
+//
+//  index.html
+//
+//  Created by kasenvr@gmail.com on 7 Apr 2020
+//  Copyright 2020 Vircadia and contributors.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+//
+-->
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="utf-8">
+        <meta http-equiv="X-UA-Compatible" content="IE=edge">
+        <meta name="viewport" content="width=device-width,initial-scale=1.0">
+        <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+        <title><%= htmlWebpackPlugin.options.title %></title>
+        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900">
+        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css">
+    </head>
+    <body>
+        <noscript>
+            <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
+        </noscript>
+        <div id="app"></div>
+        <!-- built files will be auto injected -->
+    </body>
+</html>
diff --git a/scripts/system/inventory/public/inventory-a-msg.svg b/scripts/system/inventory/public/inventory-a-msg.svg
new file mode 100644
index 0000000000..480a3fdd5d
--- /dev/null
+++ b/scripts/system/inventory/public/inventory-a-msg.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#0c0" d="M17,14H19V17H22V19H19V22H17V19H14V17H17V14M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.53C20.94,12.58 19.54,12 18,12A6,6 0 0,0 12,18C12,19.09 12.29,20.12 12.8,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z" /></svg>
diff --git a/scripts/system/inventory/public/inventory-a.svg b/scripts/system/inventory/public/inventory-a.svg
new file mode 100644
index 0000000000..c53d21722c
--- /dev/null
+++ b/scripts/system/inventory/public/inventory-a.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M16.5,12C19,12 21,14 21,16.5C21,17.38 20.75,18.21 20.31,18.9L23.39,22L22,23.39L18.88,20.32C18.19,20.75 17.37,21 16.5,21C14,21 12,19 12,16.5C12,14 14,12 16.5,12M16.5,14A2.5,2.5 0 0,0 14,16.5A2.5,2.5 0 0,0 16.5,19A2.5,2.5 0 0,0 19,16.5A2.5,2.5 0 0,0 16.5,14M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.03C20.85,11.21 18.82,10 16.5,10A6.5,6.5 0 0,0 10,16.5C10,18.25 10.69,19.83 11.81,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z" /></svg>
\ No newline at end of file
diff --git a/scripts/system/inventory/public/inventory-i-msg.svg b/scripts/system/inventory/public/inventory-i-msg.svg
new file mode 100644
index 0000000000..95856910fa
--- /dev/null
+++ b/scripts/system/inventory/public/inventory-i-msg.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="#0f0" d="M17,14H19V17H22V19H19V22H17V19H14V17H17V14M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.53C20.94,12.58 19.54,12 18,12A6,6 0 0,0 12,18C12,19.09 12.29,20.12 12.8,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z" /></svg>
diff --git a/scripts/system/inventory/public/inventory-i.svg b/scripts/system/inventory/public/inventory-i.svg
new file mode 100644
index 0000000000..c5ec3d8cc3
--- /dev/null
+++ b/scripts/system/inventory/public/inventory-i.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path fill="white" d="M16.5,12C19,12 21,14 21,16.5C21,17.38 20.75,18.21 20.31,18.9L23.39,22L22,23.39L18.88,20.32C18.19,20.75 17.37,21 16.5,21C14,21 12,19 12,16.5C12,14 14,12 16.5,12M16.5,14A2.5,2.5 0 0,0 14,16.5A2.5,2.5 0 0,0 16.5,19A2.5,2.5 0 0,0 19,16.5A2.5,2.5 0 0,0 16.5,14M10,2H14A2,2 0 0,1 16,4V6H20A2,2 0 0,1 22,8V13.03C20.85,11.21 18.82,10 16.5,10A6.5,6.5 0 0,0 10,16.5C10,18.25 10.69,19.83 11.81,21H4C2.89,21 2,20.1 2,19V8C2,6.89 2.89,6 4,6H8V4C8,2.89 8.89,2 10,2M14,6V4H10V6H14Z" /></svg>
diff --git a/scripts/system/inventory/public/inventory.js b/scripts/system/inventory/public/inventory.js
new file mode 100644
index 0000000000..12ecba1546
--- /dev/null
+++ b/scripts/system/inventory/public/inventory.js
@@ -0,0 +1,299 @@
+//
+//  inventory.js
+//
+//  Created by kasenvr@gmail.com on 2 Apr 2020
+//  Copyright 2020 Vircadia and contributors.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+//
+
+/* global AvatarList Clipboard console Controller Entities location Messages MyAvatar Script ScriptDiscoveryService Settings
+Tablet Vec3 Window */
+
+(function () { // BEGIN LOCAL_SCOPE
+    "use strict";
+    var AppUi = Script.require('appUi');
+    var ui;
+    var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system");
+
+    // VARIABLES
+    var inventoryDataSettingString = "inventoryApp.data";
+    var inventoryData;
+
+    var inventorySettingsString = "inventoryApp.settings";
+    var inventorySettings;
+
+    var RECEIVING_ITEM_QUEUE_LIMIT = 5;
+    var receivingItemQueue = [];
+
+    var NEARBY_USERS_SEARCH_RADIUS = 25;
+
+
+    // APP EVENT AND MESSAGING ROUTING
+
+    function onWebAppEventReceived(event) {
+        var eventJSON = JSON.parse(event);
+        if (eventJSON.app === "inventory") { // This is our web app!
+            // print("inventory.js received a web event: " + event);
+            
+            if (eventJSON.command === "ready") {
+                initializeInventoryApp();
+            }
+            
+            if (eventJSON.command === "web-to-script-inventory") {
+                receiveInventory(eventJSON.data);
+            }
+            
+            if (eventJSON.command === "web-to-script-settings") {
+                receiveSettings(eventJSON.data);
+            }
+            
+            if (eventJSON.command === "use-item") {
+                useItem(eventJSON.data);
+            }
+            
+            if (eventJSON.command === "share-item") {
+                shareItem(eventJSON.data);
+            }
+            
+            if (eventJSON.command === "web-to-script-request-nearby-users") {
+                sendNearbyUsers();
+            }
+            
+            if (eventJSON.command === "web-to-script-request-receiving-item-queue") {
+                sendReceivingItemQueue();
+            }
+            
+            if (eventJSON.command === "web-to-script-update-receiving-item-queue") {
+                updateReceivingItemQueue(eventJSON.data);
+            }
+            
+        }
+    }
+
+    tablet.webEventReceived.connect(onWebAppEventReceived);
+
+    function sendToWeb(command, data) {
+        var dataToSend = {
+            "app": "inventory",
+            "command": command,
+            "data": data
+        };
+        
+        tablet.emitScriptEvent(JSON.stringify(dataToSend));
+    }
+
+    var inventoryMessagesChannel = "com.vircadia.inventory";
+
+    function onMessageReceived(channel, message, sender, localOnly) {
+        if (channel === inventoryMessagesChannel) {
+            var messageJSON = JSON.parse(message);
+            // Window.alert("Passed 0 " + messageJSON.recipient + " vs " + MyAvatar.sessionUUID);
+            if (messageJSON.command === "share-item" 
+                && messageJSON.recipient === MyAvatar.sessionUUID) { // We are receiving an item.
+                // Window.alert("Passed 1 " + messageJSON.recipient + " vs " + MyAvatar.sessionUUID);
+                pushReceivedItemToQueue(sender, messageJSON.type, messageJSON.name, messageJSON.url);
+            } 
+        }
+        // print("Message received:");
+        // print("- channel: " + channel);
+        // print("- message: " + message);
+        // print("- sender: " + sender);
+        // print("- localOnly: " + localOnly);
+    }
+
+    function sendMessage(dataToSend) {
+        Messages.sendMessage(inventoryMessagesChannel, JSON.stringify(dataToSend));
+    }
+
+    // END APP EVENT AND MESSAGING ROUTING
+
+    // SEND AND RECEIVE INVENTORY STATE
+
+    function receiveInventory(receivedInventoryData) {
+        inventoryData = receivedInventoryData;
+        saveInventory();
+    }
+
+    function sendInventory() {
+        sendToWeb("script-to-web-inventory", inventoryData);
+    }
+
+    // END SEND AND RECEIVE INVENTORY STATE
+
+    // SEND AND RECEIVE SETTINGS STATE
+
+    function receiveSettings(receivedSettingsData) {
+        inventorySettings = receivedSettingsData;
+        saveSettings();
+    }
+
+    function sendSettings() {
+        sendToWeb("script-to-web-settings", inventorySettings);
+    }
+
+    // END SEND AND RECEIVE SETTINGS STATE
+
+    function saveInventory() {
+        Settings.setValue(inventoryDataSettingString, inventoryData);
+    }
+
+    function loadInventory() {
+        inventoryData = Settings.getValue(inventoryDataSettingString);
+    }
+
+    function saveSettings() {
+        Settings.setValue(inventorySettingsString, inventorySettings);
+    }
+
+    function loadSettings() {
+        inventorySettings = Settings.getValue(inventorySettingsString);
+    }
+
+    function pushReceivedItemToQueue(senderUUID, type, name, url) {
+        console.info("Receiving an item:", name, "from:", senderUUID);
+        var getAvatarData = AvatarList.getAvatar(senderUUID);
+        var senderName = getAvatarData.sessionDisplayName;
+        var senderDistance = Vec3.distance(MyAvatar.position, getAvatarData.position);
+        
+        var packageRequest = {
+            "senderUUID": senderUUID,
+            "senderName": senderName,
+            "senderDistance": senderDistance,
+            "data": {
+                "type": type,
+                "name": name,
+                "url": url
+            }
+        };
+        
+        if (receivingItemQueue.length === RECEIVING_ITEM_QUEUE_LIMIT) {
+            receivingItemQueue = receivingItemQueue.slice(1, RECEIVING_ITEM_QUEUE_LIMIT);
+        }
+        
+        receivingItemQueue.push(packageRequest);
+        ui.messagesWaiting(receivingItemQueue.length > 0);
+    }
+
+    function sendReceivingItemQueue() {
+        sendToWeb("script-to-web-receiving-item-queue", receivingItemQueue);
+    }
+
+    function updateReceivingItemQueue(data) {
+        receivingItemQueue = data;
+        ui.messagesWaiting(receivingItemQueue.length > 0);
+    }
+
+    function sendNearbyUsers() {
+        var nearbyUsers = AvatarList.getAvatarsInRange(MyAvatar.position, NEARBY_USERS_SEARCH_RADIUS);
+        var nearbyUsersToSend = [];
+        
+        nearbyUsers.forEach(function(user) {
+            var objectToWrite;
+            var aviDetails = AvatarList.getAvatar(user);
+            var aviName = aviDetails.displayName;
+            var aviDistance = Vec3.distance(MyAvatar.position, aviDetails.position);
+            // Window.alert("aviName" + aviName + "user" + user + "MyAvatar.sessionUUID" + MyAvatar.sessionUUID);
+            if (user !== MyAvatar.sessionUUID 
+                || Controller.getValue(Controller.Hardware.Keyboard.Shift)) { // Don't add ourselves to the list!
+                objectToWrite = { "name": aviName, "distance": aviDistance, "uuid": user };
+                nearbyUsersToSend.push(objectToWrite);
+            }        
+        });
+
+        sendToWeb("script-to-web-nearby-users", nearbyUsersToSend);
+    }
+
+    function useItem(item) {
+        
+        //TODO: Add animation support for avatars...?
+        
+        // Convert the item.type before checking it...
+        item.type = item.type.toUpperCase();
+        
+        // Depending on the type, we decide how to load this item.
+        if (item.type === "SCRIPT") {
+            ScriptDiscoveryService.loadScript(item.url, true, false, false, true, false);
+        }
+        
+        if (item.type === "MODEL") {
+            Entities.addEntity({
+                type: "Model",
+                position: Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0, z: -1.5 })),
+                rotation: MyAvatar.orientation,
+                modelURL: item.url,
+                collisionless: true
+            });
+        }
+        
+        if (item.type === "AVATAR") {
+            MyAvatar.useFullAvatarURL(item.url);
+        }
+        
+        if (item.type === "PLACE") {
+            location.handleLookupString(item.url, true);
+        }
+        
+        if (item.type === "JSON") {
+            var jsonToLoad = item.url;
+            if (jsonToLoad) {
+                if (Clipboard.importEntities(jsonToLoad)) {
+                    Clipboard.pasteEntities(
+                        Vec3.sum(
+                            MyAvatar.position,
+                            Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0, z: -1.5 })
+                        )
+                    );
+                }
+            }
+        }
+        
+        if (item.type === "UNKNOWN") {
+            // We don't know how to handle this yet.
+            Window.alert("Unknown item type, unable to use.");
+        }
+    }
+
+    function shareItem(data) {
+        data.command = "share-item";
+        sendMessage(data);
+    }
+
+    function initializeInventoryApp() {
+        sendSettings();
+        sendInventory();
+        sendReceivingItemQueue();
+    }
+
+    function onOpened() {
+    }
+
+    function onClosed() {
+    }
+
+    function startup() {
+        
+        loadInventory();
+        loadSettings();
+        
+        Messages.messageReceived.connect(onMessageReceived);
+        Messages.subscribe(inventoryMessagesChannel);
+        
+        ui = new AppUi({
+            buttonName: "INVENTORY",
+            home: Script.resolvePath("index.html"),
+            graphicsDirectory: Script.resolvePath("./"), // Where your button icons are located
+            onOpened: onOpened,
+            onClosed: onClosed
+        });
+    }
+
+    startup();
+
+    Script.scriptEnding.connect(function () {
+        Messages.messageReceived.disconnect(onMessageReceived);
+        Messages.unsubscribe(inventoryMessagesChannel);
+    });
+
+}()); // END LOCAL_SCOPE
\ No newline at end of file
diff --git a/scripts/system/inventory/src/App.vue b/scripts/system/inventory/src/App.vue
new file mode 100644
index 0000000000..d93815d373
--- /dev/null
+++ b/scripts/system/inventory/src/App.vue
@@ -0,0 +1,1428 @@
+<!--
+//
+//  App.vue
+//
+//  Created by kasenvr@gmail.com on 7 Apr 2020
+//  Copyright 2020 Vircadia and contributors.
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+//
+-->
+
+<style>
+    @import './assets/styles/styles.css';
+</style>
+
+<template>
+    <v-app>
+        <v-app-bar
+            app
+        >
+            <v-app-bar-nav-icon @click="drawer = true"></v-app-bar-nav-icon>
+
+            <v-toolbar-title>Inventory</v-toolbar-title>
+            
+            <v-spacer></v-spacer>
+            
+            <v-badge
+                bordered
+                color="primary"
+                :value="receivingItemQueueLength"
+                :content="receivingItemQueueLength"
+                overlap
+                class="mx-5"
+            >
+                <v-btn
+                    small 
+                    color="red" 
+                    fab 
+                    @click="receivingItemsDialog.show = true; sendAppMessage('web-to-script-request-receiving-item-queue', '')"
+                >
+                    <v-icon>
+                        mdi-tray-full
+                    </v-icon>
+                </v-btn>
+            </v-badge>
+            
+            <v-menu bottom left>
+                <template v-slot:activator="{ on }">
+                    <v-btn 
+                        large
+                        color="primary"
+                        v-on="on"
+                    >
+                        <h4>Sort</h4>
+                    </v-btn>
+                </template>
+
+                <v-list color="grey darken-3">
+                    <v-list-item
+                        @click="sortTopInventory('az')"
+                    >
+                        <v-list-item-title>A-Z</v-list-item-title>
+                        <v-list-item-action>
+                            <v-icon large>mdi-sort-alphabetical-ascending</v-icon>
+                        </v-list-item-action>
+                    </v-list-item>
+                    <v-list-item
+                        @click="sortTopInventory('za')"
+                    >
+                        <v-list-item-title>Z-A</v-list-item-title>
+                        <v-list-item-action>
+                            <v-icon large>mdi-sort-alphabetical-descending</v-icon>
+                        </v-list-item-action>
+                    </v-list-item>
+                </v-list>
+            </v-menu>
+          
+        </v-app-bar>
+
+        <v-navigation-drawer
+            v-model="drawer"
+            fixed
+            temporary
+        >
+            <v-list
+                nav
+                class="pt-5"
+            >
+                <v-list-item-group>
+
+                    <v-slider
+                        v-model="settings.displayDensity.size"
+                        :tick-labels="settings.displayDensity.labels"
+                        :max="2"
+                        step="1"
+                        ticks="always"
+                        tick-size="3"
+                    ></v-slider>
+
+                    <v-list-item @click="addDialogStore.show = true; getFolderList('add');">
+                        <v-list-item-icon>
+                            <v-icon>mdi-plus</v-icon>
+                        </v-list-item-icon>
+                        <v-list-item-title>Add Item</v-list-item-title>
+                    </v-list-item>
+
+                    <v-list-item @click="createFolderDialogStore.show = true">
+                        <v-list-item-icon>
+                            <v-icon>mdi-folder-plus</v-icon>
+                        </v-list-item-icon>
+                        <v-list-item-title>Create Folder</v-list-item-title>
+                    </v-list-item>
+                                    
+                    <p class="app-version">Version {{appVersion}}</p>
+
+                </v-list-item-group>
+            </v-list>
+        </v-navigation-drawer>
+
+        <v-content>
+            <v-container fluid>
+                <v-col
+                    cols="12"
+                    sm="6"
+                    md="4"
+                    lg="3"
+                    class="py-1 column-item"
+                >
+                    <itemiterator :itemsForIterator="this.$store.state.items"></itemiterator>
+                </v-col>
+            </v-container>
+        </v-content>
+
+        <v-dialog
+            v-model="receivingItemsDialog.show"
+            max-width="380"
+        >
+            <v-card>
+                <v-card-title class="headline">Item Inbox</v-card-title>
+
+                <v-card-text v-show="receivingItemQueueLength > 0">
+                    A list of all items being received currently.
+                </v-card-text>
+                
+                <v-card-text v-show="receivingItemQueueLength === 0">
+                    There are currently no items in your inbox.
+                </v-card-text>
+
+                <v-card-actions>
+                    <v-list
+                        nav
+                        class="pt-5"
+                        max-width="370"
+                        v-show="receivingItemQueueLength > 0"
+                    >
+
+                        <v-list-item
+                            two-line
+                            v-for="item in receivingItemsDialog.data.receivingItemQueue" 
+                            v-bind:key="item.data.uuid"
+                        >
+                            <v-list-item-content>
+                                <v-list-item-title>{{item.data.name}}</v-list-item-title>
+                                <v-list-item-subtitle>Sent by {{item.senderName}}</v-list-item-subtitle>
+                                <v-list-item-subtitle>Distance: {{item.senderDistance.toFixed(1)}}m</v-list-item-subtitle>
+                            </v-list-item-content>
+                                <v-btn color="success" @click="acceptReceivingItem(item)">
+                                    <v-icon>mdi-plus</v-icon>
+                                </v-btn>
+                                <v-btn text color="red" @click="removeReceivingItem(item.data.uuid)">
+                                    <v-icon>mdi-minus</v-icon>
+                                </v-btn>
+                        </v-list-item>
+
+                    </v-list>
+                </v-card-actions>
+            </v-card>
+        </v-dialog>
+
+        <v-dialog
+          v-model="removeDialogStore.show"
+          max-width="290"
+        >
+          <v-card>
+              <v-card-title class="headline">Remove Item</v-card-title>
+
+              <v-card-text>
+                  Are you sure you want to delete this item from your inventory?
+              </v-card-text>
+
+              <v-card-actions>
+
+                  <v-btn
+                      color="blue"
+                      class="px-3"
+                      @click="removeDialogStore.show = false"
+                  >
+                      No
+                  </v-btn>
+                  
+                  <v-spacer></v-spacer>
+                  
+                  <v-btn
+                      color="red"
+                      class="px-3"                    
+                      @click="removeDialogStore.show = false; removeItem($store.state.removeDialog.uuid);"
+                  >
+                      Yes
+                  </v-btn>
+                  
+              </v-card-actions>
+              
+          </v-card>
+        </v-dialog>
+        
+        <v-dialog
+          v-model="removeFolderDialogStore.show"
+          max-width="290"
+        >
+          <v-card>
+              <v-card-title class="headline">Remove Folder</v-card-title>
+
+              <v-card-text>
+                  Are you sure you want to delete this folder <b>and</b> all items within from your inventory?
+              </v-card-text>
+
+              <v-card-actions>
+
+                  <v-btn
+                      color="blue"
+                      class="px-3"
+                      @click="removeFolderDialogStore.show = false"
+                  >
+                      No
+                  </v-btn>
+                  
+                  <v-spacer></v-spacer>
+                  
+                  <v-btn
+                      color="red"
+                      class="px-3"                    
+                      @click="removeFolderDialogStore.show = false; removeFolder($store.state.removeFolderDialog.uuid);"
+                  >
+                      Yes
+                  </v-btn>
+                  
+              </v-card-actions>
+              
+          </v-card>
+        </v-dialog>
+
+        <v-dialog
+          v-model="editDialogStore.show"
+          max-width="380"
+        >
+          <v-card>
+              <v-card-title class="headline">Edit Item</v-card-title>
+              
+              <v-form
+                  ref="editForm"
+                  v-model="editDialogStore.valid"
+                  :lazy-validation="false"
+              >
+                    
+                    <v-select
+                        :items="$store.state.supportedItemTypes"
+                        class="my-2"
+                        v-model="editDialogStore.data.type"
+                        :rules="[v => !!v || 'Type is required.']"
+                        label="Item Type"
+                        outlined
+                    ></v-select>
+
+                    <v-text-field
+                        class="px-2"
+                        label="Name"
+                        v-model="editDialogStore.data.name"
+                        :rules="[v => !!v || 'Name is required.']"
+                        required
+                    ></v-text-field>
+
+                    <v-select
+                        :items="folderList"
+                        item-text="name"
+                        item-value="uuid"
+                        class="my-2"
+                        v-model="editDialogStore.data.folder"
+                        label="Folder"
+                        outlined
+                    ></v-select>
+
+                    <v-text-field
+                        class="px-2"
+                        label="URL"
+                        v-model="editDialogStore.data.url"
+                        :rules="[v => !!v || 'URL is required.']"
+                        required
+                    ></v-text-field>
+
+                  <v-card-actions>
+
+                      <v-btn
+                          color="red"
+                          class="px-3"
+                          @click="editDialogStore.show = false"
+                      >
+                          Cancel
+                      </v-btn>
+                      
+                      <v-spacer></v-spacer>
+                      
+                      <v-btn
+                          color="blue"
+                          class="px-3"       
+                          :disabled="!$store.state.editDialog.valid"             
+                          @click="editDialogStore.show = false; editItem($store.state.editDialog.uuid);"
+                      >
+                          Done
+                      </v-btn>
+                  
+                  </v-card-actions>
+                  
+              </v-form>
+
+          </v-card>
+        </v-dialog>
+        
+        <v-dialog
+          v-model="editFolderDialogStore.show"
+          max-width="380"
+        >
+          <v-card>
+              <v-card-title class="headline">Edit Folder</v-card-title>
+              
+              <v-form
+                  ref="editFolderForm"
+                  v-model="editFolderDialogStore.valid"
+                  :lazy-validation="false"
+              >
+
+                  <v-text-field
+                      class="px-2"
+                      label="Name"
+                      v-model="editFolderDialogStore.data.name"
+                      :rules="[v => !!v || 'Name is required.']"
+                      required
+                  ></v-text-field>
+                  
+                  <v-select
+                      :items="folderList"
+                      item-text="name"
+                      item-value="uuid"
+                      class="my-2"
+                      v-model="editFolderDialogStore.data.folder"
+                      label="Parent Folder"
+                      outlined
+                  ></v-select>
+
+                  <v-card-actions>
+
+                      <v-btn
+                          color="red"
+                          class="px-3"
+                          @click="editFolderDialogStore.show = false"
+                      >
+                          Cancel
+                      </v-btn>
+                      
+                      <v-spacer></v-spacer>
+                      
+                      <v-btn
+                          color="blue"
+                          class="px-3"       
+                          :disabled="!$store.state.editFolderDialog.valid"             
+                          @click="editFolderDialogStore.show = false; editFolder($store.state.editFolderDialog.data.uuid);"
+                      >
+                          Done
+                      </v-btn>
+                  
+                  </v-card-actions>
+                  
+              </v-form>
+
+          </v-card>
+        </v-dialog>
+
+        <v-dialog
+          v-model="createFolderDialogStore.show"
+          max-width="380"
+        >
+          <v-card>
+              <v-card-title class="headline">Create Folder</v-card-title>
+              
+              <v-card-text>
+                  Enter the name of the folder.
+              </v-card-text>
+              
+              <v-form
+                  ref="createFolderForm"
+                  v-model="createFolderDialogStore.valid"
+                  :lazy-validation="false"
+              >
+
+                  <v-text-field
+                      class="px-2"
+                      label="Name"
+                      v-model="createFolderDialogStore.data.name"
+                      :rules="[v => !!v || 'Name is required.']"
+                      required
+                  ></v-text-field>
+
+                  <v-card-actions>
+
+                      <v-btn
+                          color="red"
+                          class="px-3"
+                          @click="createFolderDialogStore.show = false"
+                      >
+                          Cancel
+                      </v-btn>
+                      
+                      <v-spacer></v-spacer>
+                      
+                      <v-btn
+                          color="blue"
+                          class="px-3"
+                          :disabled="!$store.state.createFolderDialog.valid"
+                          @click="createFolderDialogStore.show = false; createFolder($store.state.createFolderDialog.data.name)"
+                      >
+                          Create
+                      </v-btn>
+                      
+                  </v-card-actions>
+              
+              </v-form>
+          </v-card>
+        </v-dialog>
+
+        <v-dialog
+          v-model="addDialogStore.show"
+          max-width="380"
+        >
+          <v-card>
+              <v-card-title class="headline">Add Item</v-card-title>
+             
+              
+              <v-form
+                  ref="addForm"
+                  v-model="addDialogStore.valid"
+                  :lazy-validation="false"
+              >
+              
+                  <v-card-text>
+                      Enter the name of the item.
+                  </v-card-text>
+
+                  <v-text-field
+                      class="px-2"
+                      label="Name"
+                      v-model="addDialogStore.data.name"
+                      :rules="[v => !!v || 'Name is required.']"
+                      required
+                  ></v-text-field>
+                  
+                  <v-card-text>
+                      Select a folder (optional).
+                  </v-card-text>
+                  
+                  <v-select
+                      class="my-2"
+                      :items="folderList"
+                      v-model="addDialogStore.data.folder"
+                      label="Folder"
+                      outlined
+                      item-text="name"
+                      item-value="uuid"
+                  ></v-select>
+
+                  <v-card-text>
+                      Enter the URL of the item.
+                  </v-card-text>
+
+                  <v-text-field
+                      class="px-2"
+                      label="URL"
+                      v-model="addDialogStore.data.url"
+                      :rules="[v => !!v || 'URL is required.']"
+                      required
+                  ></v-text-field>
+
+                  <v-card-actions>
+
+                      <v-btn
+                          color="red"
+                          class="px-3"
+                          @click="addDialogStore.show = false"
+                      >
+                          Cancel
+                      </v-btn>
+                      
+                      <v-spacer></v-spacer>
+                      
+                      <v-btn
+                          color="blue"
+                          class="px-3"
+                          :disabled="!$store.state.addDialog.valid"
+                          @click="addDialogStore.show = false; addItem($store.state.addDialog.data.name, $store.state.addDialog.data.folder, $store.state.addDialog.data.url)"
+                      >
+                          Add
+                      </v-btn>
+                      
+                  </v-card-actions>
+              
+              </v-form>
+          </v-card>
+        </v-dialog>
+
+        <v-dialog
+          v-model="receiveDialogStore.show"
+          max-width="380"
+          persistent
+        >
+          <v-card>
+              <v-card-title class="headline">Receiving Item</v-card-title>
+
+              <v-card-text>
+                  <b>{{$store.state.receiveDialog.data.userDisplayName}} sent you an item.</b> <br />
+                  <i class="caption">User UUID: {{$store.state.receiveDialog.data.userUUID}}</i>
+              </v-card-text>
+              
+              <v-form
+                  ref="receiveForm"
+                  v-model="receiveDialogStore.valid"
+                  :lazy-validation="false"
+              >
+              
+                  <v-text-field
+                      class="px-2"
+                      label="Type"
+                      :rules="[v => !!v || 'Type is required.']"
+                      v-model="receiveDialogStore.data.type"
+                      required
+                  ></v-text-field>
+                  
+                  <v-text-field
+                      class="px-2"
+                      label="Name"
+                      :rules="[v => !!v || 'Name is required.']"
+                      v-model="receiveDialogStore.data.name"
+                      required
+                  ></v-text-field>
+                  
+                  <v-card-text>
+                      Select a folder (optional).
+                  </v-card-text>
+                  
+                  <v-select
+                      class="my-2"
+                      :items="folderList"
+                      v-model="receiveDialogStore.data.folder"
+                      label="Folder"
+                      outlined
+                      item-text="name"
+                      item-value="uuid"
+                  ></v-select>
+
+                  <v-text-field
+                      class="px-2"
+                      label="URL"
+                      :rules="[v => !!v || 'URL is required.']"
+                      v-model="receiveDialogStore.data.url"
+                      required
+                  ></v-text-field>
+
+                  <v-card-actions>
+
+                      <v-btn
+                          color="red"
+                          class="px-3"
+                          @click="receiveDialogStore.show = false"
+                      >
+                          Reject
+                      </v-btn>
+                      
+                      <v-spacer></v-spacer>
+                      
+                      <v-btn
+                          color="blue"
+                          class="px-3"
+                          :disabled="!$store.state.receiveDialog.valid"
+                          @click="receiveDialogStore.show = false; confirmItemReceipt();"
+                      >
+                          Accept
+                      </v-btn>
+                      
+                  </v-card-actions>
+                  
+              </v-form>
+          </v-card>
+        </v-dialog>
+
+        <v-dialog
+          v-model="shareDialogStore.show"
+          max-width="380"
+          persistent
+        >
+          <v-card>
+              <v-card-title class="headline">Share Item</v-card-title>
+
+              <v-card-text>
+                  Select a user to send this item to.
+              </v-card-text>
+              
+              <v-form
+                  ref="shareForm"
+                  v-model="shareDialogStore.valid"
+                  :lazy-validation="false"
+                  class="px-2"
+              >
+              
+                  <!-- <v-list>
+                      <v-list-item-group v-model="shareDialogStore.data.recipient" color="primary">
+                          <v-list-item
+                              v-for="user in nearbyUsers"
+                              v-bind:key="user.uuid"
+                          >
+                              <v-list-item-content>
+                                  <v-list-item-title v-text="user.name"></v-list-item-title>
+                              </v-list-item-content>
+                          </v-list-item>
+                      </v-list-item-group>
+                  </v-list> -->
+                  
+                <v-select
+                    v-model="shareDialogStore.data.recipient"
+                    :items="nearbyUsers"
+                    item-value="uuid"
+                    :rules="[v => !!v || 'A recipient is required']"
+                    label="Nearby Users"
+                    required
+                >
+                    <template v-slot:item="data">
+                        <i style="color: grey; margin-right: 5px;">{{data.item.distance.toFixed(1)}}m</i> {{data.item.name}}
+                    </template>
+                    <template v-slot:selection="data">
+                        <i style="color: grey; margin-right: 5px;">{{data.item.distance.toFixed(1)}}m</i> {{data.item.name}}
+                    </template>
+                </v-select>
+
+                  <v-text-field
+                      class="px-2"
+                      label="URL"
+                      :rules="[v => !!v || 'URL is required.']"
+                      v-model="shareDialogStore.data.url"
+                      required
+                  ></v-text-field>
+
+                  <v-card-actions>
+
+                      <v-btn
+                          color="red"
+                          class="px-3"
+                          @click="shareDialogStore.show = false"
+                      >
+                          Cancel
+                      </v-btn>
+                      
+                      <v-spacer></v-spacer>
+                      
+                      <v-btn
+                          color="blue"
+                          class="px-3"
+                          :disabled="!$store.state.shareDialog.valid"
+                          @click="shareDialogStore.show = false; shareItem($store.state.shareDialog.data.uuid);"
+                      >
+                          Send
+                      </v-btn>
+                      
+                  </v-card-actions>
+                  
+              </v-form>
+          </v-card>
+        </v-dialog>
+    </v-app>
+</template>
+
+<script>
+
+var vue_this;
+
+function browserDevelopment() {
+    if (typeof EventBridge !== 'undefined') {
+        return false; // We are in Vircadia.
+    } else {
+        return true; // We are in the browser, probably for development purposes.
+    }
+}
+
+if (!browserDevelopment()) {
+    // eslint-disable-next-line
+    EventBridge.scriptEventReceived.connect(function(receivedCommand) {
+        receivedCommand = JSON.parse(receivedCommand);
+        // alert("RECEIVED COMMAND:" + receivedCommand.command)
+        if (receivedCommand.app === "inventory") {
+            // We route the data based on the command given.
+            switch (receivedCommand.command) {
+                case 'script-to-web-inventory':
+                    // alert("INVENTORY RECEIVED ON APP:" + JSON.stringify(receivedCommand.data));
+                    vue_this.receiveInventory(receivedCommand.data);
+                    break;
+                case 'script-to-web-receiving-item-queue':
+                    // alert("RECEIVING ITEM QUEUE:" + JSON.stringify(receivedCommand.data));
+                    vue_this.receiveReceivingItemQueue(receivedCommand.data);
+                    break;
+                case 'script-to-web-nearby-users':
+                    // alert("RECEIVING NEARBY USERS:" + JSON.stringify(receivedCommand.data));
+                    vue_this.receiveNearbyUsers(receivedCommand.data);
+                    break;
+                case 'script-to-web-settings':
+                    // alert("RECEIVING SETTINGS:" + JSON.stringify(receivedCommand.data));
+                    vue_this.receiveSettings(receivedCommand.data);
+                    break;
+            }
+        }
+    });
+    
+}
+
+import { EventBus } from './plugins/event-bus.js';
+
+EventBus.$on('use-item', data => {
+    vue_this.useItem(data.type, data.url);
+});
+
+import itemiterator from './components/ItemIterator'
+
+export default {
+    name: 'App',
+    components: {
+        itemiterator
+    },
+    data: () => ({
+        receivingItemsDialog: {
+            show: false,
+            data: {
+                receivingItemQueue: [
+                    {
+                        "senderUUID": "SENDERUUIDLOL",
+                        "senderName": "WHOISTHIS1",
+                        "senderDistance": 2.5,
+                        "data": {
+                            "type": "script",
+                            "name": "This Is A Real Script",
+                            "url": "https://butwhythough.com/lol.js",
+                            "uuid": "This Is A Real Script",
+                        }
+                    },
+                    {
+                        "senderUUID": "TEST2SENDERUUID",
+                        "senderName": "WHOTHISBE2",
+                        "senderDistance": 1.22,
+                        "data": {
+                            "type": "script",
+                            "name": "REALLYLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",
+                            "url": "https://butwhythough.com/looool.js",
+                            "uuid": "REALLYLONNGGGGGGGG",
+                        }
+                    }
+                ]
+            }
+        },
+        folderList: [],
+        recursiveFolderHoldingList: [],
+        nearbyUsers: [
+            {
+                name: "Who",
+                uuid: "{4131531653652562}",
+                distance: 5,
+            },
+            {
+                name: "Is",
+                uuid: "{4131531653756756576543652562}",
+                distance: 3.23,
+            },
+            {
+                name: "This?",
+                uuid: "{4131531676575653652562}",
+                distance: 1,
+            }
+        ],
+        sortBy: "alphabetical",
+        settings: {
+            "displayDensity": {
+                "size": 1,
+                "labels": [
+                    "List",
+                    "Compact",
+                    "Large",
+                ]
+            }
+        },
+        appVersion: "2.0.2",
+        darkTheme: true,
+        drawer: false,
+        disabledProp: true
+    }),
+    created: function () {
+        vue_this = this;
+        this.$vuetify.theme.dark = this.darkTheme;
+                
+        this.sendAppMessage("ready", "");
+    },
+    methods: {
+        createUUID: function() {
+            // http://www.ietf.org/rfc/rfc4122.txt
+            var s = [];
+            var hexDigits = "0123456789abcdef";
+            for (var i = 0; i < 36; i++) {
+                s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
+            }
+            s[14] = "4";  // bits 12-15 of the time_hi_and_version field to 0010
+            s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);  // bits 6-7 of the clock_seq_hi_and_reserved to 01
+            s[8] = s[13] = s[18] = s[23] = "-";
+
+            var uuid = s.join("");
+            return uuid;
+        },
+        pushToItems: function(type, name, folder, url, uuid) {
+            var uuidToUse;
+
+            if (uuid != null) {
+                uuidToUse = uuid;
+            } else {
+                uuidToUse = this.createUUID();
+            }
+            
+            this.$store.commit('pushToItems', {
+                "type": type,
+                "name": name,
+                "folder": folder,
+                "url": url,
+                "uuid": uuidToUse
+            });
+            
+            if (folder !== null && folder !== "No Folder") {
+                this.moveItem(uuidToUse, folder);
+            }
+        },
+        checkFileType: function(fileType) {
+            var detectedItemType = null;
+            
+            switch (fileType) {
+                // Model Cases
+                case ".fbx":
+                    detectedItemType = "MODEL";
+                    break;
+                case ".gltf":
+                    detectedItemType = "MODEL";
+                    break;
+                case ".glb":
+                    detectedItemType = "MODEL";
+                    break;
+                // Script Cases
+                case ".js":
+                    detectedItemType = "SCRIPT";
+                    break;
+                // Avatar Cases
+                case ".fst":
+                    detectedItemType = "AVATAR";
+                    break;
+                // JSON Cases
+                case ".json":
+                    detectedItemType = "JSON";
+                    break;
+                default:
+                    detectedItemType = "UNKNOWN";
+            }
+            
+            return detectedItemType;
+        },
+        checkItemType: function(itemType) {
+            var detectedItemType = null;
+            itemType = itemType.toUpperCase();
+            
+            this.$store.state.supportedItemTypes.forEach(function (itemTypeInList) {
+                if (itemTypeInList === itemType) {
+                    detectedItemType = itemTypeInList;
+                }
+            });
+            
+            if (detectedItemType === null) {
+                // This is not a known item type...
+                detectedItemType = "UNKNOWN";
+            }
+            
+            return detectedItemType;
+        },
+        createFolder: function(name) {
+            this.$store.commit('pushToItems', {
+                "name": name,
+                "folder": "No Folder",
+                "items": [],
+                "uuid": this.createUUID()
+            });
+            
+            this.createFolderDialogStore.data.name = null;
+        },
+        editFolder: function(uuid) {
+            var findFolder = this.searchForItem(uuid);
+            
+            if (findFolder) {
+                findFolder.returnedItem.name = this.$store.state.editFolderDialog.data.name;
+                
+                if (this.$store.state.editFolderDialog.data.folder !== null && this.$store.state.editFolderDialog.data.folder !== "No Change") {
+                    if (findFolder.returnedItem.folder !== this.$store.state.editFolderDialog.data.folder && this.$store.state.editFolderDialog.data.folder !== "No Folder") {
+                        this.moveFolder(uuid, this.$store.state.editFolderDialog.data.folder);
+                    } else if (this.$store.state.editFolderDialog.data.folder === "No Folder") {
+                        this.moveFolder(uuid, "top");
+                    }
+                }
+            }
+        },
+        addItem: function(name, folder, url) {
+            var detectedFileType = this.detectFileType(url);
+            var itemType;
+                        
+            if (detectedFileType == null || detectedFileType[0] == null) {
+                itemType = "unknown";
+            } else {
+                itemType = this.checkFileType(detectedFileType[0]);
+            }
+
+            this.pushToItems(itemType, name, folder, url, null);
+            
+            this.addDialogStore.data.name = null;
+            this.addDialogStore.data.folder = null;
+            this.addDialogStore.data.url = null;
+        
+        },
+        detectFileType: function(url) {    
+            // Attempt the pure regex route...
+            var extensionRegex = /\.[0-9a-z]+$/i; // to detect the file type based on extension in the URL.
+            var detectedFileType = url.match(extensionRegex);
+            
+            // If that fails, let's try the traditional URL route.
+            if (detectedFileType == null || detectedFileType[0] == null) {
+                var urlExtensionRegex = /\.[0-9a-z]+$/i;
+                let urlToParse = new URL(url);
+
+                // Attempt the URL converted regex route...
+                detectedFileType = urlToParse.pathname.match(urlExtensionRegex);
+            } else if (detectedFileType == null || detectedFileType[0] == null) { // Still not working?!
+                // Your URL sucks!
+                detectedFileType = null; // We got nothin'.
+            }
+            
+            return detectedFileType;
+        },
+        removeItem: function(uuid) {
+            var findItem = this.searchForItem(uuid);
+            findItem.parentArray.splice(findItem.iteration, 1);
+        },
+        removeFolder: function(uuid) {
+            var findFolder = this.searchForItem(uuid);
+            findFolder.parentArray.splice(findFolder.iteration, 1);
+        },
+        editItem: function(uuid) {    
+            var findItem = this.searchForItem(uuid);
+            findItem.returnedItem.type = this.checkItemType(this.$store.state.editDialog.data.type);
+            findItem.returnedItem.name = this.$store.state.editDialog.data.name;
+            findItem.returnedItem.folder = this.$store.state.editDialog.data.folder;
+            findItem.returnedItem.url = this.$store.state.editDialog.data.url;
+            
+            var folderName;
+            
+            for (var i = 0; i < this.folderList.length; i++) {
+                if (this.folderList[i].name === findItem.returnedItem.folder) {
+                    folderName = this.folderList[i].name;
+                }
+            }
+            
+            if (this.$store.state.editDialog.data.folder !== null) {
+                if (folderName !== this.$store.state.editDialog.data.folder && this.$store.state.editDialog.data.folder !== "No Folder") {
+                    this.moveItem(uuid, this.$store.state.editDialog.data.folder);
+                } else if (folderName === "No Folder") {
+                    this.moveItem(uuid, "top");
+                }
+            }
+
+        },
+        acceptReceivingItem: function(data) {
+            this.removeReceivingItem(data.data.uuid);
+            
+            this.receiveDialogStore.data.userUUID = data.senderUUID;
+            this.receiveDialogStore.data.userDisplayName = data.senderName;
+            this.receiveDialogStore.data.type = data.data.type;
+            this.receiveDialogStore.data.name = data.data.name;
+            this.receiveDialogStore.data.url = data.data.url;
+            
+            this.getFolderList("add");
+                            
+            this.receiveDialogStore.show = true;
+    
+        },
+        removeReceivingItem: function(uuid) {
+            for (var i = 0; i < this.receivingItemsDialog.data.receivingItemQueue.length; i++) {
+                if (this.receivingItemsDialog.data.receivingItemQueue[i].data.uuid === uuid) {
+                    this.receivingItemsDialog.data.receivingItemQueue.splice(i, 1);
+                    this.sendAppMessage('web-to-script-update-receiving-item-queue', this.receivingItemQueue);
+                    if (this.receivingItemsDialog.data.receivingItemQueue.length === 0) {
+                        this.receivingItemsDialog.show = false; // Close the dialog if there's nothing left.
+                    }
+                }
+            }
+        },
+        receiveReceivingItemQueue: function(data) {
+            this.receivingItemsDialog.data.receivingItemQueue = data;
+        },
+        shareItem: function(uuid) {        
+            var findItem = this.searchForItem(uuid);
+            var typeToShare = findItem.returnedItem.type;
+            var nameToShare = findItem.returnedItem.name;
+            
+            // alert("type" + typeToShare + "name" + nameToShare);
+            this.sendAppMessage("share-item", {
+                "type": typeToShare,
+                "name": nameToShare,
+                "url": this.$store.state.shareDialog.data.url,
+                "recipient": this.$store.state.shareDialog.data.recipient,
+            });
+        },
+        confirmItemReceipt: function() {
+            this.pushToItems(
+                this.checkItemType(this.$store.state.receiveDialog.data.type), 
+                this.$store.state.receiveDialog.data.name,
+                this.$store.state.receiveDialog.data.folder,
+                this.$store.state.receiveDialog.data.url,
+                null
+            );
+        },
+        useItem: function(type, url) {
+            this.sendAppMessage("use-item", { 
+                "type": type, 
+                "url": url 
+            });
+        },
+        onDragStart: function() {
+            console.info("Drag start.");
+        },
+        onDragUpdate: function() {
+            console.info("Drag Update.");
+        },
+        onDragEnd: function() {
+            console.info("Drag End.");
+        },
+        onDragChange: function(ev) {
+            console.info("Drag Update.", ev);
+        },
+        sortTopInventory: function(order) {
+            this.$store.commit('sortTopInventory', { "sort": order });
+        },
+        getFolderList: function(request) {
+            var generateList;
+            this.recursiveFolderHoldingList = []; // Clear that list before we do anything.
+            
+            if (request === "edit") {
+                this.folderList = [
+                    {
+                        "name": "No Change",
+                        "uuid": "No Change"
+                    },
+                    {
+                        "name": "No Folder", 
+                        "uuid": "No Folder"
+                    }
+                ];
+                
+                generateList = this.recursiveFolderPopulate(this.itemsStore, null);
+                
+            } else if (request === "add") {
+                this.folderList = [
+                    {
+                        "name": "No Folder", 
+                        "uuid": "No Folder"
+                    }
+                ];
+                
+                generateList = this.recursiveFolderPopulate(this.itemsStore, null);
+                
+            } else if (request === "editFolder") {
+                this.folderList = [
+                    {
+                        "name": "No Change",
+                        "uuid": "No Change"
+                    },
+                    {
+                        "name": "No Folder", 
+                        "uuid": "No Folder"
+                    }
+                ];
+                
+                generateList = this.recursiveFolderPopulate(this.itemsStore, this.$store.state.editFolderDialog.data.uuid);
+            }
+            
+            if (generateList) {
+                var combinedArray = this.folderList.concat(generateList);
+                this.folderList = combinedArray;
+            }
+        },
+        moveItem: function(uuid, parentFolderUUID) {
+            var findItem = this.searchForItem(uuid);
+            var findParentFolder;
+            
+            if (parentFolderUUID !== "top") {
+                findParentFolder = this.searchForItem(parentFolderUUID);
+            }
+            
+            // Remove the old item before placing down the copy, we already got the attributes that we had wanted.
+            this.removeItem(uuid);
+            
+            this.$store.commit('moveItem', {
+                "uuid": uuid,
+                "parentFolderUUID": parentFolderUUID,
+                "findItem": findItem,
+                "findParentFolder": findParentFolder
+            });
+
+        },
+        moveFolder: function(uuid, parentFolderUUID) {
+            var findFolder = this.searchForItem(uuid);
+            var findParentFolder;
+            
+            if (parentFolderUUID !== "top") {
+                findParentFolder = this.searchForItem(parentFolderUUID);
+            }
+            
+            // Remove the old item before placing down the copy, we already got the attributes that we had wanted.
+            this.removeFolder(uuid);
+            
+            this.$store.commit('moveFolder', {
+                "uuid": uuid,
+                "parentFolderUUID": parentFolderUUID,
+                "findFolder": findFolder,
+                "findParentFolder": findParentFolder
+            });
+            
+        },
+        searchForItem: function(uuid) {
+            var foundItem = this.recursiveSingularSearch(uuid, this.itemsStore);
+            
+            if (foundItem) {
+                return {
+                    "returnedItem": foundItem.returnedItem,
+                    "iteration": foundItem.iteration,
+                    "parentArray": foundItem.parentArray,
+                    "itemUUID": uuid
+                }
+            }
+        },
+        recursiveSingularSearch: function(uuid, indexToSearch) {
+            for (var i = 0; i < indexToSearch.length; i++) {
+                if (indexToSearch[i].uuid === uuid) {
+                    var foundItem = {
+                        "returnedItem": indexToSearch[i],
+                        "iteration": i,
+                        "parentArray": indexToSearch
+                    }
+                    return foundItem;
+                } else if (Object.prototype.hasOwnProperty.call(indexToSearch[i], "items") && indexToSearch[i].items.length > 0) {
+                    var deepSearch = this.recursiveSingularSearch(uuid, indexToSearch[i].items);
+                    if (deepSearch !== null) {
+                        return deepSearch;
+                    }
+                }
+            }
+            
+            return null;
+        },
+        recursiveFolderPopulate: function(indexToSearch, avoidFolder) {
+            for (var i = 0; i < indexToSearch.length; i++) {
+                if (Object.prototype.hasOwnProperty.call(indexToSearch[i], "items")) {
+                    // We want to avoid adding the folder itself and also any child folders it may have, putting a folder within its child folder will nuke it.
+                    if (avoidFolder !== indexToSearch[i].uuid) {
+                        // console.info("AvoidFolder", avoidFolder, "indexToSearch[i].uuid", indexToSearch[i].uuid);
+                        this.recursiveFolderHoldingList.push({
+                            "name": indexToSearch[i].name,
+                            "uuid": indexToSearch[i].uuid
+                        });
+                        
+                        this.recursiveFolderPopulate(indexToSearch[i].items, avoidFolder);
+                    }
+                }
+            }
+            
+            return this.recursiveFolderHoldingList;
+        },
+        sendInventory: function() {
+            this.sendAppMessage("web-to-script-inventory", this.itemsStore );
+        },
+        receiveInventory: function(receivedInventory) {
+            if (!receivedInventory) {
+                this.itemsStore = [];
+            } else {
+                this.itemsStore = receivedInventory;
+            }
+        },
+        sendSettings: function() {
+            this.sendAppMessage("web-to-script-settings", this.$store.state.settings );
+        },
+        receiveSettings: function(receivedSettings) {
+            if (!receivedSettings) {
+                // Don't do anything, let the defaults stand. Otherwise, it will break the app.
+            } else {
+                this.settings = receivedSettings;
+            }
+        },
+        receiveNearbyUsers: function(receivedUsers) {
+            if (!receivedUsers) {
+                this.nearbyUsers = [];
+            } else {
+                this.nearbyUsers = receivedUsers;
+            }
+        },
+        sendAppMessage: function(command, data) {
+            var JSONtoSend = {
+                "app": "inventory",
+                "command": command,
+                "data": data
+            };
+                        
+            if (!browserDevelopment()) {
+                // eslint-disable-next-line
+                EventBridge.emitWebEvent(JSON.stringify(JSONtoSend));
+            } else {
+                // this.receivingItemsDialog.data.receivingItemQueue = [
+                //     {
+                //         "sender": "WHOISTHIS1",
+                //         "data": {
+                //             "type": "script",
+                //             "name": "This Is A Real Script",
+                //             "url": "https://urmum.com/lol.js",
+                //             "uuid": "This Is A Real Script",
+                //         }
+                //     },
+                //     {
+                //         "sender": "TESTPERSON2",
+                //         "data": {
+                //             "type": "script",
+                //             "name": "REALLYLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",
+                //             "url": "https://urmum.com/looool.js",
+                //             "uuid": "REALLYLONNGGGGGGGG",
+                //         }
+                //     }
+                // ];
+                // alert(JSON.stringify(JSONtoSend));
+            }
+        },
+    },
+    computed: {
+        itemsStore: {
+            get() {
+                return this.$store.state.items;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'items', 
+                    with: value
+                });
+            }
+        },
+        addDialogStore: {
+            get() {
+                return this.$store.state.addDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'addDialog', 
+                    with: value
+                });
+            }
+        },
+        editDialogStore: {
+            get() {
+                return this.$store.state.editDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'editDialog', 
+                    with: value
+                });
+            }
+        },
+        editDialogShow: function() {
+            return this.$store.state.editDialog.show;
+        },
+        editFolderDialogStore: {
+            get() {
+                return this.$store.state.editFolderDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'editFolderDialog', 
+                    with: value
+                });
+            }
+        },
+        editFolderDialogShow: function() {
+            return this.$store.state.editFolderDialog.show;
+        },
+        createFolderDialogStore: {
+            get() {
+                return this.$store.state.createFolderDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'createFolderDialog', 
+                    with: value
+                });
+            }
+        },
+        receiveDialogStore: {
+            get() {
+                return this.$store.state.receiveDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'receiveDialog', 
+                    with: value
+                });
+            }
+        },
+        shareDialogShow: function() {
+            return this.$store.state.shareDialog.show;
+        },
+        shareDialogStore: {
+            get() {
+                return this.$store.state.shareDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'shareDialog', 
+                    with: value
+                });
+            }
+        },
+        removeFolderDialogStore: {
+            get() {
+                return this.$store.state.removeFolderDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'removeFolderDialog', 
+                    with: value
+                });
+            }
+        },
+        removeDialogStore: {
+            get() {
+                return this.$store.state.removeDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'removeDialog', 
+                    with: value
+                });
+            }
+        },
+        receivingItemQueue: {
+            get() {
+                return this.receivingItemsDialog.data.receivingItemQueue;
+            }
+        },
+        receivingItemQueueLength: {
+            get() {
+                return this.receivingItemsDialog.data.receivingItemQueue.length;
+            }
+        },
+    },
+    watch: {
+        // Whenever the item list changes, this will notice and then send it to the script to be saved.
+        itemsStore: {
+            deep: true,
+            handler() {
+                this.sendInventory();
+            }
+        }, 
+        // Whenever the settings change, we want to save that state.
+        settings: {
+            deep: true,
+            handler: function(newVal) {
+                this.$store.commit('mutate', {
+                    property: 'settings', 
+                    with: newVal
+                });
+                this.sendSettings();
+            }
+        },
+        editDialogShow: {
+            handler: function(newVal) {
+                if (newVal === true) {
+                    this.getFolderList('edit');
+                }
+            }
+        },
+        editFolderDialogShow: {
+            handler: function(newVal) {
+                if (newVal === true) {
+                    this.getFolderList('editFolder');
+                }
+            }
+        },
+        shareDialogShow: {
+            handler: function(newVal) {
+                if (newVal === true) {
+                    this.sendAppMessage('web-to-script-request-nearby-users', '');
+                }
+            }
+        },
+        receivingItemQueue: {
+            handler: function() {
+                // Do nothing.
+            }
+        },
+    }
+};
+
+</script>
diff --git a/scripts/system/inventory/src/assets/logo.png b/scripts/system/inventory/src/assets/logo.png
new file mode 100644
index 0000000000..f3d2503fc2
Binary files /dev/null and b/scripts/system/inventory/src/assets/logo.png differ
diff --git a/scripts/system/inventory/src/assets/logo.svg b/scripts/system/inventory/src/assets/logo.svg
new file mode 100644
index 0000000000..145b6d1308
--- /dev/null
+++ b/scripts/system/inventory/src/assets/logo.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 87.5 100"><defs><style>.cls-1{fill:#1697f6;}.cls-2{fill:#7bc6ff;}.cls-3{fill:#1867c0;}.cls-4{fill:#aeddff;}</style></defs><title>Artboard 46</title><polyline class="cls-1" points="43.75 0 23.31 0 43.75 48.32"/><polygon class="cls-2" points="43.75 62.5 43.75 100 0 14.58 22.92 14.58 43.75 62.5"/><polyline class="cls-3" points="43.75 0 64.19 0 43.75 48.32"/><polygon class="cls-4" points="64.58 14.58 87.5 14.58 43.75 100 43.75 62.5 64.58 14.58"/></svg>
diff --git a/scripts/system/inventory/src/assets/styles/styles.css b/scripts/system/inventory/src/assets/styles/styles.css
new file mode 100644
index 0000000000..f02ab825f7
--- /dev/null
+++ b/scripts/system/inventory/src/assets/styles/styles.css
@@ -0,0 +1,78 @@
+/*
+    styles.css
+
+    Created by Kalila L. on 7 Apr 2020
+    Copyright 2020 Vircadia and contributors.
+    
+    Distributed under the Apache License, Version 2.0.
+    See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+*/
+
+/* Top Level */
+
+.draggable-card {
+    background-color: rgba(39, 39, 39, 1.0);
+    margin: 5px 0px;
+}
+
+.draggable-card .handle {
+    width: 40px !important;
+}
+
+.top-level-folder {
+    background-color: rgba(39, 39, 39, 1.0);
+}
+
+.top-level-folder .v-list-group__header__prepend-icon {
+    background-color: rgba(0, 0, 0, 0.3);
+    width: 50px;
+    height: 50px;
+    margin: 5px 5px 7px 0px !important;
+    padding: 5px 18px 5px 8px;
+}
+
+.top-level-folder .handle {
+    width: 40px !important;
+}
+
+.top-level-folder .folder-icon {
+    margin-right: 10px;
+}
+
+.top-level-folder .folder-button {
+    font-size: 0.795rem !important;
+}
+
+/* Second Level */
+
+.v-list-group .column-item {
+    max-width: 100% !important;
+    margin-top: 5px;
+    margin-bottom: 5px;
+}
+
+.v-list-group .draggable-card {
+    background-color: rgba(0, 0, 0, 0.3);
+    padding-right: 16px;
+    padding-left: 0px !important;
+}
+
+.v-list-group .draggable-card .handle {
+    margin-right: 16px;
+}
+
+/* Menu Slideout */
+
+.app-version {
+    text-align: center;
+    color: rgba(255, 255, 255, 0.6);
+    font-weight: lighter;
+}
+
+/* Universal */
+
+.handle {
+    background-color: rgba(0, 0, 0, 0.3);
+}
+
+.inventoryApp::-webkit-scrollbar { width: 0 !important }
diff --git a/scripts/system/inventory/src/components/ItemIterator.vue b/scripts/system/inventory/src/components/ItemIterator.vue
new file mode 100644
index 0000000000..9a42f6600e
--- /dev/null
+++ b/scripts/system/inventory/src/components/ItemIterator.vue
@@ -0,0 +1,391 @@
+<!--
+//  ItemIterator.vue
+//
+//  Created by Kalila L. on 13 April 2020.
+//  Copyright 2020 Vircadia and contributors..
+//
+//  Distributed under the Apache License, Version 2.0.
+//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+-->
+
+<template>
+    <draggable :group="options" :list="itemsForIterator" handle=".handle">           
+        <v-item-group
+            v-for="item in itemsForIterator"
+            v-bind:key="item.uuid"
+        >
+            <v-list-item 
+                one-line 
+                v-if="!item.items"
+                class="mx-auto draggable-card"
+                max-width="344"
+                outlined
+            >
+                  <div class="handle pa-2">
+                      <!-- <v-icon color="orange darken-2">mdi-blur-linear</v-icon> -->
+                      <!-- <v-icon color="orange darken-2">mdi-package-variant</v-icon> -->
+                      <v-icon color="orange darken-2">mdi-square-medium-outline</v-icon>
+                  </div>
+                  <v-list-item-content 
+                      class="pb-1 pt-2 pl-4" 
+                  >
+                      <div v-show="settings.displayDensity.size > 0" class="overline" style="font-size: 0.825rem !important;">{{item.type}}</div>
+                      <v-list-item-title class="subtitle-1 mb-1">{{item.name}}</v-list-item-title>
+                      <v-list-item-subtitle v-show="settings.displayDensity.size == 2">{{item.url}}</v-list-item-subtitle>
+                  </v-list-item-content>
+                  
+                  <v-menu bottom left>
+                      <template v-slot:activator="{ on }">
+                          <!-- settings.displayDensity.size >= 1 -->
+                          <v-btn 
+                              :style="{backgroundColor: (getIconColor(item.type)) }"
+                              v-show="settings.displayDensity.size >= 1"
+                              medium 
+                              fab 
+                              dark
+                              v-on="on"
+                          >
+                              <v-icon>{{getIcon(item.type)}}</v-icon>
+                          </v-btn>
+                          <!-- settings.displayDensity.size < 1 -->
+                          <v-btn 
+                              :style="{backgroundColor: (getIconColor(item.type)) }"
+                              v-show="settings.displayDensity.size < 1"
+                              small
+                              fab
+                              dark
+                              v-on="on"
+                          >
+                              <v-icon>{{getIcon(item.type)}}</v-icon>
+                          </v-btn>
+                      </template>
+
+                      <v-list color="grey darken-3">
+                          <v-list-item
+                              @click="sendEvent('use-item', { 'type': item.type, 'url': item.url })"
+                          >
+                              <v-list-item-title>Use</v-list-item-title>
+                              <v-list-item-action>
+                                  <v-icon>mdi-play</v-icon>
+                              </v-list-item-action>
+                          </v-list-item>
+                          <v-list-item
+                              @click="
+                                  editDialogStore.show = true; 
+                                  editDialogStore.uuid = item.uuid;
+                                  editDialogStore.data.type = item.type.toUpperCase();
+                                  editDialogStore.data.folder = null;
+                                  editDialogStore.data.name = item.name;
+                                  editDialogStore.data.url = item.url;
+                              "
+                          >
+                              <v-list-item-title>Edit</v-list-item-title>
+                              <v-list-item-action>
+                                  <v-icon>mdi-pencil</v-icon>
+                              </v-list-item-action>
+                          </v-list-item>
+                          <v-list-item
+                              @click="
+                                shareDialogStore.show = true; 
+                                shareDialogStore.data.url = item.url; 
+                                shareDialogStore.data.uuid = item.uuid; 
+                              "
+                          >
+                              <v-list-item-title>Share</v-list-item-title>
+                              <v-list-item-action>
+                                  <v-icon>mdi-share</v-icon>
+                              </v-list-item-action>
+                          </v-list-item>
+                          <v-list-item
+                              @click="
+                                removeDialogStore.show = true; 
+                                removeDialogStore.uuid = item.uuid;
+                              "
+                              color="red darken-1"
+                          >
+                              <v-list-item-title>Remove</v-list-item-title>
+                              <v-list-item-action>
+                                  <v-icon>mdi-minus</v-icon>
+                              </v-list-item-action>
+                          </v-list-item>
+                      </v-list>
+                  </v-menu>
+                  
+              </v-list-item>
+
+        
+            <!-- The Folder List Item -->
+            <v-list-group
+                v-else
+                class="top-level-folder"
+            >
+            <!-- prepend-icon="mdi-blur-linear" put this in the list group, no idea how to make it a handle yet though... -->
+                <template v-slot:activator>
+                    <v-list-item 
+                        one-line 
+                        class="mx-auto"
+                        max-width="344"
+                        outlined
+                    >
+                        <v-icon class="folder-icon" color="teal">mdi-folder-settings</v-icon>
+                        {{item.name}}
+                    </v-list-item>
+                </template>
+                <div class="text-center my-2">
+                    <v-btn medium tile color="purple" class="mx-1 folder-button"
+                        @click="
+                            editFolderDialogStore.data.uuid = item.uuid;
+                            editFolderDialogStore.data.name = item.name;
+                            editFolderDialogStore.show = true; 
+                        "
+                    >
+                        <v-icon>mdi-pencil</v-icon>
+                    </v-btn>
+                    <v-btn medium tile color="red" class="mx-1 folder-button"
+                        @click="
+                            removeFolderDialogStore.show = true; 
+                            removeFolderDialogStore.uuid = item.uuid;
+                        "
+                    >
+                        <v-icon>mdi-minus</v-icon>
+                    </v-btn>
+                    
+                    <v-menu bottom left>
+                        <template v-slot:activator="{ on }">
+                            <v-btn 
+                                medium tile 
+                                color="blue" 
+                                class="mx-1 folder-button"
+                                v-on="on"
+                            >
+                                <v-icon>mdi-sort</v-icon>
+                            </v-btn>
+                        </template>
+        
+                        <v-list color="grey darken-3">
+                            <v-list-item
+                                @click="sortFolder(item.uuid, 'az');"
+                            >
+                                <v-list-item-title>A-Z</v-list-item-title>
+                                <v-list-item-action>
+                                    <v-icon large>mdi-sort-alphabetical-ascending</v-icon>
+                                </v-list-item-action>
+                            </v-list-item>
+                            <v-list-item
+                                @click="sortFolder(item.uuid, 'za');"
+                            >
+                                <v-list-item-title>Z-A</v-list-item-title>
+                                <v-list-item-action>
+                                    <v-icon large>mdi-sort-alphabetical-descending</v-icon>
+                                </v-list-item-action>
+                            </v-list-item>
+                        </v-list>
+                    </v-menu>
+                </div>
+                
+                <v-container fluid>
+                    <itemiterator v-bind:key="item.uuid" :itemsForIterator="item.items"></itemiterator>
+                </v-container>
+                
+            </v-list-group>
+        </v-item-group>
+    </draggable>
+</template>
+
+
+<script>
+
+import { EventBus } from '../plugins/event-bus.js';
+import draggable from 'vuedraggable';
+
+export default {
+    name: 'itemiterator',
+    components: {
+        draggable
+    },
+    props: ['itemsForIterator'],
+    data: () => ({
+        settings: {}
+    }),
+    created: function () {
+        this.settings = this.$store.state.settings;
+    },
+    computed: {
+        options : function (){
+            return { 
+                name: 'column-item',
+                pull: true, 
+                put: true 
+            }
+        },
+        settingsChanged() {
+            return this.$store.state.settings;
+        },
+        addDialogStore: {
+            get() {
+                return this.$store.state.addDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'addDialog', 
+                    with: value
+                });
+            }
+        },
+        editDialogStore: {
+            get() {
+                return this.$store.state.editDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'editDialog', 
+                    with: value
+                });
+            }
+        },
+        editFolderDialogStore: {
+            get() {
+                return this.$store.state.editFolderDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'editFolderDialog', 
+                    with: value
+                });
+            }
+        },
+        shareDialogStore: {
+            get() {
+                return this.$store.state.shareDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'shareDialog', 
+                    with: value
+                });
+            }
+        },
+        removeFolderDialogStore: {
+            get() {
+                return this.$store.state.removeFolderDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'removeFolderDialog', 
+                    with: value
+                });
+            }
+        },
+        removeDialogStore: {
+            get() {
+                return this.$store.state.removeDialog;
+            },
+            set(value) {
+                this.$store.commit('mutate', {
+                    property: 'removeDialog', 
+                    with: value
+                });
+            }
+        }
+    },
+    watch: {
+        settingsChanged (newVal, oldVal) {
+            console.info ("Settings previous value:", oldVal);
+            if (newVal) {
+                this.settings = newVal;
+            }
+        }
+    },
+    methods: {
+        sendEvent: function(command, data) {
+            EventBus.$emit(command, data);
+        },
+        getIcon: function(itemType) {
+            itemType = itemType.toUpperCase();
+            var returnedItemIcon;
+            
+            if (this.$store.state.iconType[itemType]) {
+                returnedItemIcon = this.$store.state.iconType[itemType].icon;
+            } else {
+                returnedItemIcon = this.$store.state.iconType.UNKNOWN.icon;
+            }
+            
+            return returnedItemIcon;
+        },
+        getIconColor: function(itemType) {
+            itemType = itemType.toUpperCase();
+            var returnedItemIconColor;
+            
+            if (this.$store.state.iconType[itemType]) {
+                returnedItemIconColor = this.$store.state.iconType[itemType].color;
+            } else {
+                returnedItemIconColor = this.$store.state.iconType.UNKNOWN.color;
+            }
+            
+            return returnedItemIconColor;
+        },
+        sortFolder: function(uuid, sort) {
+            var findFolder = this.searchForItem(uuid);
+            
+            if (findFolder) {
+                if (sort === "az") {
+                    findFolder.returnedItem.items.sort(function(a, b) {
+                        var nameA = a.name.toUpperCase(); // ignore upper and lowercase
+                        var nameB = b.name.toUpperCase(); // ignore upper and lowercase
+                        if (nameA < nameB) {
+                            return -1;
+                        }
+                        if (nameA > nameB) {
+                            return 1;
+                        }
+        
+                        // names must be equal
+                        return 0;
+                    });
+                }
+                if (sort === "za") {
+                    findFolder.returnedItem.items.sort(function(a, b) {
+                        var nameA = a.name.toUpperCase(); // ignore upper and lowercase
+                        var nameB = b.name.toUpperCase(); // ignore upper and lowercase
+                        if (nameA > nameB) {
+                            return -1;
+                        }
+                        if (nameA < nameB) {
+                            return 1;
+                        }
+        
+                        // names must be equal
+                        return 0;
+                    });
+                }
+            }
+        },
+        searchForItem: function(uuid) {
+            var foundItem = this.recursiveSingularSearch(uuid, this.itemsForIterator);
+            
+            if (foundItem) {
+                return {
+                    "returnedItem": foundItem.returnedItem,
+                    "iteration": foundItem.iteration,
+                    "parentArray": foundItem.parentArray,
+                    "itemUUID": uuid,
+                }
+            }
+        },
+        recursiveSingularSearch: function(uuid, indexToSearch) {
+            for (var i = 0; i < indexToSearch.length; i++) {
+                if (indexToSearch[i].uuid == uuid) {
+                    var foundItem = {
+                        "returnedItem": indexToSearch[i],
+                        "iteration": i,
+                        "parentArray": indexToSearch,
+                    }
+                    return foundItem;
+                } else if (Object.prototype.hasOwnProperty.call(indexToSearch[i], "items") && indexToSearch[i].items.length > 0) {
+                    return this.recursiveSingularSearch(uuid, indexToSearch[i].items);
+                }
+            }
+        },
+    }
+};
+</script>
diff --git a/scripts/system/inventory/src/components/NotUsing.vue b/scripts/system/inventory/src/components/NotUsing.vue
new file mode 100644
index 0000000000..1ccfaa8c2b
--- /dev/null
+++ b/scripts/system/inventory/src/components/NotUsing.vue
@@ -0,0 +1,272 @@
+<!--
+    NotUsing.vue
+
+    Created by Kalila L. on 7 Apr 2020
+    Copyright 2020 Vircadia and contributors.
+    
+    Distributed under the Apache License, Version 2.0.
+    See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+-->
+
+<template v-if="!disabledProp">
+    <v-data-iterator
+        :items="items"
+        hide-default-footer
+    >
+        <template>
+            <v-col
+                cols="12"
+                sm="6"
+                md="4"
+                lg="3"
+                class="py-1 column-item"
+            >
+                <draggable :group="options" :list="items" handle=".handle">                                
+                    <v-item-group
+                        v-for="item in items"
+                        v-bind:key="item.uuid"
+                    >
+                        <v-list-item 
+                            one-line 
+                            v-if="!item.hasChildren"
+                            class="mx-auto draggable-card"
+                            max-width="344"
+                            outlined
+                        >
+                              <div class="handle pa-2">
+                                  <v-icon color="orange darken-2">mdi-blur-linear</v-icon>
+                              </div>
+                              <v-list-item-content 
+                                  class="pb-1 pt-2 pl-4" 
+                              >
+                                  <div v-show="settings.displayDensity.size > 0" class="overline" style="font-size: 0.825rem !important;">{{item.type}}</div>
+                                  <v-list-item-title class="subtitle-1 mb-1">{{item.name}}</v-list-item-title>
+                                  <v-list-item-subtitle v-show="settings.displayDensity.size == 2">{{item.url}}</v-list-item-subtitle>
+                              </v-list-item-content>
+                              
+                              <v-menu bottom left>
+                              <template v-slot:activator="{ on }">
+                                  <!-- settings.displayDensity.size >= 1 -->
+                                  <v-btn 
+                                      :style="{backgroundColor: (getIconColor(item.type)) }"
+                                      v-show="settings.displayDensity.size >= 1"
+                                      medium 
+                                      fab 
+                                      dark
+                                      v-on="on"
+                                  >
+                                      <v-icon>{{getIcon(item.type)}}</v-icon>
+                                  </v-btn>
+                                  <!-- settings.displayDensity.size < 1 -->
+                                  <v-btn 
+                                      :style="{backgroundColor: (getIconColor(item.type)) }"
+                                      v-show="settings.displayDensity.size < 1"
+                                      small
+                                      fab
+                                      dark
+                                      v-on="on"
+                                  >
+                                      <v-icon>{{getIcon(item.type)}}</v-icon>
+                                  </v-btn>
+                              </template>
+
+                              <v-list color="grey darken-3">
+                                  <v-list-item
+                                      @click="useItem(item.type, item.url)"
+                                  >
+                                      <v-list-item-title>Use</v-list-item-title>
+                                      <v-list-item-action>
+                                          <v-icon>mdi-play</v-icon>
+                                      </v-list-item-action>
+                                  </v-list-item>
+                                  <v-list-item
+                                      @click="
+                                          editDialog.show = true; 
+                                          editDialog.uuid = item.uuid;
+                                          editDialog.data.type = item.type.toUpperCase();
+                                          editDialog.data.folder = null;
+                                          editDialog.data.name = item.name;
+                                          editDialog.data.url = item.url;
+                                          getFolderList('edit');
+                                      "
+                                  >
+                                      <v-list-item-title>Edit</v-list-item-title>
+                                      <v-list-item-action>
+                                          <v-icon>mdi-pencil</v-icon>
+                                      </v-list-item-action>
+                                  </v-list-item>
+                                  <v-list-item
+                                      @click="shareDialog.show = true; shareDialog.data.url = item.url; shareDialog.data.uuid = item.uuid; sendAppMessage('web-to-script-request-nearby-users', '')"
+                                  >
+                                      <v-list-item-title>Share</v-list-item-title>
+                                      <v-list-item-action>
+                                          <v-icon>mdi-share</v-icon>
+                                      </v-list-item-action>
+                                  </v-list-item>
+                                  <v-list-item
+                                      @click="removeDialog.show = true; removeDialog.uuid = item.uuid;"
+                                      color="red darken-1"
+                                  >
+                                      <v-list-item-title>Remove</v-list-item-title>
+                                      <v-list-item-action>
+                                          <v-icon>mdi-minus</v-icon>
+                                      </v-list-item-action>
+                                  </v-list-item>
+                              </v-list>
+                              </v-menu>
+                              
+                          </v-list-item>
+
+                    
+                        <!-- The Folder List Item -->
+                        <v-list-group
+                            v-if="item.hasChildren"
+                            class="top-level-folder"
+                        >
+                        <!-- prepend-icon="mdi-blur-linear" put this in the list group, no idea how to make it a handle yet though... -->
+                            <template v-slot:activator>
+                                <v-list-item 
+                                    one-line 
+                                    class="mx-auto"
+                                    max-width="344"
+                                    outlined
+                                >
+                                    <v-icon class="folder-icon" color="teal">mdi-folder-settings</v-icon>
+                                    {{item.name}}
+                                </v-list-item>
+                            </template>
+                            <div class="text-center my-2">
+                                <v-btn medium tile color="purple" class="mx-1 folder-button"
+                                    @click="
+                                        editFolderDialog.show = true; 
+                                        editFolderDialog.uuid = item.uuid;
+                                        editFolderDialog.data.name = item.name;
+                                    "
+                                >
+                                    <v-icon>mdi-pencil</v-icon>
+                                </v-btn>
+                                <v-btn medium tile color="red" class="mx-1 folder-button"
+                                    @click="removeFolderDialog.show = true; removeFolderDialog.uuid = item.uuid;"
+                                >
+                                    <v-icon>mdi-minus</v-icon>
+                                </v-btn>
+                                <v-btn medium tile color="blue" class="mx-1 folder-button"
+                                    @click="sortFolder(item.uuid);"
+                                >
+                                    <v-icon>mdi-ab-testing</v-icon>
+                                </v-btn>
+                            </div>
+                            <v-col
+                                cols="12"
+                                sm="6"
+                                md="4"
+                                lg="3"
+                                class="py-1 column-item"
+                            >
+                                <draggable 
+                                    :list="item.items"
+                                    :group="options"
+                                >
+                                    <v-item-group
+                                        v-for="item in item.items"
+                                        v-bind:key="item.uuid"
+                                    >
+                                        <v-list-item 
+                                            one-line
+                                            class="mx-auto draggable-card"
+                                            outlined
+                                        >
+                                            <div class="handle pa-2">
+                                                <v-icon color="orange darken-2">mdi-blur-linear</v-icon>
+                                            </div>
+                                            <v-list-item-content class="pb-1 pt-2">
+                                                <div v-show="settings.displayDensity.size > 0" class="overline" style="font-size: 0.825rem !important;">{{item.type}}</div>
+                                                <v-list-item-title class="subtitle-1 mb-1">{{item.name}}</v-list-item-title>
+                                                <v-list-item-subtitle v-show="settings.displayDensity.size == 2">{{item.url}}</v-list-item-subtitle>
+                                            </v-list-item-content>
+                    
+                                            <v-menu bottom left>
+                                                <template v-slot:activator="{ on }">                                                    
+                                                    <!-- settings.displayDensity.size >= 1 -->
+                                                    <v-btn 
+                                                        :style="{backgroundColor: (getIconColor(item.type)) }"
+                                                        v-show="settings.displayDensity.size >= 1"
+                                                        medium 
+                                                        fab 
+                                                        dark
+                                                        v-on="on"
+                                                    >
+                                                        <v-icon>{{getIcon(item.type)}}</v-icon>
+                                                    </v-btn>
+                                                    <!-- settings.displayDensity.size < 1 -->
+                                                    <v-btn 
+                                                        :style="{backgroundColor: (getIconColor(item.type)) }"
+                                                        v-show="settings.displayDensity.size < 1"
+                                                        small
+                                                        fab
+                                                        dark
+                                                        v-on="on"
+                                                    >
+                                                        <v-icon>{{getIcon(item.type)}}</v-icon>
+                                                    </v-btn>
+                                                </template>
+                    
+                                                <v-list color="grey darken-3">
+                                                    
+                                                    <v-list-item
+                                                        @click="useItem(item.type, item.url)"
+                                                    >
+                                                        <v-list-item-title>Use</v-list-item-title>
+                                                        <v-list-item-action>
+                                                            <v-icon>mdi-play</v-icon>
+                                                        </v-list-item-action>
+                                                    </v-list-item>
+                                                    
+                                                    <v-list-item
+                                                        @click="
+                                                            editDialog.show = true; 
+                                                            editDialog.uuid = item.uuid;
+                                                            editDialog.data.type = item.type.toUpperCase();
+                                                            editDialog.data.folder = null;
+                                                            editDialog.data.name = item.name;
+                                                            editDialog.data.url = item.url;
+                                                            getFolderList('edit');
+                                                        "
+                                                    >
+                                                        <v-list-item-title>Edit</v-list-item-title>
+                                                        <v-list-item-action>
+                                                            <v-icon>mdi-pencil</v-icon>
+                                                        </v-list-item-action>
+                                                    </v-list-item>
+                                                    
+                                                    <v-list-item
+                                                        @click="shareDialog.show = true; shareDialog.data.url = item.url; shareDialog.data.uuid = item.uuid; sendAppMessage('web-to-script-request-nearby-users', '')"
+                                                    >
+                                                        <v-list-item-title>Share</v-list-item-title>
+                                                        <v-list-item-action>
+                                                            <v-icon>mdi-share</v-icon>
+                                                        </v-list-item-action>
+                                                    </v-list-item>
+                                                    
+                                                    <v-list-item
+                                                        @click="removeDialog.show = true; removeDialog.uuid = item.uuid;"
+                                                        color="red darken-1"
+                                                    >
+                                                        <v-list-item-title>Remove</v-list-item-title>
+                                                        <v-list-item-action>
+                                                            <v-icon>mdi-minus</v-icon>
+                                                        </v-list-item-action>
+                                                    </v-list-item>
+                                                </v-list>
+                                            </v-menu>
+                                        </v-list-item>
+                                    </v-item-group>
+                                </draggable>
+                            </v-col>
+                        </v-list-group>
+                    </v-item-group>
+                </draggable>
+            </v-col>
+        </template>
+    </v-data-iterator>
+</template>
\ No newline at end of file
diff --git a/scripts/system/inventory/src/main.js b/scripts/system/inventory/src/main.js
new file mode 100644
index 0000000000..f90d693c52
--- /dev/null
+++ b/scripts/system/inventory/src/main.js
@@ -0,0 +1,22 @@
+/*
+    main.js
+
+    Created by Kalila L. on 7 Apr 2020
+    Copyright 2020 Vircadia and contributors.
+    
+    Distributed under the Apache License, Version 2.0.
+    See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+*/
+
+import Vue from 'vue'
+import App from './App.vue'
+import vuetify from './plugins/vuetify';
+import { store } from './plugins/store';
+
+Vue.config.productionTip = false;
+
+window.vm = new Vue({
+    vuetify,
+    store,
+    render: h => h(App)
+}).$mount('#app');
diff --git a/scripts/system/inventory/src/plugins/event-bus.js b/scripts/system/inventory/src/plugins/event-bus.js
new file mode 100644
index 0000000000..4e6ddc7f82
--- /dev/null
+++ b/scripts/system/inventory/src/plugins/event-bus.js
@@ -0,0 +1,12 @@
+/*
+    event-bus.js
+
+    Created by Kalila L. on 21 May 2020.
+    Copyright 2020 Vircadia and contributors.
+    
+    Distributed under the Apache License, Version 2.0.
+    See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+*/
+
+import Vue from 'vue';
+export const EventBus = new Vue();
\ No newline at end of file
diff --git a/scripts/system/inventory/src/plugins/store.js b/scripts/system/inventory/src/plugins/store.js
new file mode 100644
index 0000000000..ee08658cc5
--- /dev/null
+++ b/scripts/system/inventory/src/plugins/store.js
@@ -0,0 +1,321 @@
+/*
+    store.js
+
+    Created by Kalila L. on 16 Apr 2020.
+    Copyright 2020 Vircadia and contributors.
+    
+    Distributed under the Apache License, Version 2.0.
+    See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+*/
+
+import Vue from 'vue';
+import Vuex from 'vuex';
+
+Vue.use(Vuex);
+
+export const store = new Vuex.Store({
+    devtools: true,
+    state: {
+        items: [
+            // This is test data and is primarily used for in browser development.
+            {
+                "type": "script",
+                "name": "VRGrabScale",
+                "url": "https://gooawefaweawfgle.com/vr.js",
+                "folder": "No Folder",
+                "uuid": "54254354353"
+            },
+            {
+                "name": "Test Folder",
+                "folder": "No Folder",
+                "items": [
+                    {
+                        "name": "inception1",
+                        "folder": "Test Folder",
+                        "items": [
+                            {
+                                "name": "inception2",
+                                "folder": "Test Folder",
+                                "items": [
+                                    {
+                                        "type": "script",
+                                        "name": "itemincepted",
+                                        "url": "https://googfdafsgaergale.com/vr.js",
+                                        "folder": "FolderWithinAFolder",
+                                        "uuid": "hkjkjhkjk",
+                                    },
+                                ],
+                                "uuid": "adsfa32"
+                            },
+                        ],
+                        "uuid": "s4g4sg"
+                    },
+                ],
+                "uuid": "sdfsdf",
+            },
+            {
+                "type": "script",
+                "name": "VRGrabScale",
+                "url": "https://googfdafsgaergale.com/vr.js",
+                "folder": "No Folder",
+                "uuid": "54hgfhgf254354353",
+            },
+            {
+                "type": "script",
+                "name": "TEST",
+                "url": "https://gooadfdagle.com/vr.js",
+                "folder": "No Folder",
+                "uuid": "542rfwat4t5fsddf4354353",
+            },
+            {
+                "type": "json",
+                "name": "TESTJSON",
+                "url": "https://gooadfdagle.com/vr.json",
+                "folder": "No Folder",
+                "uuid": "542rfwat4t54354353",
+            },
+            {
+                "type": "script",
+                "name": "TESTLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG",
+                "url": "https://googfdaffle.com/vrLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG.js",
+                "folder": "No Folder",
+                "uuid": "5425ggsrg45354353",
+            },
+            {
+                "type": "whatttype",
+                "name": "BrokenIcon",
+                "url": "https://googfdaffle.com/vrLONGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG.js",
+                "folder": "No Folder",
+                "uuid": "5425ggsrg4fdaffdff535asdasd4353",
+            },
+            {
+                "type": "avatar",
+                "name": "AVI",
+                "url": "https://googlfadfe.com/vr.fst",
+                "folder": "No Folder",
+                "uuid": "542gregg45s3g4354353",
+            },
+            {
+                "type": "avatar",
+                "name": "AVI",
+                "url": "https://googlefdaf.com/vr.fst",
+                "folder": "No Folder",
+                "uuid": "5420798-087-54354353",
+            },
+            {
+                "type": "model",
+                "name": "3D MODEL",
+                "url": "https://googlee.com/vr.fbx",
+                "folder": "No Folder",
+                "uuid": "54254354980-7667jt353",
+            },
+            {
+                "type": "place",
+                "name": "PLACE DOMAIN",
+                "url": "https://googleee.com/vr.fbx",
+                "folder": "No Folder",
+                "uuid": "542543sg45s4gg54353",
+            },
+        ],
+        settings: {
+            "displayDensity": {
+                "size": 1,
+                "labels": [
+                    "List",
+                    "Compact",
+                    "Large",
+                ],
+            },
+        },
+        iconType: {
+            "SCRIPT": {
+                "icon": "mdi-code-tags",
+                "color": "red",
+            },
+            "MODEL": {
+                "icon": "mdi-video-3d",
+                "color": "green",
+            },
+            "AVATAR": {
+                "icon": "mdi-account-convert",
+                "color": "purple",
+            },
+            "PLACE": {
+                "icon": "mdi-earth",
+                "color": "#0097A7", // cyan darken-2
+            },
+            "JSON": {
+                "icon": "mdi-inbox-multiple",
+                "color": "#37474F", // blue-grey darken-3
+            },
+            "UNKNOWN": {
+                "icon": "mdi-help",
+                "color": "grey",
+            }
+        },
+        supportedItemTypes: [
+            "SCRIPT",
+            "MODEL",
+            "AVATAR",
+            "PLACE",
+            "JSON",
+            "UNKNOWN",
+        ],
+        removeDialog: {
+            show: false,
+            uuid: null,
+        },
+        removeFolderDialog: {
+            show: false,
+            uuid: null,
+        },
+        createFolderDialog: {
+            show: false,
+            valid: false,
+            data: {
+                "name": null,
+            },
+        },
+        addDialog: {
+            show: false,
+            valid: false,
+            data: {
+                "name": null,
+                "folder": null,
+                "url": null,
+            },
+        },
+        editDialog: {
+            show: false,
+            valid: false,
+            uuid: null, //
+            data: {
+                "type": null,
+                "name": null,
+                "url": null,
+                "folder": null,
+            },
+        },
+        editFolderDialog: {
+            show: false,
+            valid: false,
+            uuid: null, //
+            data: {
+                "name": null,
+                "folder": null,
+            },
+        },
+        receiveDialog: {
+            show: false,
+            valid: false,
+            data: {
+                "userUUID": null,
+                "userDisplayName": null,
+                "name": null,
+                "folder": null,
+                "type": null,
+                "url": null,
+            },
+        },
+        shareDialog: {
+            show: false,
+            valid: false,
+            data: {
+                "uuid": null, // UUID of the item you want to share. THIS IS THE KEY.
+                "url": null, // The item you want to share.
+                "recipient": null,
+            }
+        },
+    },
+    mutations: {
+        mutate (state, payload) {
+            state[payload.property] = payload.with;
+            // console.info("Payload:", payload.property, "with:", payload.with, "state is now:", this.state);
+        },
+        sortTopInventory (state, payload) {
+            let { items } = state;
+            
+            if (payload.sort === "az") {
+                state.items.sort(function(a, b) {
+                    var nameA = a.name.toUpperCase(); // ignore upper and lowercase
+                    var nameB = b.name.toUpperCase(); // ignore upper and lowercase
+                    if (nameA < nameB) {
+                        return -1;
+                    }
+                    if (nameA > nameB) {
+                        return 1;
+                    }
+    
+                    // names must be equal
+                    return 0;
+                });
+            } 
+            
+            if (payload.sort === "za") {
+                state.items.sort(function(a, b) {
+                    var nameA = a.name.toUpperCase(); // ignore upper and lowercase
+                    var nameB = b.name.toUpperCase(); // ignore upper and lowercase
+                    if (nameA > nameB) {
+                        return -1;
+                    }
+                    if (nameA < nameB) {
+                        return 1;
+                    }
+    
+                    // names must be equal
+                    return 0;
+                });
+            }
+            
+            Vue.set(state,'items', items);
+        },
+        pushToItems (state, payload) {
+            let { items } = state;
+            items.push(payload);
+            
+            Vue.set(state,'items', items);
+        },
+        moveFolder (state, payload) {
+            let { items } = state;
+            
+            if (payload.parentFolderUUID === "top") {
+                payload.findFolder.returnedItem.folder = "No Folder";
+                // console.info("Going to push...", payload.findFolder.returnedItem);
+                // console.info("Containing these items...", payload.findFolder.returnedItem.items);
+
+                items.push(payload.findFolder.returnedItem);
+                Vue.set(state, 'items', items);
+                                
+            } else if (payload.findParentFolder) {                
+                // console.info("Going to push...", payload.findFolder.returnedItem);
+                // console.info("Containing these items...", payload.findFolder.returnedItem.items);
+                // console.info("Into...", payload.findParentFolder.returnedItem);
+
+                payload.findFolder.returnedItem.folder = payload.findParentFolder.name;
+                payload.findParentFolder.returnedItem.items.push(payload.findFolder.returnedItem);
+                Vue.set(state,'items', items);
+            }
+        },
+        moveItem (state, payload) {
+            let { items } = state;
+            
+            if (payload.parentFolderUUID === "top") {
+                payload.findItem.returnedItem.folder = "No Folder";
+                // console.info("Going to push...", payload.findFolder.returnedItem);
+                // console.info("Containing these items...", payload.findFolder.returnedItem.items);
+
+                items.push(payload.findItem.returnedItem);
+                Vue.set(state,'items', items);
+                                
+            } else if (payload.findParentFolder) {                
+                // console.info("Going to push...", payload.findFolder.returnedItem);
+                // console.info("Containing these items...", payload.findFolder.returnedItem.items);
+                // console.info("Into...", payload.findParentFolder.returnedItem);
+
+                payload.findItem.returnedItem.folder = payload.findParentFolder.name;
+                payload.findParentFolder.returnedItem.items.push(payload.findItem.returnedItem);
+                Vue.set(state,'items', items);
+            }
+        }
+    }
+})
diff --git a/scripts/system/inventory/src/plugins/vuetify.js b/scripts/system/inventory/src/plugins/vuetify.js
new file mode 100644
index 0000000000..9aef972fd8
--- /dev/null
+++ b/scripts/system/inventory/src/plugins/vuetify.js
@@ -0,0 +1,17 @@
+/*
+    vuetify.js
+
+    Created by Kalila L. on 7 Apr 2020
+    Copyright 2020 Vircadia and contributors.
+    
+    Distributed under the Apache License, Version 2.0.
+    See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+*/
+
+import Vue from 'vue';
+import Vuetify from 'vuetify/lib';
+
+Vue.use(Vuetify);
+
+export default new Vuetify({
+});
diff --git a/scripts/system/inventory/vue.config.js b/scripts/system/inventory/vue.config.js
new file mode 100644
index 0000000000..8202ad2805
--- /dev/null
+++ b/scripts/system/inventory/vue.config.js
@@ -0,0 +1,17 @@
+/*
+    vue.config.js
+
+    Created by Kalila L. on 7 Apr 2020
+    Copyright 2020 Vircadia and contributors.
+    
+    Distributed under the Apache License, Version 2.0.
+    See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+*/
+
+module.exports = {
+    publicPath: "./",
+    assetsDir: "./",
+    "transpileDependencies": [
+        "vuetify"
+    ]
+}
diff --git a/scripts/system/snapshot.js b/scripts/system/snapshot.js
index a37fb13bd9..3c361b1644 100644
--- a/scripts/system/snapshot.js
+++ b/scripts/system/snapshot.js
@@ -474,9 +474,10 @@ function takeSnapshot() {
             volume: 1.0
         });
         HMD.closeTablet();
+        var DOUBLE_RENDER_TIME_TO_MS = 2000; // If rendering is bogged down, allow double the render time to close the tablet.
         Script.setTimeout(function () {
             Window.takeSnapshot(false, includeAnimated, 1.91);
-        }, SNAPSHOT_DELAY);
+        }, Math.max(SNAPSHOT_DELAY, DOUBLE_RENDER_TIME_TO_MS / Rates.render ));
     }, FINISH_SOUND_DELAY);
     UserActivityLogger.logAction("snaphshot_taken", { location: location.href });
 }
diff --git a/tools/nitpick/src/TestRunnerDesktop.cpp b/tools/nitpick/src/TestRunnerDesktop.cpp
index acb5cc77b9..2d4c0e30ac 100644
--- a/tools/nitpick/src/TestRunnerDesktop.cpp
+++ b/tools/nitpick/src/TestRunnerDesktop.cpp
@@ -3,6 +3,7 @@
 //
 //  Created by Nissim Hadar on 1 Sept 2018.
 //  Copyright 2013 High Fidelity, Inc.
+//  Copyright 2020 Vircadia contributors.
 //
 //  Distributed under the Apache License, Version 2.0.
 //  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
@@ -46,7 +47,7 @@ TestRunnerDesktop::TestRunnerDesktop(
 
     _installerThread = new QThread();
     _installerWorker = new InstallerWorker();
-        
+
     _installerWorker->moveToThread(_installerThread);
     _installerThread->start();
     connect(this, SIGNAL(startInstaller()), _installerWorker, SLOT(runCommand()));
@@ -77,9 +78,9 @@ void TestRunnerDesktop::setWorkingFolderAndEnableControls() {
     setWorkingFolder(_workingFolderLabel);
 
 #ifdef Q_OS_WIN
-    _installationFolder = _workingFolder + "/High Fidelity";
+    _installationFolder = _workingFolder + "/Vircadia";
 #elif defined Q_OS_MAC
-    _installationFolder = _workingFolder + "/High_Fidelity";
+    _installationFolder = _workingFolder + "/Vircadia";
 #endif
 
     nitpick->enableRunTabControls();
@@ -87,11 +88,11 @@ void TestRunnerDesktop::setWorkingFolderAndEnableControls() {
     _timer = new QTimer(this);
     connect(_timer, SIGNAL(timeout()), this, SLOT(checkTime()));
     _timer->start(30 * 1000);  //time specified in ms
-    
+
 #ifdef Q_OS_MAC
     // Create MAC shell scripts
     QFile script;
-    
+
     // This script waits for a process to start
     script.setFileName(_workingFolder + "/waitForStart.sh");
     if (!script.open(QIODevice::WriteOnly | QIODevice::Text)) {
@@ -99,7 +100,7 @@ void TestRunnerDesktop::setWorkingFolderAndEnableControls() {
                               "Could not open 'waitForStart.sh'");
         exit(-1);
     }
-    
+
     script.write("#!/bin/sh\n\n");
     script.write("PROCESS=\"$1\"\n");
     script.write("until (pgrep -x $PROCESS >nul)\n");
@@ -118,7 +119,7 @@ void TestRunnerDesktop::setWorkingFolderAndEnableControls() {
                               "Could not open 'waitForFinish.sh'");
         exit(-1);
     }
-    
+
     script.write("#!/bin/sh\n\n");
     script.write("PROCESS=\"$1\"\n");
     script.write("while (pgrep -x $PROCESS >nul)\n");
@@ -129,7 +130,7 @@ void TestRunnerDesktop::setWorkingFolderAndEnableControls() {
     script.write("echo \"$1\" \"finished\"\n");
     script.close();
     script.setPermissions(QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner);
-    
+
     // Create an AppleScript to resize Interface.  This is needed so that snapshots taken
     // with the primary camera will be the correct size.
     // This will be run from a normal shell script
@@ -139,7 +140,7 @@ void TestRunnerDesktop::setWorkingFolderAndEnableControls() {
                               "Could not open 'setInterfaceSizeAndPosition.scpt'");
         exit(-1);
     }
-    
+
     script.write("set width to 960\n");
     script.write("set height to 540\n");
     script.write("set x to 100\n");
@@ -155,7 +156,7 @@ void TestRunnerDesktop::setWorkingFolderAndEnableControls() {
                               "Could not open 'setInterfaceSizeAndPosition.sh'");
         exit(-1);
     }
-    
+
     script.write("#!/bin/sh\n\n");
     script.write("echo resizing interface\n");
     script.write(("osascript " + _workingFolder + "/setInterfaceSizeAndPosition.scpt\n").toStdString().c_str());
@@ -193,7 +194,7 @@ void TestRunnerDesktop::downloadComplete() {
         // Download of Build XML has completed
         buildXMLDownloaded = true;
 
-        // Download the High Fidelity installer
+        // Download the Vircadia installer
         QStringList urls;
         QStringList filenames;
         if (_runLatest->isChecked()) {
@@ -251,23 +252,23 @@ void TestRunnerDesktop::runInstaller() {
                               "Could not open 'install_app.sh'");
         exit(-1);
     }
-    
+
     if (!QDir().exists(_installationFolder)) {
         QDir().mkdir(_installationFolder);
     }
-    
-    // This script installs High Fidelity.  It is run as "yes | install_app.sh... so "yes" is killed at the end
+
+    // This script installs Vircadia.  It is run as "yes | install_app.sh... so "yes" is killed at the end
     script.write("#!/bin/sh\n\n");
     script.write("VOLUME=`hdiutil attach \"$1\" | grep Volumes | awk '{print $3}'`\n");
-    
-    QString folderName {"High Fidelity"};
+
+    QString folderName {"Vircadia"};
     if (!_runLatest->isChecked()) {
         folderName += QString(" - ") + getPRNumberFromURL(_url->text());
     }
 
     script.write((QString("cp -Rf \"$VOLUME/") + folderName + "/interface.app\" \"" + _workingFolder + "/High_Fidelity/\"\n").toStdString().c_str());
     script.write((QString("cp -Rf \"$VOLUME/") + folderName + "/Sandbox.app\" \""   + _workingFolder + "/High_Fidelity/\"\n").toStdString().c_str());
-    
+
     script.write("hdiutil detach \"$VOLUME\"\n");
     script.write("killall yes\n");
     script.close();
@@ -303,10 +304,10 @@ void TestRunnerDesktop::verifyInstallationSucceeded() {
     if (!interfaceExe.exists() || !assignmentClientExe.exists() || !domainServerExe.exists()) {
         if (_runLatest->isChecked()) {
             // On Windows, the reason is probably that UAC has blocked the installation.  This is treated as a critical error
-            QMessageBox::critical(0, "Installation of High Fidelity has failed", "Please verify that UAC has been disabled");
+            QMessageBox::critical(0, "Installation of Vircadia has failed", "Please verify that UAC has been disabled");
             exit(-1);
         } else {
-            QMessageBox::critical(0, "Installation of High Fidelity not found", "Please verify that working folder contains a proper installation");
+            QMessageBox::critical(0, "Installation of vircadia not found", "Please verify that working folder contains a proper installation");
         }
     }
 #endif
@@ -320,10 +321,10 @@ void TestRunnerDesktop::saveExistingHighFidelityAppDataFolder() {
     dataDirectory = QDir::homePath() + "/Library/Application Support";
 #endif
     if (_runLatest->isChecked()) {
-        _appDataFolder = dataDirectory + "/High Fidelity";
+        _appDataFolder = dataDirectory + "/Vircadia";
     } else {
         // We are running a PR build
-        _appDataFolder = dataDirectory + "/High Fidelity - " + getPRNumberFromURL(_url->text());
+        _appDataFolder = dataDirectory + "/Vircadia - " + getPRNumberFromURL(_url->text());
     }
 
     _savedAppDataFolder = dataDirectory + "/" + UNIQUE_FOLDER_NAME;
@@ -419,13 +420,13 @@ void TestRunnerDesktop::killProcesses() {
     }
 #elif defined Q_OS_MAC
     QString commandLine;
-    
+
     commandLine = QString("killall interface") + "; " + _workingFolder +"/waitForFinish.sh interface";
     system(commandLine.toStdString().c_str());
-    
+
     commandLine = QString("killall Sandbox") + "; " + _workingFolder +"/waitForFinish.sh Sandbox";
     system(commandLine.toStdString().c_str());
-    
+
     commandLine = QString("killall Console") + "; " + _workingFolder +"/waitForFinish.sh Console";
     system(commandLine.toStdString().c_str());
 #endif
@@ -433,7 +434,7 @@ void TestRunnerDesktop::killProcesses() {
 
 void TestRunnerDesktop::startLocalServerProcesses() {
     QString commandLine;
-    
+
 #ifdef Q_OS_WIN
     commandLine =
         "start \"domain-server.exe\" \"" + QDir::toNativeSeparators(_installationFolder) + "\\domain-server.exe\"";
@@ -501,9 +502,9 @@ void TestRunnerDesktop::runInterfaceWithTestScript() {
                               "Could not open 'runInterfaceTests.sh'");
         exit(-1);
     }
-    
+
     script.write("#!/bin/sh\n\n");
-    
+
     // First, run script to delete any entities in test area
     commandLine =
     "open -W \"" +_installationFolder + "/interface.app\" --args" +
@@ -511,9 +512,9 @@ void TestRunnerDesktop::runInterfaceWithTestScript() {
     " --no-updater" +
     " --no-login-suggestion"
     " --testScript " + deleteScript + " quitWhenFinished\n";
-    
+
     script.write(commandLine.toStdString().c_str());
-    
+
     // On The Mac, we need to resize Interface.  The Interface window opens a few seconds after the process
     // has started.
     // Before starting interface, start a process that will resize interface 10s after it opens
@@ -539,7 +540,7 @@ void TestRunnerDesktop::runInterfaceWithTestScript() {
 
     emit startInterface();
 #endif
-    
+
     // Helpful for debugging
     appendLog(commandLine);
 }
@@ -555,7 +556,7 @@ void TestRunnerDesktop::interfaceExecutionComplete() {
 
     evaluateResults();
 
-    // The High Fidelity AppData folder will be restored after evaluation has completed
+    // The Vircadia AppData folder will be restored after evaluation has completed
 }
 
 void TestRunnerDesktop::evaluateResults() {