diff --git a/docs/source/index.rst b/docs/source/index.rst index 3fa4ad0..a803105 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -2,12 +2,16 @@ Welcome to syng's documentation! ================================ .. toctree:: - :maxdepth: 2 + :maxdepth: 3 :caption: Contents: server client + queue entry + result + json + sources Indices and tables diff --git a/docs/source/json.rst b/docs/source/json.rst new file mode 100644 index 0000000..f8e2903 --- /dev/null +++ b/docs/source/json.rst @@ -0,0 +1,5 @@ +JSON +==== + +.. automodule:: syng.json + :members: diff --git a/docs/source/queue.rst b/docs/source/queue.rst new file mode 100644 index 0000000..570a0fb --- /dev/null +++ b/docs/source/queue.rst @@ -0,0 +1,5 @@ +Queue +===== + +.. automodule:: syng.queue + :members: diff --git a/docs/source/result.rst b/docs/source/result.rst new file mode 100644 index 0000000..840f7e3 --- /dev/null +++ b/docs/source/result.rst @@ -0,0 +1,5 @@ +Result +====== + +.. automodule:: syng.result + :members: diff --git a/docs/source/s3.rst b/docs/source/s3.rst new file mode 100644 index 0000000..c6f7b74 --- /dev/null +++ b/docs/source/s3.rst @@ -0,0 +1,5 @@ +S3 +== + +.. automodule:: syng.sources.s3 + :members: diff --git a/docs/source/source.rst b/docs/source/source.rst new file mode 100644 index 0000000..2693c21 --- /dev/null +++ b/docs/source/source.rst @@ -0,0 +1,5 @@ +Source (Base Class) +=================== + +.. automodule:: syng.sources.source + :members: diff --git a/docs/source/sources.rst b/docs/source/sources.rst new file mode 100644 index 0000000..49e7866 --- /dev/null +++ b/docs/source/sources.rst @@ -0,0 +1,13 @@ +Sources +======= + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + source + youtube + s3 + +.. automodule:: syng.sources + :members: diff --git a/docs/source/youtube.rst b/docs/source/youtube.rst new file mode 100644 index 0000000..f8e3ea1 --- /dev/null +++ b/docs/source/youtube.rst @@ -0,0 +1,5 @@ +Youtube +======= + +.. automodule:: syng.sources.youtube + :members: diff --git a/socketio.pyi b/socketio.pyi index 122c2ac..8492d6b 100644 --- a/socketio.pyi +++ b/socketio.pyi @@ -1,20 +1,32 @@ -from typing import Any, Optional, Awaitable, Callable, TypeVar +from typing import Any +from typing import Awaitable +from typing import Callable +from typing import Optional +from typing import TypeVar + +Handler = TypeVar( + "Handler", + bound=Callable[[str, dict[str, Any]], Any] | Callable[[str], Any], +) +ClientHandler = TypeVar( + "ClientHandler", bound=Callable[[dict[str, Any]], Any] | Callable[[], Any] +) -Handler = TypeVar("Handler", bound=Callable[[str, dict[str, Any]], Any]) -ClientHandler = TypeVar("ClientHandler", bound=Callable[[dict[str, Any]], Any]) class _session_context_manager: async def __aenter__(self) -> dict[str, Any]: ... async def __aexit__(self, *args: list[Any]) -> None: ... + class AsyncServer: def __init__( - self, cors_allowed_origins: str, logger: bool, engineio_logger: bool + self, cors_allowed_origins: str, logger: bool, engineio_logger: bool, json: Any ): ... + async def emit( self, message: str, - body: Optional[dict[str, Any]] = None, + body: Any = None, room: Optional[str] = None, ) -> None: ... def session(self, sid: str) -> _session_context_manager: ... @@ -23,11 +35,11 @@ class AsyncServer: def leave_room(self, sid: str, room: str) -> None: ... def attach(self, app: Any) -> None: ... + class AsyncClient: + def __init__(self, json: Any = None): ... def on(self, event: str) -> Callable[[ClientHandler], ClientHandler]: ... async def wait(self) -> None: ... async def connect(self, server: str) -> None: ... async def disconnect(self) -> None: ... - async def emit( - self, message: str, data: Optional[dict[str, Any]] = None - ) -> None: ... + async def emit(self, message: str, data: Any = None) -> None: ... diff --git a/syng/PIL.pyi b/syng/PIL.pyi new file mode 100644 index 0000000..e69de29 diff --git a/syng/client.py b/syng/client.py index b06595f..482caa6 100644 --- a/syng/client.py +++ b/syng/client.py @@ -1,3 +1,33 @@ +""" +Module for the playback client. + +Excerp from the help:: + + usage: client.py [-h] [--room ROOM] [--secret SECRET] [--config-file CONFIG_FILE] server + + positional arguments: + server + + options: + -h, --help show this help message and exit + --room ROOM, -r ROOM + --secret SECRET, -s SECRET + --config-file CONFIG_FILE, -C CONFIG_FILE + +The config file should be a json file in the following style:: + + { + "sources": { + "SOURCE1": { configuration for SOURCE }, + "SOURCE2": { configuration for SOURCE }, + ... + }, + }, + "config": { + configuration for the client + } + } +""" import asyncio import datetime import logging @@ -16,12 +46,13 @@ import pyqrcode import socketio from PIL import Image +from . import json from .entry import Entry from .sources import configure_sources from .sources import Source -sio: socketio.AsyncClient = socketio.AsyncClient() +sio: socketio.AsyncClient = socketio.AsyncClient(json=json) logger: logging.Logger = logging.getLogger(__name__) sources: dict[str, Source] = {} @@ -58,6 +89,8 @@ class State: :type last_song: Optional[datetime.datetime] """ + # pylint: disable=too-many-instance-attributes + current_source: Optional[Source] = None queue: list[Entry] = field(default_factory=list) recent: list[Entry] = field(default_factory=list) @@ -88,20 +121,23 @@ state: State = State() @sio.on("skip-current") -async def handle_skip_current(_: dict[str, Any] = {}) -> None: +async def handle_skip_current(data: dict[str, Any]) -> None: """ Handle the "skip-current" message. Skips the song, that is currently played. If playback currently waits for buffering, the buffering is also aborted. - :param _: Data part of the message, ignored - :type _: dict[str, Any] + Since the ``queue`` could already be updated, when this evaluates, the + first entry in the queue is send explicitly. + + :param data: An entry, that should be equivalent to the first entry of the + queue. :rtype: None """ logger.info("Skipping current") if state.current_source is not None: - await state.current_source.skip_current(state.queue[0]) + await state.current_source.skip_current(Entry(**data)) @sio.on("state") @@ -129,7 +165,7 @@ async def handle_state(data: dict[str, Any]) -> None: @sio.on("connect") -async def handle_connect(_: dict[str, Any] = {}) -> None: +async def handle_connect() -> None: """ Handle the "connect" message. @@ -145,16 +181,14 @@ async def handle_connect(_: dict[str, Any] = {}) -> None: This message will be handled by the :py:func:`syng.server.handle_register_client` function of the server. - :param _: Data part of the message, ignored - :type _: dict[str, Any] :rtype: None """ logging.info("Connected to server") await sio.emit( "register-client", { - "queue": [entry.to_dict() for entry in state.queue], - "recent": [entry.to_dict() for entry in state.recent], + "queue": state.queue, + "recent": state.recent, "room": state.room, "secret": state.secret, "config": state.get_config(), @@ -167,7 +201,7 @@ async def handle_get_meta_info(data: dict[str, Any]) -> None: """ Handle a "get-meta-info" message. - Collects the metadata from a given :py:class:`Entry`, from its source, and + Collects the metadata for a given :py:class:`Entry`, from its source, and sends them back to the server in a "meta-info" message. On the server side a :py:func:`syng.server.handle_meta_info` function is called. @@ -224,23 +258,34 @@ async def handle_play(data: dict[str, Any]) -> None: :py:attr:`State.preview_duration` is set, it shows a small preview before that. + When the playback is done, the next song is requested from the server with + a "pop-then-get-next" message. This is handled by the + :py:func:`syng.server.handle_pop_then_get_next` function on the server. + + If the entry is marked as skipped, emit a "get-first" message instead, + because the server already handled the removal of the first entry. + :param data: A dictionary encoding the entry :type data: dict[str, Any] :rtype: None """ entry: Entry = Entry(**data) print( - f"Playing: {entry.artist} - {entry.title} [{entry.album}] ({entry.source}) for {entry.performer}" + f"Playing: {entry.artist} - {entry.title} [{entry.album}] " + f"({entry.source}) for {entry.performer}" ) try: state.current_source = sources[entry.source] if state.preview_duration > 0: await preview(entry) await sources[entry.source].play(entry) - except Exception: + except Exception: # pylint: disable=broad-except print_exc() state.current_source = None - await sio.emit("pop-then-get-next") + if entry.skip: + await sio.emit("get-first") + else: + await sio.emit("pop-then-get-next") @sio.on("client-registered") @@ -254,12 +299,12 @@ async def handle_client_registered(data: dict[str, Any]) -> None: Start listing all configured :py:class:`syng.sources.source.Source` to the server via a "sources" message. This message will be handled by the - :py:func:`server.handle_sources` function and may request additional + :py:func:`syng.server.handle_sources` function and may request additional configuration for each source. If there is no song playing, start requesting the first song of the queue with a "get-first" message. This will be handled on the server by the - :py:func:`server.handle_get_first` function. + :py:func:`syng.server.handle_get_first` function. :param data: A dictionary containing a `success` and a `room` entry. :type data: dict[str, Any] @@ -366,5 +411,12 @@ async def aiomain() -> None: await sio.wait() -if __name__ == "__main__": +def main() -> None: + """ + Entry point for the syng-client script. + """ asyncio.run(aiomain()) + + +if __name__ == "__main__": + main() diff --git a/syng/entry.py b/syng/entry.py index b2d7182..3671007 100644 --- a/syng/entry.py +++ b/syng/entry.py @@ -1,16 +1,52 @@ +""" +Module for the entry of the queue. +""" from __future__ import annotations -from dataclasses import dataclass, field -from uuid import uuid4, UUID -from typing import TYPE_CHECKING, Any, Optional -from datetime import datetime -if TYPE_CHECKING: - from .sources import Source +from dataclasses import dataclass +from dataclasses import field +from typing import Any +from typing import Optional +from uuid import UUID +from uuid import uuid4 @dataclass class Entry: - id: str + """This represents a song in the queue. + + :param ident: An identifier, that uniquely identifies the song in its source. + :type ident: str + :param source: The name of the source, this will be played from. + :type source: str + :param duration: The duration of the song in seconds. + :type duration: int + :param title: The title of the song. + :type title: str + :param artist: The name of the original artist. + :type artist: str + :param album: The name of the album or compilation, this particular + version is from. + :type album: str + :param performer: The person, that will sing this song. + :type performer: str + :param failed: A flag, that indecates, that something went wrong. E.g. + buffering was canceled, the file could not be read from disc etc. + The exact meaning can differ from source to source. Default is false. + :type failed: bool + :param skip: A flag indicating, that this song is marked for skipping. + :type skip: bool + :param uuid: The UUID, that identifies this exact entry in the queue. + Will be automatically assigned on creation. + :type uuid: UUID + :param started_at: The timestamp this entry began playing. ``None``, if it + is yet to be played. + :type started_at: Optional[float] + """ + + # pylint: disable=too-many-instance-attributes + + ident: str source: str duration: int title: str @@ -22,27 +58,12 @@ class Entry: uuid: UUID = field(default_factory=uuid4) started_at: Optional[float] = None - @staticmethod - async def from_source(performer: str, ident: str, source: Source) -> Entry: - return await source.get_entry(performer, ident) - - def to_dict(self) -> dict[str, Any]: - return { - "uuid": str(self.uuid), - "id": self.id, - "source": self.source, - "duration": self.duration, - "title": self.title, - "artist": self.artist, - "album": self.album, - "performer": self.performer, - "skip": self.skip, - "started_at": self.started_at, - } - - @staticmethod - def from_dict(entry_dict: dict[str, Any]) -> Entry: - return Entry(**entry_dict) - def update(self, **kwargs: Any) -> None: + """ + Update the attributes with given substitutions. + + :param \\*\\*kwargs: Keywords taken from the list of attributes. + :type \\*\\*kwargs: Any + :rtype: None + """ self.__dict__.update(kwargs) diff --git a/syng/json.py b/syng/json.py new file mode 100644 index 0000000..b6a2f9c --- /dev/null +++ b/syng/json.py @@ -0,0 +1,44 @@ +""" +Wraps the ``json`` module, so that own classes get encoded. +""" +import json +from dataclasses import asdict +from typing import Any +from uuid import UUID + +from .entry import Entry +from .queue import Queue +from .result import Result + + +class SyngEncoder(json.JSONEncoder): + """ + Encoder of :py:class:`Entry`, :py:class`Queue`, :py:class`Result` and UUID. + + Entry and Result are ``dataclasses``, so they are mapped to their + dictionary representation. + + UUID is repersented by its string, and Queue will be represented by a list. + """ + + def default(self, o: Any) -> Any: + """Implement the encoding.""" + if isinstance(o, Entry): + return asdict(o) + if isinstance(o, UUID): + return str(o) + if isinstance(o, Result): + return asdict(o) + if isinstance(o, Queue): + return o.to_list() + return json.JSONEncoder.default(self, o) + + +def dumps(obj: Any, **kw: Any) -> str: + """Wrap around ``json.dump`` with the :py:class:`SyngEncoder`.""" + return json.dumps(obj, cls=SyngEncoder, **kw) + + +def loads(string: str, **kw: Any) -> Any: + """Forward everything to ``json.loads``""" + return json.loads(string, **kw) diff --git a/syng/queue.py b/syng/queue.py new file mode 100644 index 0000000..73c651e --- /dev/null +++ b/syng/queue.py @@ -0,0 +1,159 @@ +""" +A async queue with synchronization. +""" +import asyncio +from collections import deque +from typing import Any +from typing import Callable +from typing import Optional +from uuid import UUID + +from .entry import Entry + + +class Queue: + """A async queue with synchronization. + + This queue keeps track of the amount of entries by using a semaphore. + + :param initial_entries: Initial list of entries to add to the queue + :type initial_entries: list[Entry] + """ + + def __init__(self, initial_entries: list[Entry]): + """ + Construct the queue. And initialize the internal lock and semaphore. + + :param initial_entries: Initial list of entries to add to the queue + :type initial_entries: list[Entry] + """ + self._queue = deque(initial_entries) + + self.num_of_entries_sem = asyncio.Semaphore(len(self._queue)) + self.readlock = asyncio.Lock() + + def append(self, entry: Entry) -> None: + """ + Append an entry to the queue, increase the semaphore. + + :param entry: The entry to add + :type entry: Entry + :rtype: None + """ + self._queue.append(entry) + self.num_of_entries_sem.release() + + def try_peek(self) -> Optional[Entry]: + """Return the first entry in the queue, if it exists.""" + if len(self._queue) > 0: + return self._queue[0] + return None + + async def peek(self) -> Entry: + """ + Return the first entry in the queue. + + If the queue is empty, wait until the queue has at least one entry. + + :returns: First entry of the queue + :rtype: Entry + """ + async with self.readlock: + await self.num_of_entries_sem.acquire() + item = self._queue[0] + self.num_of_entries_sem.release() + return item + + async def popleft(self) -> Entry: + """ + Remove the first entry in the queue and return it. + + Decreases the semaphore. If the queue is empty, wait until the queue + has at least one entry. + + :returns: First entry of the queue + :rtype: Entry + """ + async with self.readlock: + await self.num_of_entries_sem.acquire() + item = self._queue.popleft() + return item + + def to_list(self) -> list[Entry]: + """ + Return all entries in a list. + + This is done, so that the entries can be converted to a JSON object, + when sending it to the web or playback client. + + :returns: A list with all the entries. + :rtype: list[Entry] + """ + return list(self._queue) # [item for item in self._queue] + + def update(self, uuid: UUID | str, updater: Callable[[Entry], None]) -> None: + """ + Update entries in the queue, identified by their uuid. + + :param uuid: The uuid of the entry to update + :type uuid: UUID | str + :param updater: A function, that updates the entry + :type updater: Callable[[Entry], None] + :rtype: None + """ + for item in self._queue: + if item.uuid == uuid or str(item.uuid) == uuid: + updater(item) + + def find_by_uuid(self, uuid: UUID | str) -> Optional[Entry]: + """ + Find an entry by its uuid and return it. + + :param uuid: The uuid to search for. + :type uuid: UUID | str + :returns: The entry with the uuid or `None` if no such entry exists + :rtype: Optional[Entry] + """ + for item in self._queue: + if item.uuid == uuid or str(item.uuid) == uuid: + return item + return None + + def fold(self, func: Callable[[Entry, Any], Any], start_value: Any) -> Any: + """Call ``func`` on each entry and accumulate the result.""" + for item in self._queue: + start_value = func(item, start_value) + return start_value + + async def remove(self, entry: Entry) -> None: + """ + Remove an entry, if it exists. Decrease the semaphore. + + :param entry: The entry to remove + :type entry: Entry + :rtype: None + """ + async with self.readlock: + await self.num_of_entries_sem.acquire() + self._queue.remove(entry) + + async def move_up(self, uuid: str) -> None: + """ + Move an :py:class:`syng.entry.Entry` with the uuid up in the queue. + + If it is called on the first two elements, nothing will happen. + + :param uuid: The uuid of the entry. + :type uuid: str + :rtype: None + """ + async with self.readlock: + uuid_idx = 0 + for idx, item in enumerate(self._queue): + if item.uuid == uuid or str(item.uuid) == uuid: + uuid_idx = idx + + if uuid_idx > 1: + tmp = self._queue[uuid_idx] + self._queue[uuid_idx] = self._queue[uuid_idx - 1] + self._queue[uuid_idx - 1] = tmp diff --git a/syng/result.py b/syng/result.py index 6699332..0fd9ca5 100644 --- a/syng/result.py +++ b/syng/result.py @@ -1,28 +1,56 @@ +""" +Module for search results +""" from __future__ import annotations from dataclasses import dataclass -from typing import Optional, Any +from typing import Optional import os.path @dataclass class Result: - id: str + """This models a search result. + + :param ident: The identifier of the entry in the source + :type ident: str + :param source: The name of the source of the entry + :type source: str + :param title: The title of the song + :type title: str + :param artist: The artist of the song + :type artist: str + :param album: The name of the album or compilation, this particular + version is from. + :type album: str + """ + + ident: str source: str title: str artist: str album: str - def to_dict(self) -> dict[str, Any]: - return { - "id": self.id, - "source": self.source, - "title": self.title, - "artist": self.artist, - "album": self.album, - } - @staticmethod def from_filename(filename: str, source: str) -> Optional[Result]: + """ + Infere most attributes from the filename. + + The filename must be in this form:: + + {artist} - {title} - {album}.cdg + + Although the extension (cdg) is not required + + If parsing failes, ``None`` is returned. Otherwise a Result object with + those attributes is created. + + :param filename: The filename to parse + :type filename: str + :param source: The name of the source + :type source: str + :return: see above + :rtype: Optional[Result] + """ try: splitfile = os.path.basename(filename[:-4]).split(" - ") ident = filename diff --git a/syng/server.py b/syng/server.py index 9d9b7cc..b4a5087 100644 --- a/syng/server.py +++ b/syng/server.py @@ -1,3 +1,16 @@ +""" +Module for the Server. + +Starts a async socketio server, and serves the web client:: + + usage: server.py [-h] [--host HOST] [--port PORT] + + options: + -h, --help show this help message and exit + --host HOST, -H HOST + --port PORT, -p PORT + +""" from __future__ import annotations import asyncio @@ -6,22 +19,22 @@ import logging import random import string from argparse import ArgumentParser -from collections import deque from dataclasses import dataclass from typing import Any -from typing import Callable from typing import Optional -from uuid import UUID import socketio from aiohttp import web +from . import json from .entry import Entry +from .queue import Queue from .sources import available_sources from .sources import Source -sio = socketio.AsyncServer(cors_allowed_origins="*", - logger=True, engineio_logger=False) +sio = socketio.AsyncServer( + cors_allowed_origins="*", logger=True, engineio_logger=False, json=json +) app = web.Application() sio.attach(app) @@ -47,145 +60,26 @@ logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) -class Queue: - """A async queue with synchronization. - - This queue keeps track of the amount of entries by using a semaphore. - - :param initial_entries: Initial list of entries to add to the queue - :type initial_entries: list[Entry] - """ - - def __init__(self, initial_entries: list[Entry]): - """ - Construct the queue. And initialize the internal lock and semaphore. - - :param initial_entries: Initial list of entries to add to the queue - :type initial_entries: list[Entry] - """ - self._queue = deque(initial_entries) - - self.num_of_entries_sem = asyncio.Semaphore(len(self._queue)) - self.readlock = asyncio.Lock() - - def append(self, entry: Entry) -> None: - """ - Append an entry to the queue, increase the semaphore. - - :param entry: The entry to add - :type entry: Entry - :rtype: None - """ - self._queue.append(entry) - self.num_of_entries_sem.release() - - async def peek(self) -> Entry: - """ - Return the first entry in the queue. - - If the queue is empty, wait until the queue has at least one entry. - - :returns: First entry of the queue - :rtype: Entry - """ - async with self.readlock: - await self.num_of_entries_sem.acquire() - item = self._queue[0] - self.num_of_entries_sem.release() - return item - - async def popleft(self) -> Entry: - """ - Remove the first entry in the queue and return it. - - Decreases the semaphore. If the queue is empty, wait until the queue - has at least one entry. - - :returns: First entry of the queue - :rtype: Entry - """ - async with self.readlock: - await self.num_of_entries_sem.acquire() - item = self._queue.popleft() - return item - - def to_dict(self) -> list[dict[str, Any]]: - """ - Forward the to_dict request to all entries and return it in a list. - - This is done, so that the entries can be converted to a JSON object, - when sending it to the web or playback client. - - :returns: A list with dictionaries, that encode the enties in the - queue. - :rtype: list[dict[str, Any]] - """ - return [item.to_dict() for item in self._queue] - - def update(self, uuid: UUID | str, updater: Callable[[Entry], None]) -> None: - """ - Update entries in the queue, identified by their uuid. - - :param uuid: The uuid of the entry to update - :type uuid: UUID | str - :param updater: A function, that updates the entry - :type updater: Callable[[Entry], None] - :rtype: None - """ - for item in self._queue: - if item.uuid == uuid or str(item.uuid) == uuid: - updater(item) - - def find_by_uuid(self, uuid: UUID | str) -> Optional[Entry]: - """ - Find an entry by its uuid and return it. - - :param uuid: The uuid to search for. - :type uuid: UUID | str - :returns: The entry with the uuid or `None` if no such entry exists - :rtype: Optional[Entry] - """ - for item in self._queue: - if item.uuid == uuid or str(item.uuid) == uuid: - return item - return None - - async def remove(self, entry: Entry) -> None: - """ - Remove an entry, if it exists. Decrease the semaphore. - - :param entry: The entry to remove - :type entry: Entry - :rtype: None - """ - async with self.readlock: - await self.num_of_entries_sem.acquire() - self._queue.remove(entry) - - async def move_up(self, uuid: str) -> None: - """ - Move an :py:class:`syng.entry.Entry` with the uuid up in the queue. - - If it is called on the first two elements, nothing will happen. - - :param uuid: The uuid of the entry. - :type uuid: str - :rtype: None - """ - async with self.readlock: - uuid_idx = 0 - for idx, item in enumerate(self._queue): - if item.uuid == uuid or str(item.uuid) == uuid: - uuid_idx = idx - - if uuid_idx > 1: - tmp = self._queue[uuid_idx] - self._queue[uuid_idx] = self._queue[uuid_idx - 1] - self._queue[uuid_idx - 1] = tmp - - @dataclass class Config: + """This stores the configuration of a specific playback client. + + In case a new playback client connects to a room, these values can be + overwritten. + + :param sources: A dictionary mapping the name of the used sources to their + instances. + :type sources: Source + :param sources_prio: A list defining the order of the search results. + :type sources_prio: list[str] + :param preview_duration: The duration in seconds the playbackclients shows + a preview for the next song. This is accounted for in the calculation + of the ETA for songs later in the queue. + :type preview_duration: int + :param last_song: A timestamp, defining the end of the queue. + :type last_song: Optional[float] + """ + sources: dict[str, Source] sources_prio: list[str] preview_duration: int @@ -194,7 +88,26 @@ class Config: @dataclass class State: - secret: str | None + """This defines the state of one session/room. + + :param secret: The secret for the room. Used to log in as an admin on the + webclient or reconnect a playbackclient + :type secret: str + :param queue: A queue of :py:class:`syng.entry.Entry` objects. New songs + are appended to this, and if a playback client requests a song, it is + taken from the top. + :type queue: Queue + :param recent: A list of already played songs in order. + :type recent: list[Entry] + :param sid: The socket.io session id of the (unique) playback client. Once + a new playback client connects to a room (with the correct secret), + this will be swapped with the new sid. + :type sid: str + :param config: The config for the client + :type config: Config + """ + + secret: str queue: Queue recent: list[Entry] sid: str @@ -205,18 +118,41 @@ clients: dict[str, State] = {} async def send_state(state: State, sid: str) -> None: + """ + Send the current state (queue and recent-list) to sid. + + This sends a "state" message. This can be received either by the playback + client, a web client or the whole room. + + If it is send to a playback client, it will be handled by the + :py:func:`syng.client.handle_state` function. + + :param state: The state to send + :type state: State + :param sid: The recepient of the "state" message + :type sid: str: + :rtype: None + """ await sio.emit( "state", - { - "queue": state.queue.to_dict(), - "recent": [entry.to_dict() for entry in state.recent], - }, + {"queue": state.queue, "recent": state.recent}, room=sid, ) @sio.on("get-state") -async def handle_state(sid: str, data: dict[str, Any] = {}) -> None: +async def handle_state(sid: str) -> None: + """ + Handle the "get-state" message. + + Sends the current state to whoever requests it. This failes if the sender + is not part of any room. + + :param sid: The initial sender, and therefore recepient of the "state" + message + :type sid: str + :rtype: None + """ async with sio.session(sid) as session: room = session["room"] state = clients[room] @@ -226,24 +162,52 @@ async def handle_state(sid: str, data: dict[str, Any] = {}) -> None: @sio.on("append") async def handle_append(sid: str, data: dict[str, Any]) -> None: + """ + Handle the "append" message. + + This should be called from a web client. Appends the entry, that is encoded + within the data to the room the client is currently connected to. An entry + constructed this way, will be given a UUID, to differentiate it from other + entries for the same song. + + If the room is configured to no longer accept songs past a certain time + (via the :py:attr:`Config.last_song` attribute), it is checked, if the + start time of the song would exceed this time. If this is the case, the + request is denied and a "msg" message is send to the client, detailing + this. + + Otherwise the song is added to the queue. And all connected clients (web + and playback client) are informed of the new state with a "state" message. + + Since some properties of a song can only be accessed on the playback + client, a "get-meta-info" message is send to the playback client. This is + handled there with the :py:func:`syng.client.handle_get_meta_info` + function. + + :param sid: The session id of the client sending this request + :type sid: str + :param data: A dictionary encoding the entry, that should be added to the + queue. + :type data: dict[str, Any] + :rtype: None + """ async with sio.session(sid) as session: room = session["room"] state = clients[room] source_obj = state.config.sources[data["source"]] - entry = await Entry.from_source(data["performer"], data["id"], source_obj) + entry = await source_obj.get_entry(data["performer"], data["ident"]) - first_song = state.queue._queue[0] if len(state.queue._queue) > 0 else None + first_song = state.queue.try_peek() if first_song is None or first_song.started_at is None: start_time = datetime.datetime.now().timestamp() else: start_time = first_song.started_at - for item in state.queue._queue: - start_time += item.duration + state.config.preview_duration + 1 - - print(state.config.last_song) - print(start_time) + start_time = state.queue.fold( + lambda item, time: time + item.duration + state.config.preview_duration + 1, + start_time, + ) if state.config.last_song: if state.config.last_song < start_time: @@ -262,13 +226,29 @@ async def handle_append(sid: str, data: dict[str, Any]) -> None: await sio.emit( "get-meta-info", - entry.to_dict(), + entry, room=clients[room].sid, ) @sio.on("meta-info") async def handle_meta_info(sid: str, data: dict[str, Any]) -> None: + """ + Handle the "meta-info" message. + + Updated a :py:class:syng.entry.Entry`, that is encoded in the data + parameter, in the queue, that belongs to the room the requesting client + belongs to, with new meta data, that is send from the playback client. + + Afterwards send the updated queue to all members of the room. + + :param sid: The session id of the client sending this request. + :type sid: str + :param data: A dictionary encoding the entry to update (already with the + new metadata) + :type data: dict[str, Any] + :rtype: None + """ async with sio.session(sid) as session: room = session["room"] state = clients[room] @@ -282,7 +262,24 @@ async def handle_meta_info(sid: str, data: dict[str, Any]) -> None: @sio.on("get-first") -async def handle_get_first(sid: str, data: dict[str, Any] = {}) -> None: +async def handle_get_first(sid: str) -> None: + """ + Handle the "get-first" message. + + This message is send by the playback client, once it has connected. It + should only be send for the initial song. Each subsequent song should be + requestet with a "pop-then-get-next" message (See + :py:func:`handle_pop_then_get_next`). + + If no songs are in the queue for this room, this function waits until one + is available, then notes its starting time and sends it back to the + playback client in a "play" message. This will be handled by the + :py:func:`syng.client.handle_play` function. + + :param sid: The session id of the requesting client + :type sid: str + :rtype: None + """ async with sio.session(sid) as session: room = session["room"] state = clients[room] @@ -290,15 +287,35 @@ async def handle_get_first(sid: str, data: dict[str, Any] = {}) -> None: current = await state.queue.peek() current.started_at = datetime.datetime.now().timestamp() - await sio.emit("play", current.to_dict(), room=sid) + await sio.emit("play", current, room=sid) @sio.on("pop-then-get-next") -async def handle_pop_then_get_next(sid: str, data: dict[str, Any] = {}) -> None: +async def handle_pop_then_get_next(sid: str) -> None: + """ + Handle the "pop-then-get-next" message. + + This function acts similar to the :py:func:`handle_get_first` function. The + main difference is, that prior to sending a song to the playback client, + the first element of the queue is discarded. + + Afterwards it follows the same steps as the handler for the "play" message, + get the first element of the queue, annotate it with the current time, + update everyones state and send the entry it to the playback client in a + "play" message. This will be handled by the + :py:func:`syng.client.handle_play` function. + + :param sid: The session id of the requesting playback client + :type sid: str + :rtype: None + """ async with sio.session(sid) as session: room = session["room"] state = clients[room] + if sid != state.sid: + return + old_entry = await state.queue.popleft() state.recent.append(old_entry) @@ -307,26 +324,59 @@ async def handle_pop_then_get_next(sid: str, data: dict[str, Any] = {}) -> None: current.started_at = datetime.datetime.now().timestamp() await send_state(state, room) - await sio.emit("play", current.to_dict(), room=sid) - - -def gen_id(length: int = 4) -> str: - client_id = "".join([random.choice(string.ascii_letters) - for _ in range(length)]) - if client_id in clients: - client_id = gen_id(length + 1) - return client_id + await sio.emit("play", current, room=sid) @sio.on("register-client") async def handle_register_client(sid: str, data: dict[str, Any]) -> None: """ - [TODO:description] + Handle the "register-client" message. - :param sid str: [TODO:description] - :param data dict[str, Any]: [TODO:description] - :rtype None: [TODO:description] + The data dictionary should have the following keys: + - `room` (Optional), the requested room + - `config`, an dictionary of initial configurations + - `queue`, a list of initial entries for the queue. The entries are + encoded as a dictionary. + - `recent`, a list of initial entries for the recent list. The entries + are encoded as a dictionary. + - `secret`, the secret of the room + + This will register a new playback client to a specific room. If there + already exists a playback client registered for this room, this + playback client will be replaced if and only if, the new playback + client has the same secret. + + If no room is provided, a fresh room id is generated. + + If the client provides a new room, or a new room id was generated, the + server will create a new :py:class:`State` object and associate it with + the room id. The state will be initialized with a queue and recent + list, an initial config as well as no sources (yet). + + In any case, the client will be notified of the success or failure, along + with its assigned room key via a "client-registered" message. This will be + handled by the :py:func:`syng.client.handle_client_registered` function. + + If it was successfully registerd, the client will be added to its assigend + or requested room. + + Afterwards all clients in the room will be send the current state. + + :param sid: The session id of the requesting playback client. + :type sid: str + :param data: A dictionary with the keys described above + :type data: dict[str, Any] + :rtype: None """ + + def gen_id(length: int = 4) -> str: + client_id = "".join( + [random.choice(string.ascii_letters) for _ in range(length)] + ) + if client_id in clients: + client_id = gen_id(length + 1) + return client_id + room: str = data["room"] if "room" in data and data["room"] else gen_id() async with sio.session(sid) as session: session["room"] = room @@ -372,14 +422,32 @@ async def handle_register_client(sid: str, data: dict[str, Any]) -> None: @sio.on("sources") async def handle_sources(sid: str, data: dict[str, Any]) -> None: """ - Get the list of sources the client wants to use. - Update internal list of sources, remove unused - sources and query for a config for all uninitialized sources + Handle the "sources" message. + + Get the list of sources the client wants to use. Update internal list of + sources, remove unused sources and query for a config for all uninitialized + sources by sending a "request-config" message for each such source to the + playback client. This will be handled by the + :py:func:`syng.client.request-config` function. + + This will not yet add the sources to the configuration, rather gather what + sources need to be configured and request their configuration. The list + of sources will set the :py:attr:`Config.sources_prio` attribute. + + :param sid: The session id of the playback client + :type sid: str + :param data: A dictionary containing a "sources" key, with the list of + sources to use. + :type data: dict[str, Any] + :rtype: None """ async with sio.session(sid) as session: room = session["room"] state = clients[room] + if sid != state.sid: + return + unused_sources = state.config.sources.keys() - data["sources"] new_sources = data["sources"] - state.config.sources.keys() @@ -394,10 +462,29 @@ async def handle_sources(sid: str, data: dict[str, Any]) -> None: @sio.on("config-chunk") async def handle_config_chung(sid: str, data: dict[str, Any]) -> None: + """ + Handle the "config-chunk" message. + + This is called, when a source wants its configuration transmitted in + chunks, rather than a single message. If the source already exist + (e.g. when this is not the first chunk), the config will be added + to the source, otherwise a source will be created with the given + configuration. + + :param sid: The session id of the playback client + :type sid: str + :param data: A dictionary with a "source" (str) and a + "config" (dict[str, Any]) entry. The exact content of the config entry + depends on the source. + :rtype: None + """ async with sio.session(sid) as session: room = session["room"] state = clients[room] + if sid != state.sid: + return + if not data["source"] in state.config.sources: state.config.sources[data["source"]] = available_sources[data["source"]]( data["config"] @@ -408,10 +495,28 @@ async def handle_config_chung(sid: str, data: dict[str, Any]) -> None: @sio.on("config") async def handle_config(sid: str, data: dict[str, Any]) -> None: + """ + Handle the "config" message. + + This is called, when a source wants its configuration transmitted in + a single message, rather than chunks. A source will be created with the + given configuration. + + :param sid: The session id of the playback client + :type sid: str + :param data: A dictionary with a "source" (str) and a + "config" (dict[str, Any]) entry. The exact content of the config entry + depends on the source. + :type data: dict[str, Any] + :rtype: None + """ async with sio.session(sid) as session: room = session["room"] state = clients[room] + if sid != state.sid: + return + state.config.sources[data["source"]] = available_sources[data["source"]]( data["config"] ) @@ -419,6 +524,19 @@ async def handle_config(sid: str, data: dict[str, Any]) -> None: @sio.on("register-web") async def handle_register_web(sid: str, data: dict[str, Any]) -> bool: + """ + Handle a "register-web" message. + + Adds a web client to a requested room and sends it the initial state of the + queue and recent list. + + :param sid: The session id of the web client. + :type sid: str + :param data: A dictionary, containing at least a "room" entry. + :type data: dict[str, Any] + :returns: True, if the room exist, False otherwise + :rtype: bool + """ if data["room"] in clients: async with sio.session(sid) as session: session["room"] = data["room"] @@ -430,46 +548,69 @@ async def handle_register_web(sid: str, data: dict[str, Any]) -> bool: @sio.on("register-admin") -async def handle_register_admin(sid: str, data: dict[str, str]) -> None: +async def handle_register_admin(sid: str, data: dict[str, Any]) -> bool: + """ + Handle a "register-admin" message. + + If the client provides the correct secret for its room, the connection is + upgraded to an admin connection. + + :param sid: The session id of the client, requesting admin. + :type sid: str: + :param data: A dictionary with at least a "secret" entry. + :type data: dict[str, Any] + :returns: True, if the secret is correct, False otherwise + :rtype: bool + """ async with sio.session(sid) as session: room = session["room"] state = clients[room] - is_admin = data["secret"] == state.secret + is_admin: bool = data["secret"] == state.secret async with sio.session(sid) as session: session["admin"] = is_admin - await sio.emit("register-admin", {"success": is_admin}, room=sid) - - -@sio.on("get-config") -async def handle_get_config(sid: str, data: dict[str, Any]) -> None: - async with sio.session(sid) as session: - room = session["room"] - is_admin = session["admin"] - state = clients[room] - - if is_admin: - await sio.emit( - "config", - { - name: source.get_config() - for name, source in state.config.sources.items() - }, - ) + return is_admin @sio.on("skip-current") -async def handle_skip_current(sid: str, data: dict[str, Any] = {}) -> None: +async def handle_skip_current(sid: str) -> None: + """ + Handle a "skip-current" message. + + If this comes from an admin connection, forward the "skip-current" message + to the playback client. This will be handled by the + :py:func:`syng.client.handle_skip_current` function. + + :param sid: The session id of the client, requesting. + :type sid: str + :rtype: None + """ async with sio.session(sid) as session: room = session["room"] is_admin = session["admin"] + state = clients[room] if is_admin: - await sio.emit("skip-current", room=clients[room].sid) + old_entry = await state.queue.popleft() + state.recent.append(old_entry) + await sio.emit("skip-current", old_entry, room=clients[room].sid) + await send_state(state, room) @sio.on("move-up") async def handle_move_up(sid: str, data: dict[str, Any]) -> None: + """ + Handle the "move-up" message. + + If on an admin connection, moves up the entry specified in the data by one + place in the queue. + + :param sid: The session id of the client requesting. + :type sid: str + :param data: A dictionary with at least an "uuid" entry + :type data: dict[str, Any] + :rtype: None + """ async with sio.session(sid) as session: room = session["room"] is_admin = session["admin"] @@ -481,6 +622,18 @@ async def handle_move_up(sid: str, data: dict[str, Any]) -> None: @sio.on("skip") async def handle_skip(sid: str, data: dict[str, Any]) -> None: + """ + Handle the "skip" message. + + If on an admin connection, removes the entry specified by data["uuid"] + from the queue. + + :param sid: The session id of the client requesting. + :type sid: str + :param data: A dictionary with at least an "uuid" entry. + :type data: dict[str, Any] + :rtype: None + """ async with sio.session(sid) as session: room = session["room"] is_admin = session["admin"] @@ -495,13 +648,41 @@ async def handle_skip(sid: str, data: dict[str, Any]) -> None: @sio.on("disconnect") -async def handle_disconnect(sid: str, data: dict[str, Any] = {}) -> None: +async def handle_disconnect(sid: str) -> None: + """ + Handle the "disconnect" message. + + This message is send automatically, when a client disconnets. + + Remove the client from its room. + + :param sid: The session id of the client disconnecting + :type sid: str + :rtype: None + """ async with sio.session(sid) as session: - sio.leave_room(sid, session["room"]) + if "room" in session: + sio.leave_room(sid, session["room"]) @sio.on("search") -async def handle_search(sid: str, data: dict[str, str]) -> None: +async def handle_search(sid: str, data: dict[str, Any]) -> None: + """ + Handle the "search" message. + + Forwards the dict["query"] to the :py:func:`Source.search` method, and + execute them concurrently. The order is given by the + :py:attr:`Config.sources_prio` attribute of the state. + + The result will be send with a "search-results" message to the (web) + client. + + :param sid: The session id of the client requesting. + :type sid: str + :param data: A dictionary with at least a "query" entry. + :type data: dict[str, str] + :rtype: None + """ async with sio.session(sid) as session: room = session["room"] state = clients[room] @@ -513,11 +694,6 @@ async def handle_search(sid: str, data: dict[str, str]) -> None: for source in state.config.sources_prio ] ) - # for source in state.config.sources_prio: - # loop = asyncio.get_running_loop() - # search_future = loop.create_future() - # loop.create_task(state.config.sources[source].search(search_future, query)) - # result_futures.append(search_future) results = [ search_result @@ -526,12 +702,20 @@ async def handle_search(sid: str, data: dict[str, str]) -> None: ] await sio.emit( "search-results", - {"results": [result.to_dict() for result in results]}, + {"results": results}, room=sid, ) def main() -> None: + """ + Configure and start the server. + + Parse the command line arguments, register static routes to serve the web + client and start the server. + + :rtype: None + """ parser = ArgumentParser() parser.add_argument("--host", "-H", default="localhost") parser.add_argument("--port", "-p", default="8080") diff --git a/syng/sources/__init__.py b/syng/sources/__init__.py index 66d2a87..e429caa 100644 --- a/syng/sources/__init__.py +++ b/syng/sources/__init__.py @@ -1,11 +1,27 @@ +""" +Imports all sources, so that they add themselves to the +``available_sources`` dictionary. +""" +# pylint: disable=useless-import-alias + from typing import Any -from .source import Source as Source, available_sources as available_sources +from .source import available_sources as available_sources +from .source import Source as Source from .youtube import YoutubeSource from .s3 import S3Source def configure_sources(configs: dict[str, Any]) -> dict[str, Source]: + """ + Create a Source object for each entry in the given configs dictionary. + + :param configs: Configurations for the sources + :type configs: dict[str, Any] + :return: A dictionary, mapping the name of the source to the + source object + :rtype: dict[str, Source] + """ configured_sources = {} for source, config in configs.items(): if source in available_sources: diff --git a/syng/sources/s3.py b/syng/sources/s3.py index 6025370..a481530 100644 --- a/syng/sources/s3.py +++ b/syng/sources/s3.py @@ -1,20 +1,41 @@ -# from json import load, dump -from itertools import zip_longest +""" +Construct the S3 source. + +Adds it to the ``available_sources`` with the name ``s3`` +""" import asyncio import os -from typing import Tuple, Optional, Any - -from minio import Minio +from itertools import zip_longest +from json import load +from json import dump +from typing import Any +from typing import Optional +from typing import Tuple import mutagen +from minio import Minio -from .source import Source, available_sources -from ..result import Result from ..entry import Entry +from ..result import Result +from .source import available_sources +from .source import Source class S3Source(Source): + """A source for playing songs from a s3 compatible storage. + + Config options are: + - ``endpoint``, ``access_key``, ``secret_key``, ``bucket``: These + will simply be forwarded to the ``minio`` client. + - ``tmp_dir``: The folder, where temporary files are stored. Default + is ``/tmp/syng`` + - ``index_file``: If the file does not exist, saves the list of + ``cdg``-files from the s3 instance to this file. If it exists, loads + the list of files from this file. + """ + def __init__(self, config: dict[str, Any]): + """Create the source.""" super().__init__(config) if "endpoint" in config and "access_key" in config and "secret_key" in config: @@ -28,14 +49,33 @@ class S3Source(Source): config["tmp_dir"] if "tmp_dir" in config else "/tmp/syng" ) - self.index: list[str] = [] if "index" not in config else config["index"] + self.index: list[str] = [] + self.index_file: Optional[str] = ( + config["index_file"] if "index_file" in config else None + ) self.extra_mpv_arguments = ["--scale=oversample"] async def get_entry(self, performer: str, ident: str) -> Entry: + """ + Create an :py:class:`syng.entry.Entry` for the identifier. + + The identifier should be a ``cdg`` filepath on the s3 server. + + Initially the duration for the generated entry will be set to 180 + seconds, so the server will ask the client for that missing + metadata. + + :param performer: The persong singing. + :type performer: str + :param ident: A path to a ``cdg`` file. + :type ident: str + :return: An entry with the data. + :rtype: Entry + """ res: Optional[Result] = Result.from_filename(ident, "s3") if res is not None: return Entry( - id=ident, + ident=ident, source="s3", duration=180, album=res.album, @@ -46,19 +86,38 @@ class S3Source(Source): raise RuntimeError(f"Could not parse {ident}") async def get_config(self) -> dict[str, Any] | list[dict[str, Any]]: + """ + Return the list of ``cdg`` files on the s3 instance. + + The list is chunked in 1000 files per entry and inside the dictionary + with key ``index``. + + :return: see above + :rtype: list[dict[str, Any]] + """ + def _get_config() -> dict[str, Any] | list[dict[str, Any]]: if not self.index: - print(f"s3: Indexing '{self.bucket}'") - self.index = [ - obj.object_name - for obj in self.minio.list_objects(self.bucket, recursive=True) - if obj.object_name.endswith(".cdg") - ] - print("s3: Indexing done") - # with open("s3_files", "w") as f: - # dump(self.index, f) - # with open("s3_files", "r") as f: - # self.index = [item for item in load(f) if item.endswith(".cdg")] + if self.index_file is not None and os.path.isfile(self.index_file): + with open( + self.index_file, "r", encoding="utf8" + ) as index_file_handle: + self.index = load(index_file_handle) + else: + print(f"s3: Indexing '{self.bucket}'") + self.index = [ + obj.object_name + for obj in self.minio.list_objects(self.bucket, recursive=True) + if obj.object_name.endswith(".cdg") + ] + print("s3: Indexing done") + if self.index_file is not None and not os.path.isfile( + self.index_file + ): + with open( + self.index_file, "w", encoding="utf8" + ) as index_file_handle: + dump(self.index, index_file_handle) chunked = zip_longest(*[iter(self.index)] * 1000, fillvalue="") return [ @@ -68,9 +127,19 @@ class S3Source(Source): return await asyncio.to_thread(_get_config) def add_to_config(self, config: dict[str, Any]) -> None: + """Add the chunk of the index list to the internal index list.""" self.index += config["index"] async def search(self, query: str) -> list[Result]: + """ + Search the internal index list for the query. + + :param query: The query to search for + :type query: str + :return: A list of Results, that need to contain all the words from + the ``query`` + :rtype: list[Result] + """ filtered: list[str] = self.filter_data_by_query(query, self.index) results: list[Result] = [] for filename in filtered: @@ -81,13 +150,23 @@ class S3Source(Source): return results async def get_missing_metadata(self, entry: Entry) -> dict[str, Any]: + """ + Return the duration for the mp3 file. + + :param entry: The entry with the associated mp3 file + :type entry: Entry + :return: A dictionary containing the duration in seconds in the + ``duration`` key. + :rtype: dict[str, Any] + """ + def mutagen_wrapped(file: str) -> int: meta_infos = mutagen.File(file).info return int(meta_infos.length) await self.ensure_playable(entry) - audio_file_name: Optional[str] = self.downloaded_files[entry.id].audio + audio_file_name: Optional[str] = self.downloaded_files[entry.ident].audio if audio_file_name is None: duration: int = 180 @@ -96,20 +175,28 @@ class S3Source(Source): return {"duration": int(duration)} - async def doBuffer(self, entry: Entry) -> Tuple[str, Optional[str]]: - cdg_filename: str = os.path.basename(entry.id) - path_to_file: str = os.path.dirname(entry.id) + async def do_buffer(self, entry: Entry) -> Tuple[str, Optional[str]]: + """ + Download the ``cdg`` and the ``mp3`` file from the s3. + + :param entry: The entry to download + :type entry: Entry + :return: A tuple with the location of the ``cdg`` and the ``mp3`` file. + :rtype: Tuple[str, Optional[str]] + """ + cdg_filename: str = os.path.basename(entry.ident) + path_to_file: str = os.path.dirname(entry.ident) cdg_path: str = os.path.join(path_to_file, cdg_filename) target_file_cdg: str = os.path.join(self.tmp_dir, cdg_path) - ident_mp3: str = entry.id[:-3] + "mp3" + ident_mp3: str = entry.ident[:-3] + "mp3" target_file_mp3: str = target_file_cdg[:-3] + "mp3" os.makedirs(os.path.dirname(target_file_cdg), exist_ok=True) video_task: asyncio.Task[Any] = asyncio.create_task( asyncio.to_thread( - self.minio.fget_object, self.bucket, entry.id, target_file_cdg + self.minio.fget_object, self.bucket, entry.ident, target_file_cdg ) ) audio_task: asyncio.Task[Any] = asyncio.create_task( diff --git a/syng/sources/source.py b/syng/sources/source.py index ef5c299..5bf39c6 100644 --- a/syng/sources/source.py +++ b/syng/sources/source.py @@ -1,12 +1,23 @@ +""" +Abstract class for sources. + +Also defines the dictionary of available sources. Each source should add itself +to this dictionary in its module. +""" from __future__ import annotations -import shlex + import asyncio -from typing import Tuple, Optional, Type, Any -import os.path -from collections import defaultdict -from dataclasses import dataclass, field import logging +import os.path +import shlex +from collections import defaultdict +from dataclasses import dataclass +from dataclasses import field from traceback import print_exc +from typing import Any +from typing import Optional +from typing import Tuple +from typing import Type from ..entry import Entry from ..result import Result @@ -16,28 +27,105 @@ logger: logging.Logger = logging.getLogger(__name__) @dataclass class DLFilesEntry: + """This represents a song in the context of a source. + + :param ready: This event triggers as soon, as all files for the song are + downloaded/buffered. + :type ready: asyncio.Event + :param video: The location of the video part of the song. + :type video: str + :param audio: The location of the audio part of the song, if it is not + incuded in the video file. (Default is ``None``) + :type audio: Optional[str] + :param buffering: True if parts are buffering, False otherwise (Default is + ``False``) + :type buffering: bool + :param complete: True if download was completed, False otherwise (Default + is ``False``) + :type complete: bool + :param failed: True if the buffering failed, False otherwise (Default is + ``False``) + :type failed: bool + :param skip: True if the next Entry for this file should be skipped + (Default is ``False``) + :param buffer_task: Reference to the task, that downloads the files. + :type buffer_task: Optional[asyncio.Task[Tuple[str, Optional[str]]]] + """ + + # pylint: disable=too-many-instance-attributes + ready: asyncio.Event = field(default_factory=asyncio.Event) video: str = "" audio: Optional[str] = None buffering: bool = False complete: bool = False failed: bool = False + skip: bool = False buffer_task: Optional[asyncio.Task[Tuple[str, Optional[str]]]] = None class Source: - def __init__(self, config: dict[str, Any]): + """Parentclass for all sources. + + A new source should subclass this, and at least implement + :py:func:`Source.get_entry`, :py:func:`Source.search` and + :py:func:`Source.do_buffer`. The sources will be shared between the server + and the playback client. + + Source specific tasks will be forwarded to the respective source, like: + - Playing the audio/video + - Buffering the audio/video + - Searching for a query + - Getting an entry from an identifier + - Handling the skipping of currently played song + + Each source has a reference to all files, that are currently queued to + download via the :py:attr:`Source.downloaded_files` attribute and a + reference to a ``mpv`` process playing songs for that specific source + + :attributes: - ``downloaded_files``, a dictionary mapping + :py:attr:`Entry.ident` to :py:class:`DLFilesEntry`. + - ``player``, the reference to the ``mpv`` process, if it has + started + - ``extra_mpv_arguments``, list of arguments added to the mpv + instance, can be overwritten by a subclass + """ + + def __init__(self, _: dict[str, Any]): + """ + Create and initialize a new source. + + You should never try to instantiate the Source class directly, rather + you should instantiate a subclass. + + :param _: Specific configuration for a Soure, ignored in the base + class + :type _: dict[str, Any] + """ self.downloaded_files: defaultdict[str, DLFilesEntry] = defaultdict( DLFilesEntry ) - self.masterlock: asyncio.Lock = asyncio.Lock() + self._masterlock: asyncio.Lock = asyncio.Lock() self.player: Optional[asyncio.subprocess.Process] = None self.extra_mpv_arguments: list[str] = [] + self._skip_next = False @staticmethod async def play_mpv( - video: str, audio: str | None, /, *options: str + video: str, audio: Optional[str], /, *options: str ) -> asyncio.subprocess.Process: + """ + Create a mpv process to play a song in full screen. + + :param video: Location of the video part. + :type video: str + :param audio: Location of the audio part, if it exists. + :type audio: Optional[str] + :param options: Extra arguments forwarded to the mpv player + :type options: str + :returns: An async reference to the process + :rtype: asyncio.subprocess.Process + """ args = ["--fullscreen", *options, video] + ( [f"--audio-file={audio}"] if audio else [] ) @@ -50,75 +138,186 @@ class Source: return await mpv_process async def get_entry(self, performer: str, ident: str) -> Entry: + """ + Create an :py:class:`syng.entry.Entry` from a given identifier. + + Abstract, needs to be implemented by subclass. + + :param performer: The performer of the song + :type performer: str + :param ident: Unique identifier of the song. + :type ident: str + :returns: New entry for the identifier. + :rtype: Entry + """ raise NotImplementedError async def search(self, query: str) -> list[Result]: + """ + Search the songs from the source for a query. + + Abstract, needs to be implemented by subclass. + + :param query: The query to search for + :type query: str + :returns: A list of Results containing the query. + :rtype: list[Result] + """ raise NotImplementedError - async def doBuffer(self, entry: Entry) -> Tuple[str, Optional[str]]: + async def do_buffer(self, entry: Entry) -> Tuple[str, Optional[str]]: + """ + Source specific part of buffering. + + This should asynchronous download all required files to play the entry, + and return the location of the video and audio file. If the audio is + included in the video file, the location for the audio file should be + `None`. + + Abstract, needs to be implemented by subclass. + + :param entry: The entry to buffer + :type entry: Entry + :returns: A Tuple of the locations for the video and the audio file. + :rtype: Tuple[str, Optional[str]] + """ raise NotImplementedError async def buffer(self, entry: Entry) -> None: - async with self.masterlock: - if self.downloaded_files[entry.id].buffering: + """ + Buffer all necessary files for the entry. + + This calls the specific :py:func:`Source.do_buffer` method. It + ensures, that the correct events will be triggered, when the buffer + function ends. Also ensures, that no entry will be buffered multiple + times. + + If this is called multiple times for the same song (even if they come + from different entries) This will immediately return. + + :param entry: The entry to buffer + :type entry: Entry + :rtype: None + """ + async with self._masterlock: + if self.downloaded_files[entry.ident].buffering: return - self.downloaded_files[entry.id].buffering = True + self.downloaded_files[entry.ident].buffering = True try: - buffer_task = asyncio.create_task(self.doBuffer(entry)) - self.downloaded_files[entry.id].buffer_task = buffer_task + buffer_task = asyncio.create_task(self.do_buffer(entry)) + self.downloaded_files[entry.ident].buffer_task = buffer_task video, audio = await buffer_task - self.downloaded_files[entry.id].video = video - self.downloaded_files[entry.id].audio = audio - self.downloaded_files[entry.id].complete = True - except Exception: + self.downloaded_files[entry.ident].video = video + self.downloaded_files[entry.ident].audio = audio + self.downloaded_files[entry.ident].complete = True + except Exception: # pylint: disable=broad-except print_exc() logger.error("Buffering failed for %s", entry) - self.downloaded_files[entry.id].failed = True + self.downloaded_files[entry.ident].failed = True - self.downloaded_files[entry.id].ready.set() + self.downloaded_files[entry.ident].ready.set() async def play(self, entry: Entry) -> None: + """ + Play the entry. + + This waits until buffering is complete and starts + playing the entry. + + :param entry: The entry to play + :type entry: Entry + :rtype: None + """ await self.ensure_playable(entry) - if self.downloaded_files[entry.id].failed: - del self.downloaded_files[entry.id] + if self.downloaded_files[entry.ident].failed: + del self.downloaded_files[entry.ident] return - if entry.skip: - del self.downloaded_files[entry.id] - return + async with self._masterlock: + if self._skip_next: + self._skip_next = False + entry.skip = True + return - self.player = await self.play_mpv( - self.downloaded_files[entry.id].video, - self.downloaded_files[entry.id].audio, - *self.extra_mpv_arguments, - ) + self.player = await self.play_mpv( + self.downloaded_files[entry.ident].video, + self.downloaded_files[entry.ident].audio, + *self.extra_mpv_arguments, + ) await self.player.wait() self.player = None + if self._skip_next: + self._skip_next = False + entry.skip = True async def skip_current(self, entry: Entry) -> None: - entry.skip = True - self.downloaded_files[entry.id].buffering = False - buffer_task = self.downloaded_files[entry.id].buffer_task - if buffer_task is not None: - buffer_task.cancel() - self.downloaded_files[entry.id].ready.set() + """ + Skips first song in the queue. - if ( - self.player is not None - ): # A race condition can occur here. In that case, just press the skip button again - self.player.kill() + If it is played, the player is killed, if it is still buffered, the + buffering is aborted. Then a flag is set to keep the player from + playing it. + + :param entry: A reference to the first entry of the queue + :type entry: Entry + :rtype: None + """ + async with self._masterlock: + self._skip_next = True + self.downloaded_files[entry.ident].buffering = False + buffer_task = self.downloaded_files[entry.ident].buffer_task + if buffer_task is not None: + buffer_task.cancel() + self.downloaded_files[entry.ident].ready.set() + + if self.player is not None: + self.player.kill() async def ensure_playable(self, entry: Entry) -> None: - await self.buffer(entry) - await self.downloaded_files[entry.id].ready.wait() + """ + Guaranties that the given entry can be played. - async def get_missing_metadata(self, entry: Entry) -> dict[str, Any]: + First start buffering, then wait for the buffering to end. + + :param entry: The entry to ensure playback for. + :type entry: Entry + :rtype: None + """ + await self.buffer(entry) + await self.downloaded_files[entry.ident].ready.wait() + + async def get_missing_metadata(self, _entry: Entry) -> dict[str, Any]: + """ + Read and report missing metadata. + + If the source sended a list of filenames to the server, the server can + search these filenames, but has no way to read e.g. the duration. This + method will be called to return the missing metadata. + + By default this just returns an empty dict. + + :param _entry: The entry to get the metadata for + :type _entry: Entry + :returns: A dictionary with the missing metadata. + :rtype dict[str, Any] + """ return {} def filter_data_by_query(self, query: str, data: list[str]) -> list[str]: + """ + Filters the ``data``-list by the ``query``. + + :param query: The query to filter + :type query: str + :param data: The list to filter + :type data: list[str] + :return: All entries in the list containing the query. + :rtype: list[str] + """ + def contains_all_words(words: list[str], element: str) -> bool: for word in words: if not word.lower() in os.path.basename(element).lower(): @@ -129,10 +328,31 @@ class Source: return [element for element in data if contains_all_words(splitquery, element)] async def get_config(self) -> dict[str, Any] | list[dict[str, Any]]: + """ + Return the part of the config, that should be send to the server. + + Can be either a dictionary or a list of dictionaries. If it is a + dictionary, a single message will be send. If it is a list, one message + will be send for each entry in the list. + + Abstract, needs to be implemented by subclass. + + :return: The part of the config, that should be sended to the server. + :rtype: dict[str, Any] | list[dict[str, Any]] + """ raise NotImplementedError def add_to_config(self, config: dict[str, Any]) -> None: - pass + """ + Add the config to the own config. + + This is called on the server, if :py:func:`Source.get_config` returns a + list. + + :param config: The part of the config to add. + :type config: dict[str, Any] + :rtype: None + """ available_sources: dict[str, Type[Source]] = {} diff --git a/syng/sources/youtube.py b/syng/sources/youtube.py index 2d408c3..b0fd0f7 100644 --- a/syng/sources/youtube.py +++ b/syng/sources/youtube.py @@ -1,20 +1,51 @@ +""" +Construct the YouTube source. + +Adds it to the ``available_sources`` with the name ``youtube``. +""" import asyncio import shlex from functools import partial -from typing import Optional, Tuple, Any +from typing import Any +from typing import Optional +from typing import Tuple -from pytube import YouTube, Search, Channel, innertube, Stream, StreamQuery +from pytube import Channel +from pytube import innertube +from pytube import Search +from pytube import Stream +from pytube import StreamQuery +from pytube import YouTube -from .source import Source, available_sources from ..entry import Entry from ..result import Result +from .source import available_sources +from .source import Source class YoutubeSource(Source): + """A source for playing karaoke files from YouTube. + + Config options are: + - ``channels``: A list of all channel this source should search in. + Examples are ``/c/CCKaraoke`` or + ``/channel/UCwTRjvjVge51X-ILJ4i22ew`` + - ``tmp_dir``: The folder, where temporary files are stored. Default + is ``/tmp/syng`` + - ``max_res``: The highest video resolution, that should be + downloaded/streamed. Default is 720. + - ``start_streaming``: If set to ``True``, the client starts streaming + the video, if buffering was not completed. Needs ``youtube-dl`` or + ``yt-dlp``. + """ + def __init__(self, config: dict[str, Any]): + """Create the source.""" super().__init__(config) - self.innertube_client: innertube.InnerTube = innertube.InnerTube(client="WEB") - self.channels: list[str] = config["channels"] if "channels" in config else [] + self.innertube_client: innertube.InnerTube = innertube.InnerTube( + client="WEB") + self.channels: list[str] = config["channels"] if "channels" in config else [ + ] self.tmp_dir: str = config["tmp_dir"] if "tmp_dir" in config else "/tmp/syng" self.max_res: int = config["max_res"] if "max_res" in config else 720 self.start_streaming: bool = ( @@ -22,16 +53,36 @@ class YoutubeSource(Source): ) async def get_config(self) -> dict[str, Any] | list[dict[str, Any]]: + """ + Return the list of channels in a dictionary with key ``channels``. + + :return: see above + :rtype: dict[str, Any]] + """ return {"channels": self.channels} async def play(self, entry: Entry) -> None: - if self.start_streaming and not self.downloaded_files[entry.id].complete: + """ + Play the given entry. + + If ``start_streaming`` is set and buffering is not yet done, starts + immediatly and forwards the url to ``mpv``. + + Otherwise wait for buffering and start playing. + + :param entry: The entry to play. + :type entry: Entry + :rtype: None + """ + if self.start_streaming and not self.downloaded_files[entry.ident].complete: print("streaming") self.player = await self.play_mpv( - entry.id, + entry.ident, None, - "--script-opts=ytdl_hook-ytdl_path=yt-dlp,ytdl_hook-exclude='%.pls$'", - f"--ytdl-format=bestvideo[height<={self.max_res}]+bestaudio/best[height<={self.max_res}]", + "--script-opts=ytdl_hook-ytdl_path=yt-dlp," + "ytdl_hook-exclude='%.pls$'", + f"--ytdl-format=bestvideo[height<={self.max_res}]" + f"+bestaudio/best[height<={self.max_res}]", "--fullscreen", ) await self.player.wait() @@ -39,31 +90,63 @@ class YoutubeSource(Source): await super().play(entry) async def get_entry(self, performer: str, ident: str) -> Entry: + """ + Create an :py:class:`syng.entry.Entry` for the identifier. + + The identifier should be a youtube url. An entry is created with + all available metadata for the video. + + :param performer: The persong singing. + :type performer: str + :param ident: A url to a YouTube video. + :type ident: str + :return: An entry with the data. + :rtype: Entry + """ + def _get_entry(performer: str, url: str) -> Entry: - yt = YouTube(url) + yt_song = YouTube(url) return Entry( - id=url, + ident=url, source="youtube", album="YouTube", - duration=yt.length, - title=yt.title, - artist=yt.author, + duration=yt_song.length, + title=yt_song.title, + artist=yt_song.author, performer=performer, ) return await asyncio.to_thread(_get_entry, performer, ident) - def _contains_index(self, query: str, result: YouTube) -> float: - compare_string: str = result.title.lower() + " " + result.author.lower() - hits: int = 0 - queries: list[str] = shlex.split(query.lower()) - for word in queries: - if word in compare_string: - hits += 1 - - return 1 - (hits / len(queries)) - async def search(self, query: str) -> list[Result]: + """ + Search YouTube and the configured channels for the query. + + The first results are the results of the configured channels. The next + results are the results from youtube as a whole, but the term "Karaoke" + is appended to the search query. + + All results are sorted by how good they match to the search query, + respecting their original source (channel or YouTube as a whole). + + All searching is done concurrently. + + :param query: The query to search for + :type query: str + :return: A list of Results. + :rtype: list[Result] + """ + + def _contains_index(query: str, result: YouTube) -> float: + compare_string: str = result.title.lower() + " " + result.author.lower() + hits: int = 0 + queries: list[str] = shlex.split(query.lower()) + for word in queries: + if word in compare_string: + hits += 1 + + return 1 - (hits / len(queries)) + results: list[YouTube] = [] results_lists: list[list[YouTube]] = await asyncio.gather( *[ @@ -76,11 +159,11 @@ class YoutubeSource(Source): search_result for yt_result in results_lists for search_result in yt_result ] - results.sort(key=partial(self._contains_index, query)) + results.sort(key=partial(_contains_index, query)) return [ Result( - id=result.watch_url, + ident=result.watch_url, source="youtube", title=result.title, artist=result.author, @@ -90,13 +173,24 @@ class YoutubeSource(Source): ] def _yt_search(self, query: str) -> list[YouTube]: + """Search youtube as a whole. + + Adds "karaoke" to the query. + """ results: Optional[list[YouTube]] = Search(f"{query} karaoke").results if results is not None: return results return [] + # pylint: disable=protected-access def _channel_search(self, query: str, channel: str) -> list[YouTube]: - browse_id: str = Channel(f"https://www.youtube.com{channel}").channel_id + """ + Search a channel for a query. + + A lot of black Magic happens here. + """ + browse_id: str = Channel( + f"https://www.youtube.com{channel}").channel_id endpoint: str = f"{self.innertube_client.base_url}/browse" data: dict[str, str] = { @@ -133,29 +227,46 @@ class YoutubeSource(Source): title: str = item["itemSectionRenderer"]["contents"][0][ "videoRenderer" ]["title"]["runs"][0]["text"] - yt: YouTube = YouTube(yt_url) - yt.author = author - yt.title = title - list_of_videos.append(yt) + yt_song: YouTube = YouTube(yt_url) + yt_song.author = author + yt_song.title = title + list_of_videos.append(yt_song) except KeyError: pass return list_of_videos - async def doBuffer(self, entry: Entry) -> Tuple[str, Optional[str]]: - yt: YouTube = YouTube(entry.id) + async def do_buffer(self, entry: Entry) -> Tuple[str, Optional[str]]: + """ + Download the video. - streams: StreamQuery = await asyncio.to_thread(lambda: yt.streams) + Downloads the highest quality stream respecting the ``max_res``. + For higher resolution videos (1080p and above), YouTube will give you + the video and audio seperatly. If that is the case, both will be + downloaded. + + + :param entry: The entry to download. + :type entry: Entry + :return: The location of the video file and (if applicable) the + location of the audio file. + :rtype: Tuple[str, Optional[str]] + """ + yt_song: YouTube = YouTube(entry.ident) + + streams: StreamQuery = await asyncio.to_thread(lambda: yt_song.streams) video_streams: StreamQuery = streams.filter( type="video", - custom_filter_functions=[lambda s: int(s.resolution[:-1]) <= self.max_res], + custom_filter_functions=[lambda s: int( + s.resolution[:-1]) <= self.max_res], ) audio_streams: StreamQuery = streams.filter(only_audio=True) best_video_stream: Stream = sorted( video_streams, - key=lambda s: int(s.resolution[:-1]) + (1 if s.is_progressive else 0), + key=lambda s: int(s.resolution[:-1]) + + (1 if s.is_progressive else 0), )[-1] best_audio_stream: Stream = sorted( audio_streams, key=lambda s: int(s.abr[:-4]) diff --git a/syng/static/assets/index.1ff4ae2d.css b/syng/static/assets/index.527b8dfc.css similarity index 99% rename from syng/static/assets/index.1ff4ae2d.css rename to syng/static/assets/index.527b8dfc.css index 0f08192..f5215c3 100644 --- a/syng/static/assets/index.1ff4ae2d.css +++ b/syng/static/assets/index.527b8dfc.css @@ -1 +1 @@ -@charset "UTF-8";.input-group[data-v-0a753407]{margin-bottom:0}.artist[data-v-6a422aee]:after{content:" - "}.singer[data-v-6a422aee]{font-size:smaller;font-style:italic}.title[data-v-6a422aee]{font-weight:700}#search-results div[data-v-66917cda]{vertical-align:middle;height:100%}.current[data-v-bd331cc3]{background-color:green!important}.current[data-v-bd331cc3]:before,#large-current[data-v-bd331cc3]:before{content:"Now Playing";text-align:center;font-weight:700}.eta[data-v-bd331cc3]{float:right}.eta[data-v-bd331cc3]:before{content:"in "}#recent[data-v-430aab46]{flex-direction:column-reverse}.tabs-title>a[data-v-e8c2a5dc]{color:green}.tabs-title>a[data-v-e8c2a5dc]:hover{background-color:#444;color:#fff}.tabs-title>a[data-v-e8c2a5dc]:focus,.tabs-title>a[aria-selected=true][data-v-e8c2a5dc]{color:#fff;font-weight:700;background-color:green}.tabs-title[data-v-e8c2a5dc]{flex-grow:1;text-align:center}.splitter[data-v-527e3b9c]{display:flex;height:100vh}.tabs-container[data-v-527e3b9c]{flex:1;position:relative;overflow:auto}.tabs-panel{height:100%}.comp-column[data-v-2038344a]{margin:.2em .1em .2em .2em}.comp-column[data-v-3ebeb641]{margin:.2em .1em .1em .2em}.comp-column[data-v-b7d2a929]{margin:.2em .2em .1em}.splitter[data-v-0b531bce]{display:flex;height:100%}.btn[data-v-c71bf30b]{padding:3px}footer[data-v-1512e17e]{position:fixed;bottom:0;height:50px;line-height:50px;width:100%;padding-left:10px;background-color:green;font-weight:700;color:#fff;font-size:1.5rem;margin:auto}footer>.userName[data-v-1512e17e]{border:none;border-bottom:1px dashed #00F000;background-color:green;min-width:5em;display:inline-block;height:70%;text-align:center}.page[data-v-c99b5444]{height:100vh;background:url(/assets/syng.84d20818.png) fixed;background-color:#8a8a8a;background-size:auto 50%;background-repeat:no-repeat;background-position:center}.page[data-v-c99b5444]{height:100%;position:relative}#main-content[data-v-c99b5444]{height:calc(100vh - 50px);max-height:100vh;max-width:100vw}@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[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-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[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-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}[data-whatinput=mouse] *,[data-whatinput=mouse] :focus,[data-whatinput=touch] *,[data-whatinput=touch] :focus,[data-whatintent=mouse] *,[data-whatintent=mouse] :focus,[data-whatintent=touch] *,[data-whatintent=touch] :focus{outline:0}[draggable=false]{-webkit-touch-callout:none;-webkit-user-select:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto;-webkit-overflow-scrolling:touch}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px #0a0a0a1a;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem 1.5rem .5rem .5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url('data:image/svg+xml;utf8,');background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\fffd){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,Liberation Mono,Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"\2014 "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,Liberation Mono,Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,Liberation Mono,Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;print-color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print,th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + .625rem)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + .625rem)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + .625rem)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + .625rem)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + .625rem)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + .625rem)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + .625rem)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + .625rem)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + .625rem)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + .625rem)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + .625rem)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + .625rem)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + .9375rem)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + .9375rem)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + .9375rem)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + .9375rem)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + .9375rem)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + .9375rem)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + .9375rem)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + .9375rem)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + .9375rem)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + .9375rem)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + .9375rem)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + .9375rem)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + .9375rem)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + .9375rem)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + .9375rem)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + .9375rem)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + .9375rem)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + .9375rem)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + .9375rem)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + .9375rem)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + .9375rem)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + .9375rem)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + .9375rem)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + .9375rem)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown:after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:"";border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear:after,.button.dropdown.hollow:after{border-top-color:#1779ba}.button.dropdown.clear.primary:after,.button.dropdown.hollow.primary:after{border-top-color:#1779ba}.button.dropdown.clear.secondary:after,.button.dropdown.hollow.secondary:after{border-top-color:#767676}.button.dropdown.clear.success:after,.button.dropdown.hollow.success:after{border-top-color:#3adb76}.button.dropdown.clear.warning:after,.button.dropdown.hollow.warning:after{border-top-color:#ffae00}.button.dropdown.clear.alert:after,.button.dropdown.hollow.alert:after{border-top-color:#cc4b37}.button.arrow-only:after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group:after,.button-group:before{display:table;content:" ";-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group:after{clear:both}.button-group:after,.button-group:before{display:none}.button-group .button{margin:0 1px 1px 0;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;cursor:-webkit-grab;cursor:grab;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear;cursor:-webkit-grabbing;cursor:grabbing}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scaleY(-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%)}.switch{position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:2rem}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle:after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translateZ(0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:""}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle:after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle:after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle:after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle:after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle:after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle:after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle:after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead,table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem;list-style:none}.breadcrumbs:after,.breadcrumbs:before{display:table;content:" ";-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs:after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child):after{position:relative;margin:0 .75rem;opacity:1;content:"/";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding:.5rem}.callout.large{padding:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-left:0;margin-bottom:1rem}.pagination:after,.pagination:before{display:table;content:" ";-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination:after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis:after{padding:.1875rem .625rem;content:"\2026";color:#0a0a0a}.pagination-previous a:before,.pagination-previous.disabled:before{display:inline-block;margin-right:.5rem;content:"\ab"}.pagination-next a:after,.pagination-next.disabled:after{display:inline-block;margin-left:.5rem;content:"\bb"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip:before{position:absolute}.tooltip.bottom:before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:"";border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center:before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%)}.tooltip.top:before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:"";border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center:before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%)}.tooltip.left:before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:"";border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center:before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right:before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:"";border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center:before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top:before{bottom:auto;top:10%}.tooltip.align-bottom:before{bottom:10%;top:auto}.tooltip.align-left:before{left:10%;right:auto}.tooltip.align-right:before{left:auto;right:10%}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title:before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:"+"}.is-active>.accordion-title:before{content:"\2013"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:#0a0a0a80;color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:#0a0a0a80}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover,.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs:after,.tabs:before{display:table;content:" ";-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs:after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px #0a0a0a33;line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px #1779ba80}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.vertical.icon-bottom li a i,.menu.vertical.icon-bottom li a img,.menu.vertical.icon-bottom li a svg,.menu.vertical.icon-top li a i,.menu.vertical.icon-top li a img,.menu.vertical.icon-top li a svg{text-align:left}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.expanded.icon-bottom li a i,.menu.expanded.icon-bottom li a img,.menu.expanded.icon-bottom li a svg,.menu.expanded.icon-top li a i,.menu.expanded.icon-top li a img,.menu.expanded.icon-top li a svg{text-align:left}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li,.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li,.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons a,.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a,.menu.nested.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-right:.25rem}.menu.icon-right li a,.menu.nested.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-left:.25rem}.menu.icon-top li a,.menu.nested.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-right li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right.vertical li{display:block;text-align:right}.menu.align-right.vertical li .submenu li{text-align:right}.menu.align-right.icon-bottom li a i,.menu.align-right.icon-bottom li a img,.menu.align-right.icon-bottom li a svg,.menu.align-right.icon-top li a i,.menu.align-right.icon-top li a img,.menu.align-right.icon-top li a svg{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon:after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px #fefefe,0 14px #fefefe;content:""}.menu-icon:hover:after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px #cacaca,0 14px #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark:after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px #0a0a0a,0 14px #0a0a0a;content:""}.menu-icon.dark:hover:after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px #8a8a8a,0 14px #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a,.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a:after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a:after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]:after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translate(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translate(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a:before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a:after{right:14px}.dropdown.menu.vertical>li.opens-left>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a:after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a:after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a:after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a:after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px #0a0a0ab3}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px #0a0a0ab3}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translate(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translate(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translate(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px #0a0a0a40}.position-right{top:0;right:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translate(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translate(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translate(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px #0a0a0a40}.position-top{top:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px #0a0a0a40}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px #0a0a0a40}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push,.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:#0a0a0a73;overflow-y:auto;-webkit-overflow-scrolling:touch}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix:after,.clearfix:before{display:table;content:" ";-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix:after{clear:both}.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.show-for-dark-mode{display:none}.hide-for-dark-mode{display:block}@media screen and (prefers-color-scheme:dark){.show-for-dark-mode{display:block!important}.hide-for-dark-mode{display:none!important}}.show-for-ie{display:none}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.show-for-ie{display:block!important}.hide-for-ie{display:none!important}}.show-for-sticky{display:none}.is-stuck .show-for-sticky{display:block}.is-stuck .hide-for-sticky{display:none}li{opacity:.9;margin-left:.2em;margin-right:.2em}.row{margin:0!important;max-width:100%!important}.header{background-color:green;font-weight:700;color:#fff;display:block;padding:1.25rem;font-size:.75rem;text-align:center;line-height:1;margin-bottom:.5rem}.comp-column{max-height:100vh;flex:1;display:flex;flex-direction:column}.tabs-panel{height:100%}.vsplit{display:flex;height:calc(100% - 60px);flex-direction:column}.results{flex:1;overflow-y:auto}.performer,.album{font-size:smaller;font-style:italic}.title{font-weight:700}.menu li{padding:.4em}.small-12,.tabs-panel{padding:0}.menu li:nth-child(odd){background-color:#e6e6e6}.menu li:nth-child(even){background-color:#f6f6f6}.button,button:focus{background-color:green}#recent .eta{display:none}.artist:after{content:" - "}.button:hover,button:hover{background-color:#3b3b3b}.tabs{border:none}.tabs-title>a{color:green}.tabs-title>a:hover{background-color:#444;color:#fff}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{color:#fff;font-weight:700;background-color:green}div.tabs{display:flex}.fright{float:right}div.tabs .tabs-title{flex-grow:1;text-align:center}.tabs{margin-bottom:.1em;background-color:#3b3b3b} +@charset "UTF-8";.input-group[data-v-0a753407]{margin-bottom:0}.artist[data-v-6a422aee]:after{content:" - "}.singer[data-v-6a422aee]{font-size:smaller;font-style:italic}.title[data-v-6a422aee]{font-weight:700}#search-results div[data-v-66917cda]{vertical-align:middle;height:100%}.current[data-v-bd331cc3]{background-color:green!important}.current[data-v-bd331cc3]:before,#large-current[data-v-bd331cc3]:before{content:"Now Playing";text-align:center;font-weight:700}.eta[data-v-bd331cc3]{float:right}.eta[data-v-bd331cc3]:before{content:"in "}#recent[data-v-430aab46]{flex-direction:column-reverse}.tabs-title>a[data-v-e8c2a5dc]{color:green}.tabs-title>a[data-v-e8c2a5dc]:hover{background-color:#444;color:#fff}.tabs-title>a[data-v-e8c2a5dc]:focus,.tabs-title>a[aria-selected=true][data-v-e8c2a5dc]{color:#fff;font-weight:700;background-color:green}.tabs-title[data-v-e8c2a5dc]{flex-grow:1;text-align:center}.splitter[data-v-5a625d16]{display:flex;height:100vh}.tabs-container[data-v-5a625d16]{flex:1;position:relative;overflow:auto}.tabs-panel{height:100%}.comp-column[data-v-2038344a]{margin:.2em .1em .2em .2em}.comp-column[data-v-3ebeb641]{margin:.2em .1em .1em .2em}.comp-column[data-v-b7d2a929]{margin:.2em .2em .1em}.splitter[data-v-0b531bce]{display:flex;height:100%}.btn[data-v-c71bf30b]{padding:3px}footer[data-v-1512e17e]{position:fixed;bottom:0;height:50px;line-height:50px;width:100%;padding-left:10px;background-color:green;font-weight:700;color:#fff;font-size:1.5rem;margin:auto}footer>.userName[data-v-1512e17e]{border:none;border-bottom:1px dashed #00F000;background-color:green;min-width:5em;display:inline-block;height:70%;text-align:center}.page[data-v-1b11abdb]{height:100vh;background:url(/assets/syng.84d20818.png) fixed;background-color:#8a8a8a;background-size:auto 50%;background-repeat:no-repeat;background-position:center}.page[data-v-1b11abdb]{height:100%;position:relative}#main-content[data-v-1b11abdb]{height:calc(100vh - 50px);max-height:100vh;max-width:100vw}@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[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-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[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-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}[data-whatinput=mouse] *,[data-whatinput=mouse] :focus,[data-whatinput=touch] *,[data-whatinput=touch] :focus,[data-whatintent=mouse] *,[data-whatintent=mouse] :focus,[data-whatintent=touch] *,[data-whatintent=touch] :focus{outline:0}[draggable=false]{-webkit-touch-callout:none;-webkit-user-select:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:0}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:0}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:0;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto;-webkit-overflow-scrolling:touch}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px #0a0a0a1a;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:0}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;line-height:1.5;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:0}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem 1.5rem .5rem .5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url('data:image/svg+xml;utf8,');background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\fffd){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#cc4b37;background-color:#f9ecea}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-moz-placeholder{color:#cc4b37}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#cc4b37}.is-invalid-input:not(:focus)::placeholder{color:#cc4b37}.is-invalid-label{color:#cc4b37}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#cc4b37}.form-error.is-visible{display:block}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:Helvetica Neue,Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#1779ba;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#1468a0}a img{border:0}hr{clear:both;max-width:75rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,Liberation Mono,Courier,monospace;color:#0a0a0a}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"\2014 "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,Liberation Mono,Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,Liberation Mono,Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;print-color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print,th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}.grid-container{padding-right:.625rem;padding-left:.625rem;max-width:75rem;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.fluid{padding-right:.625rem;padding-left:.625rem;max-width:100%;margin-left:auto;margin-right:auto}@media print,screen and (min-width:40em){.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem}}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.625rem;margin-right:-.625rem}@media print,screen and (min-width:40em){.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}}.grid-margin-x>.cell{width:calc(100% - 1.25rem);margin-left:.625rem;margin-right:.625rem}@media print,screen and (min-width:40em){.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.25rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.25rem)}.grid-margin-x>.small-3{width:calc(25% - 1.25rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.25rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.25rem)}.grid-margin-x>.small-6{width:calc(50% - 1.25rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.25rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.25rem)}.grid-margin-x>.small-9{width:calc(75% - 1.25rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.25rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.25rem)}.grid-margin-x>.small-12{width:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-container:not(.full)>.grid-padding-x{margin-right:-.625rem;margin-left:-.625rem}@media print,screen and (min-width:40em){.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}}.grid-padding-x>.cell{padding-right:.625rem;padding-left:.625rem}@media print,screen and (min-width:40em){.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.25rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.25rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.25rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.25rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.25rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.25rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.25rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + .625rem)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + .625rem)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + .625rem)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + .625rem)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + .625rem)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + .625rem)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + .625rem)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + .625rem)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + .625rem)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + .625rem)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + .625rem)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + .625rem)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + .9375rem)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + .9375rem)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + .9375rem)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + .9375rem)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + .9375rem)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + .9375rem)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + .9375rem)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + .9375rem)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + .9375rem)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + .9375rem)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + .9375rem)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + .9375rem)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + .9375rem)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + .9375rem)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + .9375rem)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + .9375rem)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + .9375rem)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + .9375rem)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + .9375rem)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + .9375rem)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + .9375rem)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + .9375rem)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + .9375rem)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + .9375rem)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0;-ms-flex:1 1 0px;flex:1 1 0;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-padding-y>.cell{padding-top:.625rem;padding-bottom:.625rem}@media print,screen and (min-width:40em){.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh;width:auto}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.625rem;margin-bottom:-.625rem}@media print,screen and (min-width:40em){.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}}.grid-margin-y>.cell{height:calc(100% - 1.25rem);margin-top:.625rem;margin-bottom:.625rem}@media print,screen and (min-width:40em){.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.25rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.25rem)}.grid-margin-y>.small-3{height:calc(25% - 1.25rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.25rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.25rem)}.grid-margin-y>.small-6{height:calc(50% - 1.25rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.25rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.25rem)}.grid-margin-y>.small-9{height:calc(75% - 1.25rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.25rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.25rem)}.grid-margin-y>.small-12{height:calc(100% - 1.25rem)}@media print,screen and (min-width:40em){.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.25rem)}@media print,screen and (min-width:40em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem;padding:.85em 1em;border:1px solid transparent;border-radius:0;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button:focus,.button:hover{background-color:#14679e;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#1779ba;color:#fefefe}.button.primary:focus,.button.primary:hover{background-color:#126195;color:#fefefe}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#767676;color:#fefefe}.button.secondary:focus,.button.secondary:hover{background-color:#5e5e5e;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#22bb5b;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#a53b2a;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow:focus,.button.hollow:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#0c3d5d;color:#0c3d5d}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #767676;color:#767676}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#3b3b3b;color:#3b3b3b}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#157539;color:#157539}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#67251a;color:#67251a}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#1779ba}.button.clear:focus,.button.clear:hover{color:#0c3d5d}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#1779ba}.button.clear.primary:focus,.button.clear.primary:hover{color:#0c3d5d}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#767676}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#3b3b3b}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#3adb76}.button.clear.success:focus,.button.clear.success:hover{color:#157539}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#cc4b37}.button.clear.alert:focus,.button.clear.alert:hover{color:#67251a}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown:after{display:block;width:0;height:0;border-style:solid;border-width:.4em;content:"";border-bottom-width:0;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear:after,.button.dropdown.hollow:after{border-top-color:#1779ba}.button.dropdown.clear.primary:after,.button.dropdown.hollow.primary:after{border-top-color:#1779ba}.button.dropdown.clear.secondary:after,.button.dropdown.hollow.secondary:after{border-top-color:#767676}.button.dropdown.clear.success:after,.button.dropdown.hollow.success:after{border-top-color:#3adb76}.button.dropdown.clear.warning:after,.button.dropdown.hollow.warning:after{border-top-color:#ffae00}.button.dropdown.clear.alert:after,.button.dropdown.hollow.alert:after{border-top-color:#cc4b37}.button.arrow-only:after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group:after,.button-group:before{display:table;content:" ";-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group:after{clear:both}.button-group:after,.button-group:before{display:none}.button-group .button{margin:0 1px 1px 0;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#1779ba;color:#fefefe}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#126195;color:#fefefe}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#767676;color:#fefefe}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#5e5e5e;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#3adb76;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#22bb5b;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#cc4b37;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#a53b2a;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #1779ba;color:#1779ba}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#0c3d5d;color:#0c3d5d}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #767676;color:#767676}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#3b3b3b;color:#3b3b3b}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #3adb76;color:#3adb76}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#157539;color:#157539}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #cc4b37;color:#cc4b37}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#67251a;color:#67251a}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#1779ba}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#0c3d5d}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#1779ba}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#0c3d5d}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#767676}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#3b3b3b}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#3adb76}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#157539}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#cc4b37}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#67251a}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.label{display:inline-block;padding:.33333rem .5rem;border-radius:0;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#1779ba;color:#fefefe}.label.primary{background:#1779ba;color:#fefefe}.label.secondary{background:#767676;color:#fefefe}.label.success{background:#3adb76;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.alert{background:#cc4b37;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:0;background-color:#cacaca}.progress.primary .progress-meter{background-color:#1779ba}.progress.secondary .progress-meter{background-color:#767676}.progress.success .progress-meter{background-color:#3adb76}.progress.warning .progress-meter{background-color:#ffae00}.progress.alert .progress-meter{background-color:#cc4b37}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#1779ba}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;cursor:-webkit-grab;cursor:grab;display:inline-block;width:1.4rem;height:1.4rem;border-radius:0;background-color:#1779ba;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#14679e}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear;cursor:-webkit-grabbing;cursor:grabbing}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scaleY(-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%)}.switch{position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:2rem}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:0;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle:after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translateZ(0);border-radius:0;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:""}input:checked~.switch-paddle{background:#1779ba}input:checked~.switch-paddle:after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle:after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle:after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle:after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle:after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle:after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle:after{left:2.75rem}table{border-collapse:collapse;width:100%;margin-bottom:1rem;border-radius:0}tbody,tfoot,thead{border:1px solid #f1f1f1;background-color:#fefefe}caption{padding:.5rem .625rem .625rem;font-weight:700}thead{background:#f8f8f8;color:#0a0a0a}tfoot{background:#f1f1f1;color:#0a0a0a}tfoot tr,thead tr{background:0 0}tfoot td,tfoot th,thead td,thead th{padding:.5rem .625rem .625rem;font-weight:700;text-align:left}tbody td,tbody th{padding:.5rem .625rem .625rem}tbody tr:nth-child(even){border-bottom:0;background-color:#f1f1f1}table.unstriped tbody{background-color:#fefefe}table.unstriped tbody tr{border-bottom:1px solid #f1f1f1;background-color:#fefefe}@media print,screen and (max-width:63.99875em){table.stack thead,table.stack tfoot{display:none}table.stack td,table.stack th,table.stack tr{display:block}table.stack td{border-top:0}}table.scroll{display:block;width:100%;overflow-x:auto}table.hover thead tr:hover{background-color:#f3f3f3}table.hover tfoot tr:hover{background-color:#ececec}table.hover tbody tr:hover{background-color:#f9f9f9}table.hover:not(.unstriped) tr:nth-of-type(even):hover{background-color:#ececec}.table-scroll{overflow-x:auto}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#1779ba;color:#fefefe}.badge.primary{background:#1779ba;color:#fefefe}.badge.secondary{background:#767676;color:#fefefe}.badge.success{background:#3adb76;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.alert{background:#cc4b37;color:#fefefe}.breadcrumbs{margin:0 0 1rem;list-style:none}.breadcrumbs:after,.breadcrumbs:before{display:table;content:" ";-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs:after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child):after{position:relative;margin:0 .75rem;opacity:1;content:"/";color:#cacaca}.breadcrumbs a{color:#1779ba}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.callout{position:relative;margin:0 0 1rem;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:0;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#d7ecfa;color:#0a0a0a}.callout.secondary{background-color:#eaeaea;color:#0a0a0a}.callout.success{background-color:#e1faea;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.alert{background-color:#f7e4e1;color:#0a0a0a}.callout.small{padding:.5rem}.callout.large{padding:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:0;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.pagination{margin-left:0;margin-bottom:1rem}.pagination:after,.pagination:before{display:table;content:" ";-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination:after{clear:both}.pagination li{margin-right:.0625rem;border-radius:0;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:0;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#1779ba;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis:after{padding:.1875rem .625rem;content:"\2026";color:#0a0a0a}.pagination-previous a:before,.pagination-previous.disabled:before{display:inline-block;margin-right:.5rem;content:"\ab"}.pagination-next a:after,.pagination-next.disabled:after{display:inline-block;margin-left:.5rem;content:"\bb"}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:0;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip:before{position:absolute}.tooltip.bottom:before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:"";border-top-width:0;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center:before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%)}.tooltip.top:before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:"";border-bottom-width:0;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center:before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translate(-50%)}.tooltip.left:before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:"";border-right-width:0;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center:before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right:before{display:block;width:0;height:0;border-style:solid;border-width:.75rem;content:"";border-left-width:0;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center:before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top:before{bottom:auto;top:10%}.tooltip.align-bottom:before{bottom:10%;top:auto}.tooltip.align-left:before{left:10%;right:auto}.tooltip.align-right:before{left:auto;right:10%}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:0}.accordion-item:last-child>:last-child{border-radius:0}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#1779ba}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title:before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:"+"}.is-active>.accordion-title:before{content:"\2013"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:#0a0a0a80;color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:#0a0a0a80}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover,.orbit-bullets button.is-active{background-color:#8a8a8a}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs:after,.tabs:before{display:table;content:" ";-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs:after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#1779ba}.tabs.primary>li>a{color:#fefefe}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#1673b1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#1779ba}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#1468a0}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#1779ba}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:0;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px #0a0a0a33;line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(23,121,186,.5);box-shadow:0 0 6px 1px #1779ba80}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.vertical.icon-bottom li a i,.menu.vertical.icon-bottom li a img,.menu.vertical.icon-bottom li a svg,.menu.vertical.icon-top li a i,.menu.vertical.icon-top li a img,.menu.vertical.icon-top li a svg{text-align:left}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.expanded.icon-bottom li a i,.menu.expanded.icon-bottom li a img,.menu.expanded.icon-bottom li a svg,.menu.expanded.icon-top li a i,.menu.expanded.icon-top li a img,.menu.expanded.icon-top li a svg{text-align:left}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li,.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li,.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons a,.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a,.menu.nested.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg,.menu.nested.icon-left li a i,.menu.nested.icon-left li a img,.menu.nested.icon-left li a svg{margin-right:.25rem}.menu.icon-right li a,.menu.nested.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg,.menu.nested.icon-right li a i,.menu.nested.icon-right li a img,.menu.nested.icon-right li a svg{margin-left:.25rem}.menu.icon-top li a,.menu.nested.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg,.menu.nested.icon-top li a i,.menu.nested.icon-top li a img,.menu.nested.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a,.menu.nested.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg,.menu.nested.icon-bottom li a i,.menu.nested.icon-bottom li a img,.menu.nested.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#1779ba;color:#fefefe}.menu .active>a{background:#1779ba;color:#fefefe}.menu.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-right li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right.vertical li{display:block;text-align:right}.menu.align-right.vertical li .submenu li{text-align:right}.menu.align-right.icon-bottom li a i,.menu.align-right.icon-bottom li a img,.menu.align-right.icon-bottom li a svg,.menu.align-right.icon-top li a i,.menu.align-right.icon-top li a img,.menu.align-right.icon-top li a svg{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon:after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px #fefefe,0 14px #fefefe;content:""}.menu-icon:hover:after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px #cacaca,0 14px #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark:after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px #0a0a0a,0 14px #0a0a0a;content:""}.menu-icon.dark:hover:after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px #8a8a8a,0 14px #8a8a8a}.accordion-menu li{width:100%}.accordion-menu a,.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-bottom-width:0;border-color:#1779ba transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a:after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a:after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-bottom-width:0;border-color:#1779ba transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]:after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translate(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translate(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a:before{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#1779ba}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a:after{right:14px}.dropdown.menu.vertical>li.opens-left>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a:after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-bottom-width:0;border-color:#1779ba transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a:after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a:after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a:after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-left-width:0;border-color:transparent #1779ba transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a:after{display:block;width:0;height:0;border-style:solid;border-width:6px;content:"";border-right-width:0;border-color:transparent transparent transparent #1779ba}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px #0a0a0ab3}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px #0a0a0ab3}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translate(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translate(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translate(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px #0a0a0a40}.position-right{top:0;right:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translate(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translate(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translate(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px #0a0a0a40}.position-top{top:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px #0a0a0a40}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px #0a0a0a40}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push,.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:#0a0a0a73;overflow-y:auto;-webkit-overflow-scrolling:touch}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:0;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:75rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:75rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:75rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix:after,.clearfix:before{display:table;content:" ";-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix:after{clear:both}.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.hide{display:none!important}.invisible{visibility:hidden}.visible{visibility:visible}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.show-for-dark-mode{display:none}.hide-for-dark-mode{display:block}@media screen and (prefers-color-scheme:dark){.show-for-dark-mode{display:block!important}.hide-for-dark-mode{display:none!important}}.show-for-ie{display:none}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.show-for-ie{display:block!important}.hide-for-ie{display:none!important}}.show-for-sticky{display:none}.is-stuck .show-for-sticky{display:block}.is-stuck .hide-for-sticky{display:none}li{opacity:.9;margin-left:.2em;margin-right:.2em}.row{margin:0!important;max-width:100%!important}.header{background-color:green;font-weight:700;color:#fff;display:block;padding:1.25rem;font-size:.75rem;text-align:center;line-height:1;margin-bottom:.5rem}.comp-column{max-height:100vh;flex:1;display:flex;flex-direction:column}.tabs-panel{height:100%}.vsplit{display:flex;height:calc(100% - 60px);flex-direction:column}.results{flex:1;overflow-y:auto}.performer,.album{font-size:smaller;font-style:italic}.title{font-weight:700}.menu li{padding:.4em}.small-12,.tabs-panel{padding:0}.menu li:nth-child(odd){background-color:#e6e6e6}.menu li:nth-child(even){background-color:#f6f6f6}.button,button:focus{background-color:green}#recent .eta{display:none}.artist:after{content:" - "}.button:hover,button:hover{background-color:#3b3b3b}.tabs{border:none}.tabs-title>a{color:green}.tabs-title>a:hover{background-color:#444;color:#fff}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{color:#fff;font-weight:700;background-color:green}div.tabs{display:flex}.fright{float:right}div.tabs .tabs-title{flex-grow:1;text-align:center}.tabs{margin-bottom:.1em;background-color:#3b3b3b} diff --git a/syng/static/assets/index.c3b37c18.js b/syng/static/assets/index.d57b37cd.js similarity index 92% rename from syng/static/assets/index.c3b37c18.js rename to syng/static/assets/index.d57b37cd.js index 31dc925..7b7973b 100644 --- a/syng/static/assets/index.c3b37c18.js +++ b/syng/static/assets/index.d57b37cd.js @@ -1,8 +1,8 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerpolicy&&(s.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?s.credentials="include":i.crossorigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();function Wo(e,t){const n=Object.create(null),r=e.split(",");for(let i=0;i!!n[i.toLowerCase()]:i=>!!n[i]}function Vo(e){if(Te(e)){const t={};for(let n=0;n{if(n){const r=n.split(Lp);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Gi(e){let t="";if(kt(e))t=e;else if(Te(e))for(let n=0;nkt(e)?e:e==null?"":Te(e)||nt(e)&&(e.toString===hf||!Ae(e.toString))?JSON.stringify(e,cf,2):String(e),cf=(e,t)=>t&&t.__v_isRef?cf(e,t.value):Wi(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,i])=>(n[`${r} =>`]=i,n),{})}:ff(t)?{[`Set(${t.size})`]:[...t.values()]}:nt(t)&&!Te(t)&&!pf(t)?String(t):t,Xe={},Ui=[],dn=()=>{},Hp=()=>!1,Fp=/^on[^a-z]/,Js=e=>Fp.test(e),Yo=e=>e.startsWith("onUpdate:"),Pt=Object.assign,Ko=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},qp=Object.prototype.hasOwnProperty,Ne=(e,t)=>qp.call(e,t),Te=Array.isArray,Wi=e=>Zs(e)==="[object Map]",ff=e=>Zs(e)==="[object Set]",Ae=e=>typeof e=="function",kt=e=>typeof e=="string",Go=e=>typeof e=="symbol",nt=e=>e!==null&&typeof e=="object",df=e=>nt(e)&&Ae(e.then)&&Ae(e.catch),hf=Object.prototype.toString,Zs=e=>hf.call(e),Bp=e=>Zs(e).slice(8,-1),pf=e=>Zs(e)==="[object Object]",Qo=e=>kt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ss=Wo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ea=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},jp=/-(\w)/g,Tn=ea(e=>e.replace(jp,(t,n)=>n?n.toUpperCase():"")),Up=/\B([A-Z])/g,Ri=ea(e=>e.replace(Up,"-$1").toLowerCase()),ta=ea(e=>e.charAt(0).toUpperCase()+e.slice(1)),ja=ea(e=>e?`on${ta(e)}`:""),Ir=(e,t)=>!Object.is(e,t),Ua=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},mf=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let _u;const Wp=()=>_u||(_u=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let bn;class Vp{constructor(t=!1){this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=bn,!t&&bn&&(this.index=(bn.scopes||(bn.scopes=[])).push(this)-1)}run(t){if(this.active){const n=bn;try{return bn=this,t()}finally{bn=n}}}on(){bn=this}off(){bn=this.parent}stop(t){if(this.active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},gf=e=>(e.w&si)>0,vf=e=>(e.n&si)>0,Kp=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(m==="length"||m>=c)&&u.push(p)})}else switch(n!==void 0&&u.push(o.get(n)),t){case"add":Te(e)?Qo(n)&&u.push(o.get("length")):(u.push(o.get(Ti)),Wi(e)&&u.push(o.get(fo)));break;case"delete":Te(e)||(u.push(o.get(Ti)),Wi(e)&&u.push(o.get(fo)));break;case"set":Wi(e)&&u.push(o.get(Ti));break}if(u.length===1)u[0]&&ho(u[0]);else{const c=[];for(const p of u)p&&c.push(...p);ho(Xo(c))}}function ho(e,t){const n=Te(e)?e:[...e];for(const r of n)r.computed&&ku(r);for(const r of n)r.computed||ku(r)}function ku(e,t){(e!==ln||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Qp=Wo("__proto__,__v_isRef,__isVue"),_f=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Go)),Xp=Zo(),Jp=Zo(!1,!0),Zp=Zo(!0),xu=em();function em(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=Fe(this);for(let s=0,o=this.length;s{e[t]=function(...n){ir();const r=Fe(this)[t].apply(this,n);return rr(),r}}),e}function Zo(e=!1,t=!1){return function(r,i,s){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&s===(e?t?gm:$f:t?Cf:xf).get(r))return r;const o=Te(r);if(!e&&o&&Ne(xu,i))return Reflect.get(xu,i,s);const u=Reflect.get(r,i,s);return(Go(i)?_f.has(i):Qp(i))||(e||Yt(r,"get",i),t)?u:Ot(u)?o&&Qo(i)?u:u.value:nt(u)?e?Tf(u):sr(u):u}}const tm=wf(),nm=wf(!0);function wf(e=!1){return function(n,r,i,s){let o=n[r];if(Qi(o)&&Ot(o)&&!Ot(i))return!1;if(!e&&(!Fs(i)&&!Qi(i)&&(o=Fe(o),i=Fe(i)),!Te(n)&&Ot(o)&&!Ot(i)))return o.value=i,!0;const u=Te(n)&&Qo(r)?Number(r)e,na=e=>Reflect.getPrototypeOf(e);function fs(e,t,n=!1,r=!1){e=e.__v_raw;const i=Fe(e),s=Fe(t);n||(t!==s&&Yt(i,"get",t),Yt(i,"get",s));const{has:o}=na(i),u=r?el:n?il:Mr;if(o.call(i,t))return u(e.get(t));if(o.call(i,s))return u(e.get(s));e!==i&&e.get(t)}function ds(e,t=!1){const n=this.__v_raw,r=Fe(n),i=Fe(e);return t||(e!==i&&Yt(r,"has",e),Yt(r,"has",i)),e===i?n.has(e):n.has(e)||n.has(i)}function hs(e,t=!1){return e=e.__v_raw,!t&&Yt(Fe(e),"iterate",Ti),Reflect.get(e,"size",e)}function Cu(e){e=Fe(e);const t=Fe(this);return na(t).has.call(t,e)||(t.add(e),In(t,"add",e,e)),this}function $u(e,t){t=Fe(t);const n=Fe(this),{has:r,get:i}=na(n);let s=r.call(n,e);s||(e=Fe(e),s=r.call(n,e));const o=i.call(n,e);return n.set(e,t),s?Ir(t,o)&&In(n,"set",e,t):In(n,"add",e,t),this}function Tu(e){const t=Fe(this),{has:n,get:r}=na(t);let i=n.call(t,e);i||(e=Fe(e),i=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return i&&In(t,"delete",e,void 0),s}function Au(){const e=Fe(this),t=e.size!==0,n=e.clear();return t&&In(e,"clear",void 0,void 0),n}function ps(e,t){return function(r,i){const s=this,o=s.__v_raw,u=Fe(o),c=t?el:e?il:Mr;return!e&&Yt(u,"iterate",Ti),o.forEach((p,m)=>r.call(i,c(p),c(m),s))}}function ms(e,t,n){return function(...r){const i=this.__v_raw,s=Fe(i),o=Wi(s),u=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,p=i[e](...r),m=n?el:t?il:Mr;return!t&&Yt(s,"iterate",c?fo:Ti),{next(){const{value:w,done:x}=p.next();return x?{value:w,done:x}:{value:u?[m(w[0]),m(w[1])]:m(w),done:x}},[Symbol.iterator](){return this}}}}function Vn(e){return function(...t){return e==="delete"?!1:this}}function lm(){const e={get(s){return fs(this,s)},get size(){return hs(this)},has:ds,add:Cu,set:$u,delete:Tu,clear:Au,forEach:ps(!1,!1)},t={get(s){return fs(this,s,!1,!0)},get size(){return hs(this)},has:ds,add:Cu,set:$u,delete:Tu,clear:Au,forEach:ps(!1,!0)},n={get(s){return fs(this,s,!0)},get size(){return hs(this,!0)},has(s){return ds.call(this,s,!0)},add:Vn("add"),set:Vn("set"),delete:Vn("delete"),clear:Vn("clear"),forEach:ps(!0,!1)},r={get(s){return fs(this,s,!0,!0)},get size(){return hs(this,!0)},has(s){return ds.call(this,s,!0)},add:Vn("add"),set:Vn("set"),delete:Vn("delete"),clear:Vn("clear"),forEach:ps(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=ms(s,!1,!1),n[s]=ms(s,!0,!1),t[s]=ms(s,!1,!0),r[s]=ms(s,!0,!0)}),[e,n,t,r]}const[um,cm,fm,dm]=lm();function tl(e,t){const n=t?e?dm:fm:e?cm:um;return(r,i,s)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?r:Reflect.get(Ne(n,i)&&i in r?n:r,i,s)}const hm={get:tl(!1,!1)},pm={get:tl(!1,!0)},mm={get:tl(!0,!1)},xf=new WeakMap,Cf=new WeakMap,$f=new WeakMap,gm=new WeakMap;function vm(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ym(e){return e.__v_skip||!Object.isExtensible(e)?0:vm(Bp(e))}function sr(e){return Qi(e)?e:nl(e,!1,kf,hm,xf)}function bm(e){return nl(e,!1,om,pm,Cf)}function Tf(e){return nl(e,!0,am,mm,$f)}function nl(e,t,n,r,i){if(!nt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=i.get(e);if(s)return s;const o=ym(e);if(o===0)return e;const u=new Proxy(e,o===2?r:n);return i.set(e,u),u}function Vi(e){return Qi(e)?Vi(e.__v_raw):!!(e&&e.__v_isReactive)}function Qi(e){return!!(e&&e.__v_isReadonly)}function Fs(e){return!!(e&&e.__v_isShallow)}function Af(e){return Vi(e)||Qi(e)}function Fe(e){const t=e&&e.__v_raw;return t?Fe(t):e}function Ef(e){return Hs(e,"__v_skip",!0),e}const Mr=e=>nt(e)?sr(e):e,il=e=>nt(e)?Tf(e):e;function Sf(e){ti&&ln&&(e=Fe(e),bf(e.dep||(e.dep=Xo())))}function Of(e,t){e=Fe(e),e.dep&&ho(e.dep)}function Ot(e){return!!(e&&e.__v_isRef===!0)}function zf(e){return Rf(e,!1)}function _m(e){return Rf(e,!0)}function Rf(e,t){return Ot(e)?e:new wm(e,t)}class wm{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Fe(t),this._value=n?t:Mr(t)}get value(){return Sf(this),this._value}set value(t){const n=this.__v_isShallow||Fs(t)||Qi(t);t=n?t:Fe(t),Ir(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Mr(t),Of(this))}}function ni(e){return Ot(e)?e.value:e}const km={get:(e,t,n)=>ni(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const i=e[t];return Ot(i)&&!Ot(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Pf(e){return Vi(e)?e:new Proxy(e,km)}var Lf;class xm{constructor(t,n,r,i){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[Lf]=!1,this._dirty=!0,this.effect=new Jo(t,()=>{this._dirty||(this._dirty=!0,Of(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=r}get value(){const t=Fe(this);return Sf(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}Lf="__v_isReadonly";function Cm(e,t,n=!1){let r,i;const s=Ae(e);return s?(r=e,i=dn):(r=e.get,i=e.set),new xm(r,i,s||!i,n)}function ii(e,t,n,r){let i;try{i=r?e(...r):e()}catch(s){ia(s,t,n)}return i}function hn(e,t,n,r){if(Ae(e)){const s=ii(e,t,n,r);return s&&df(s)&&s.catch(o=>{ia(o,t,n)}),s}const i=[];for(let s=0;s>>1;Hr(St[r])wn&&St.splice(t,1)}function Em(e){Te(e)?Yi.push(...e):(!Ln||!Ln.includes(e,e.allowRecurse?wi+1:wi))&&Yi.push(e),Mf()}function Eu(e,t=Dr?wn+1:0){for(;tHr(n)-Hr(r)),wi=0;wie.id==null?1/0:e.id,Sm=(e,t)=>{const n=Hr(e)-Hr(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Hf(e){po=!1,Dr=!0,St.sort(Sm);const t=dn;try{for(wn=0;wnkt(R)?R.trim():R)),w&&(i=n.map(mf))}let u,c=r[u=ja(t)]||r[u=ja(Tn(t))];!c&&s&&(c=r[u=ja(Ri(t))]),c&&hn(c,e,6,i);const p=r[u+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[u])return;e.emitted[u]=!0,hn(p,e,6,i)}}function Ff(e,t,n=!1){const r=t.emitsCache,i=r.get(e);if(i!==void 0)return i;const s=e.emits;let o={},u=!1;if(!Ae(e)){const c=p=>{const m=Ff(p,t,!0);m&&(u=!0,Pt(o,m))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!s&&!u?(nt(e)&&r.set(e,null),null):(Te(s)?s.forEach(c=>o[c]=null):Pt(o,s),nt(e)&&r.set(e,o),o)}function ra(e,t){return!e||!Js(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ne(e,t[0].toLowerCase()+t.slice(1))||Ne(e,Ri(t))||Ne(e,t))}let Jt=null,sa=null;function qs(e){const t=Jt;return Jt=e,sa=e&&e.type.__scopeId||null,t}function Pi(e){sa=e}function Li(){sa=null}function zm(e,t=Jt,n){if(!t||e._n)return e;const r=(...i)=>{r._d&&Du(-1);const s=qs(t);let o;try{o=e(...i)}finally{qs(s),r._d&&Du(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Wa(e){const{type:t,vnode:n,proxy:r,withProxy:i,props:s,propsOptions:[o],slots:u,attrs:c,emit:p,render:m,renderCache:w,data:x,setupState:R,ctx:I,inheritAttrs:D}=e;let Z,O;const U=qs(e);try{if(n.shapeFlag&4){const J=i||r;Z=_n(m.call(J,J,w,s,R,x,I)),O=c}else{const J=t;Z=_n(J.length>1?J(s,{attrs:c,slots:u,emit:p}):J(s,null)),O=t.props?c:Rm(c)}}catch(J){Sr.length=0,ia(J,e,1),Z=Se(Ei)}let F=Z;if(O&&D!==!1){const J=Object.keys(O),{shapeFlag:ke}=F;J.length&&ke&7&&(o&&J.some(Yo)&&(O=Pm(O,o)),F=Xi(F,O))}return n.dirs&&(F=Xi(F),F.dirs=F.dirs?F.dirs.concat(n.dirs):n.dirs),n.transition&&(F.transition=n.transition),Z=F,qs(U),Z}const Rm=e=>{let t;for(const n in e)(n==="class"||n==="style"||Js(n))&&((t||(t={}))[n]=e[n]);return t},Pm=(e,t)=>{const n={};for(const r in e)(!Yo(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Lm(e,t,n){const{props:r,children:i,component:s}=e,{props:o,children:u,patchFlag:c}=t,p=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Su(r,o,p):!!o;if(c&8){const m=t.dynamicProps;for(let w=0;we.__isSuspense;function Mm(e,t){t&&t.pendingBranch?Te(e)?t.effects.push(...e):t.effects.push(e):Em(e)}function Os(e,t){if($t){let n=$t.provides;const r=$t.parent&&$t.parent.provides;r===n&&(n=$t.provides=Object.create(r)),n[e]=t}}function pn(e,t,n=!1){const r=$t||Jt;if(r){const i=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return n&&Ae(t)?t.call(r.proxy):t}}const gs={};function Ar(e,t,n){return qf(e,t,n)}function qf(e,t,{immediate:n,deep:r,flush:i,onTrack:s,onTrigger:o}=Xe){const u=$t;let c,p=!1,m=!1;if(Ot(e)?(c=()=>e.value,p=Fs(e)):Vi(e)?(c=()=>e,r=!0):Te(e)?(m=!0,p=e.some(F=>Vi(F)||Fs(F)),c=()=>e.map(F=>{if(Ot(F))return F.value;if(Vi(F))return xi(F);if(Ae(F))return ii(F,u,2)})):Ae(e)?t?c=()=>ii(e,u,2):c=()=>{if(!(u&&u.isUnmounted))return w&&w(),hn(e,u,3,[x])}:c=dn,t&&r){const F=c;c=()=>xi(F())}let w,x=F=>{w=O.onStop=()=>{ii(F,u,4)}},R;if(qr)if(x=dn,t?n&&hn(t,u,3,[c(),m?[]:void 0,x]):c(),i==="sync"){const F=Eg();R=F.__watcherHandles||(F.__watcherHandles=[])}else return dn;let I=m?new Array(e.length).fill(gs):gs;const D=()=>{if(!!O.active)if(t){const F=O.run();(r||p||(m?F.some((J,ke)=>Ir(J,I[ke])):Ir(F,I)))&&(w&&w(),hn(t,u,3,[F,I===gs?void 0:m&&I[0]===gs?[]:I,x]),I=F)}else O.run()};D.allowRecurse=!!t;let Z;i==="sync"?Z=D:i==="post"?Z=()=>Ft(D,u&&u.suspense):(D.pre=!0,u&&(D.id=u.uid),Z=()=>sl(D));const O=new Jo(c,Z);t?n?D():I=O.run():i==="post"?Ft(O.run.bind(O),u&&u.suspense):O.run();const U=()=>{O.stop(),u&&u.scope&&Ko(u.scope.effects,O)};return R&&R.push(U),U}function Dm(e,t,n){const r=this.proxy,i=kt(e)?e.includes(".")?Bf(r,e):()=>r[e]:e.bind(r,r);let s;Ae(t)?s=t:(s=t.handler,n=t);const o=$t;Ji(this);const u=qf(i,s.bind(r),n);return o?Ji(o):Ai(),u}function Bf(e,t){const n=t.split(".");return()=>{let r=e;for(let i=0;i{xi(n,t)});else if(pf(e))for(const n in e)xi(e[n],t);return e}function Gr(e){return Ae(e)?{setup:e,name:e.name}:e}const zs=e=>!!e.type.__asyncLoader,jf=e=>e.type.__isKeepAlive;function Hm(e,t){Uf(e,"a",t)}function Fm(e,t){Uf(e,"da",t)}function Uf(e,t,n=$t){const r=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(aa(t,r,n),n){let i=n.parent;for(;i&&i.parent;)jf(i.parent.vnode)&&qm(r,t,n,i),i=i.parent}}function qm(e,t,n,r){const i=aa(t,e,r,!0);Vf(()=>{Ko(r[t],i)},n)}function aa(e,t,n=$t,r=!1){if(n){const i=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;ir(),Ji(n);const u=hn(t,n,e,o);return Ai(),rr(),u});return r?i.unshift(s):i.push(s),s}}const Fn=e=>(t,n=$t)=>(!qr||e==="sp")&&aa(e,(...r)=>t(...r),n),Bm=Fn("bm"),oa=Fn("m"),jm=Fn("bu"),Um=Fn("u"),Wf=Fn("bum"),Vf=Fn("um"),Wm=Fn("sp"),Vm=Fn("rtg"),Ym=Fn("rtc");function Km(e,t=$t){aa("ec",e,t)}function Ou(e,t){const n=Jt;if(n===null)return e;const r=ca(n)||n.proxy,i=e.dirs||(e.dirs=[]);for(let s=0;st(o,u,void 0,s&&s[u]));else{const o=Object.keys(e);i=new Array(o.length);for(let u=0,c=o.length;ue?rd(e)?ca(e)||e.proxy:mo(e.parent):null,Er=Pt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>mo(e.parent),$root:e=>mo(e.root),$emit:e=>e.emit,$options:e=>ol(e),$forceUpdate:e=>e.f||(e.f=()=>sl(e.update)),$nextTick:e=>e.n||(e.n=If.bind(e.proxy)),$watch:e=>Dm.bind(e)}),Va=(e,t)=>e!==Xe&&!e.__isScriptSetup&&Ne(e,t),Xm={get({_:e},t){const{ctx:n,setupState:r,data:i,props:s,accessCache:o,type:u,appContext:c}=e;let p;if(t[0]!=="$"){const R=o[t];if(R!==void 0)switch(R){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return s[t]}else{if(Va(r,t))return o[t]=1,r[t];if(i!==Xe&&Ne(i,t))return o[t]=2,i[t];if((p=e.propsOptions[0])&&Ne(p,t))return o[t]=3,s[t];if(n!==Xe&&Ne(n,t))return o[t]=4,n[t];go&&(o[t]=0)}}const m=Er[t];let w,x;if(m)return t==="$attrs"&&Yt(e,"get",t),m(e);if((w=u.__cssModules)&&(w=w[t]))return w;if(n!==Xe&&Ne(n,t))return o[t]=4,n[t];if(x=c.config.globalProperties,Ne(x,t))return x[t]},set({_:e},t,n){const{data:r,setupState:i,ctx:s}=e;return Va(i,t)?(i[t]=n,!0):r!==Xe&&Ne(r,t)?(r[t]=n,!0):Ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:s}},o){let u;return!!n[o]||e!==Xe&&Ne(e,o)||Va(t,o)||(u=s[0])&&Ne(u,o)||Ne(r,o)||Ne(Er,o)||Ne(i.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let go=!0;function Jm(e){const t=ol(e),n=e.proxy,r=e.ctx;go=!1,t.beforeCreate&&Ru(t.beforeCreate,e,"bc");const{data:i,computed:s,methods:o,watch:u,provide:c,inject:p,created:m,beforeMount:w,mounted:x,beforeUpdate:R,updated:I,activated:D,deactivated:Z,beforeDestroy:O,beforeUnmount:U,destroyed:F,unmounted:J,render:ke,renderTracked:h,renderTriggered:qe,errorCaptured:st,serverPrefetch:ct,expose:zt,inheritAttrs:en,components:at,directives:En,filters:tn}=t;if(p&&Zm(p,r,null,e.appContext.config.unwrapInjectedRef),o)for(const je in o){const De=o[je];Ae(De)&&(r[je]=De.bind(n))}if(i){const je=i.call(n,n);nt(je)&&(e.data=sr(je))}if(go=!0,s)for(const je in s){const De=s[je],qt=Ae(De)?De.bind(n,n):Ae(De.get)?De.get.bind(n,n):dn,vn=!Ae(De)&&Ae(De.set)?De.set.bind(n):dn,dt=tt({get:qt,set:vn});Object.defineProperty(r,je,{enumerable:!0,configurable:!0,get:()=>dt.value,set:Tt=>dt.value=Tt})}if(u)for(const je in u)Kf(u[je],r,n,je);if(c){const je=Ae(c)?c.call(n):c;Reflect.ownKeys(je).forEach(De=>{Os(De,je[De])})}m&&Ru(m,e,"c");function ft(je,De){Te(De)?De.forEach(qt=>je(qt.bind(n))):De&&je(De.bind(n))}if(ft(Bm,w),ft(oa,x),ft(jm,R),ft(Um,I),ft(Hm,D),ft(Fm,Z),ft(Km,st),ft(Ym,h),ft(Vm,qe),ft(Wf,U),ft(Vf,J),ft(Wm,ct),Te(zt))if(zt.length){const je=e.exposed||(e.exposed={});zt.forEach(De=>{Object.defineProperty(je,De,{get:()=>n[De],set:qt=>n[De]=qt})})}else e.exposed||(e.exposed={});ke&&e.render===dn&&(e.render=ke),en!=null&&(e.inheritAttrs=en),at&&(e.components=at),En&&(e.directives=En)}function Zm(e,t,n=dn,r=!1){Te(e)&&(e=vo(e));for(const i in e){const s=e[i];let o;nt(s)?"default"in s?o=pn(s.from||i,s.default,!0):o=pn(s.from||i):o=pn(s),Ot(o)&&r?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:u=>o.value=u}):t[i]=o}}function Ru(e,t,n){hn(Te(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Kf(e,t,n,r){const i=r.includes(".")?Bf(n,r):()=>n[r];if(kt(e)){const s=t[e];Ae(s)&&Ar(i,s)}else if(Ae(e))Ar(i,e.bind(n));else if(nt(e))if(Te(e))e.forEach(s=>Kf(s,t,n,r));else{const s=Ae(e.handler)?e.handler.bind(n):t[e.handler];Ae(s)&&Ar(i,s,e)}}function ol(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,u=s.get(t);let c;return u?c=u:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(p=>Bs(c,p,o,!0)),Bs(c,t,o)),nt(t)&&s.set(t,c),c}function Bs(e,t,n,r=!1){const{mixins:i,extends:s}=t;s&&Bs(e,s,n,!0),i&&i.forEach(o=>Bs(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const u=eg[o]||n&&n[o];e[o]=u?u(e[o],t[o]):t[o]}return e}const eg={data:Pu,props:_i,emits:_i,methods:_i,computed:_i,beforeCreate:Rt,created:Rt,beforeMount:Rt,mounted:Rt,beforeUpdate:Rt,updated:Rt,beforeDestroy:Rt,beforeUnmount:Rt,destroyed:Rt,unmounted:Rt,activated:Rt,deactivated:Rt,errorCaptured:Rt,serverPrefetch:Rt,components:_i,directives:_i,watch:ng,provide:Pu,inject:tg};function Pu(e,t){return t?e?function(){return Pt(Ae(e)?e.call(this,this):e,Ae(t)?t.call(this,this):t)}:t:e}function tg(e,t){return _i(vo(e),vo(t))}function vo(e){if(Te(e)){const t={};for(let n=0;n0)&&!(o&16)){if(o&8){const m=e.vnode.dynamicProps;for(let w=0;w{c=!0;const[x,R]=Qf(w,t,!0);Pt(o,x),R&&u.push(...R)};!n&&t.mixins.length&&t.mixins.forEach(m),e.extends&&m(e.extends),e.mixins&&e.mixins.forEach(m)}if(!s&&!c)return nt(e)&&r.set(e,Ui),Ui;if(Te(s))for(let m=0;m-1,R[1]=D<0||I-1||Ne(R,"default"))&&u.push(w)}}}const p=[o,u];return nt(e)&&r.set(e,p),p}function Lu(e){return e[0]!=="$"}function Nu(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Iu(e,t){return Nu(e)===Nu(t)}function Mu(e,t){return Te(t)?t.findIndex(n=>Iu(n,e)):Ae(t)&&Iu(t,e)?0:-1}const Xf=e=>e[0]==="_"||e==="$stable",ll=e=>Te(e)?e.map(_n):[_n(e)],sg=(e,t,n)=>{if(t._n)return t;const r=zm((...i)=>ll(t(...i)),n);return r._c=!1,r},Jf=(e,t,n)=>{const r=e._ctx;for(const i in e){if(Xf(i))continue;const s=e[i];if(Ae(s))t[i]=sg(i,s,r);else if(s!=null){const o=ll(s);t[i]=()=>o}}},Zf=(e,t)=>{const n=ll(t);e.slots.default=()=>n},ag=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=Fe(t),Hs(t,"_",n)):Jf(t,e.slots={})}else e.slots={},t&&Zf(e,t);Hs(e.slots,ua,1)},og=(e,t,n)=>{const{vnode:r,slots:i}=e;let s=!0,o=Xe;if(r.shapeFlag&32){const u=t._;u?n&&u===1?s=!1:(Pt(i,t),!n&&u===1&&delete i._):(s=!t.$stable,Jf(t,i)),o=t}else t&&(Zf(e,t),o={default:1});if(s)for(const u in i)!Xf(u)&&!(u in o)&&delete i[u]};function ed(){return{app:null,config:{isNativeTag:Hp,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let lg=0;function ug(e,t){return function(r,i=null){Ae(r)||(r=Object.assign({},r)),i!=null&&!nt(i)&&(i=null);const s=ed(),o=new Set;let u=!1;const c=s.app={_uid:lg++,_component:r,_props:i,_container:null,_context:s,_instance:null,version:Sg,get config(){return s.config},set config(p){},use(p,...m){return o.has(p)||(p&&Ae(p.install)?(o.add(p),p.install(c,...m)):Ae(p)&&(o.add(p),p(c,...m))),c},mixin(p){return s.mixins.includes(p)||s.mixins.push(p),c},component(p,m){return m?(s.components[p]=m,c):s.components[p]},directive(p,m){return m?(s.directives[p]=m,c):s.directives[p]},mount(p,m,w){if(!u){const x=Se(r,i);return x.appContext=s,m&&t?t(x,p):e(x,p,w),u=!0,c._container=p,p.__vue_app__=c,ca(x.component)||x.component.proxy}},unmount(){u&&(e(null,c._container),delete c._container.__vue_app__)},provide(p,m){return s.provides[p]=m,c}};return c}}function bo(e,t,n,r,i=!1){if(Te(e)){e.forEach((x,R)=>bo(x,t&&(Te(t)?t[R]:t),n,r,i));return}if(zs(r)&&!i)return;const s=r.shapeFlag&4?ca(r.component)||r.component.proxy:r.el,o=i?null:s,{i:u,r:c}=e,p=t&&t.r,m=u.refs===Xe?u.refs={}:u.refs,w=u.setupState;if(p!=null&&p!==c&&(kt(p)?(m[p]=null,Ne(w,p)&&(w[p]=null)):Ot(p)&&(p.value=null)),Ae(c))ii(c,u,12,[o,m]);else{const x=kt(c),R=Ot(c);if(x||R){const I=()=>{if(e.f){const D=x?Ne(w,c)?w[c]:m[c]:c.value;i?Te(D)&&Ko(D,s):Te(D)?D.includes(s)||D.push(s):x?(m[c]=[s],Ne(w,c)&&(w[c]=m[c])):(c.value=[s],e.k&&(m[e.k]=c.value))}else x?(m[c]=o,Ne(w,c)&&(w[c]=o)):R&&(c.value=o,e.k&&(m[e.k]=o))};o?(I.id=-1,Ft(I,n)):I()}}}const Ft=Mm;function cg(e){return fg(e)}function fg(e,t){const n=Wp();n.__VUE__=!0;const{insert:r,remove:i,patchProp:s,createElement:o,createText:u,createComment:c,setText:p,setElementText:m,parentNode:w,nextSibling:x,setScopeId:R=dn,insertStaticContent:I}=e,D=(k,E,H,j=null,L=null,G=null,re=!1,X=null,te=!!E.dynamicChildren)=>{if(k===E)return;k&&!yr(k,E)&&(j=ne(k),Tt(k,L,G,!0),k=null),E.patchFlag===-2&&(te=!1,E.dynamicChildren=null);const{type:Q,ref:pe,shapeFlag:oe}=E;switch(Q){case la:Z(k,E,H,j);break;case Ei:O(k,E,H,j);break;case Ya:k==null&&U(E,H,j,re);break;case Xt:at(k,E,H,j,L,G,re,X,te);break;default:oe&1?ke(k,E,H,j,L,G,re,X,te):oe&6?En(k,E,H,j,L,G,re,X,te):(oe&64||oe&128)&&Q.process(k,E,H,j,L,G,re,X,te,Ce)}pe!=null&&L&&bo(pe,k&&k.ref,G,E||k,!E)},Z=(k,E,H,j)=>{if(k==null)r(E.el=u(E.children),H,j);else{const L=E.el=k.el;E.children!==k.children&&p(L,E.children)}},O=(k,E,H,j)=>{k==null?r(E.el=c(E.children||""),H,j):E.el=k.el},U=(k,E,H,j)=>{[k.el,k.anchor]=I(k.children,E,H,j,k.el,k.anchor)},F=({el:k,anchor:E},H,j)=>{let L;for(;k&&k!==E;)L=x(k),r(k,H,j),k=L;r(E,H,j)},J=({el:k,anchor:E})=>{let H;for(;k&&k!==E;)H=x(k),i(k),k=H;i(E)},ke=(k,E,H,j,L,G,re,X,te)=>{re=re||E.type==="svg",k==null?h(E,H,j,L,G,re,X,te):ct(k,E,L,G,re,X,te)},h=(k,E,H,j,L,G,re,X)=>{let te,Q;const{type:pe,props:oe,shapeFlag:ue,transition:ge,dirs:$e}=k;if(te=k.el=o(k.type,G,oe&&oe.is,oe),ue&8?m(te,k.children):ue&16&&st(k.children,te,null,j,L,G&&pe!=="foreignObject",re,X),$e&&yi(k,null,j,"created"),oe){for(const Pe in oe)Pe!=="value"&&!Ss(Pe)&&s(te,Pe,null,oe[Pe],G,k.children,j,L,se);"value"in oe&&s(te,"value",null,oe.value),(Q=oe.onVnodeBeforeMount)&&yn(Q,j,k)}qe(te,k,k.scopeId,re,j),$e&&yi(k,null,j,"beforeMount");const Ue=(!L||L&&!L.pendingBranch)&&ge&&!ge.persisted;Ue&&ge.beforeEnter(te),r(te,E,H),((Q=oe&&oe.onVnodeMounted)||Ue||$e)&&Ft(()=>{Q&&yn(Q,j,k),Ue&&ge.enter(te),$e&&yi(k,null,j,"mounted")},L)},qe=(k,E,H,j,L)=>{if(H&&R(k,H),j)for(let G=0;G{for(let Q=te;Q{const X=E.el=k.el;let{patchFlag:te,dynamicChildren:Q,dirs:pe}=E;te|=k.patchFlag&16;const oe=k.props||Xe,ue=E.props||Xe;let ge;H&&bi(H,!1),(ge=ue.onVnodeBeforeUpdate)&&yn(ge,H,E,k),pe&&yi(E,k,H,"beforeUpdate"),H&&bi(H,!0);const $e=L&&E.type!=="foreignObject";if(Q?zt(k.dynamicChildren,Q,X,H,j,$e,G):re||De(k,E,X,null,H,j,$e,G,!1),te>0){if(te&16)en(X,E,oe,ue,H,j,L);else if(te&2&&oe.class!==ue.class&&s(X,"class",null,ue.class,L),te&4&&s(X,"style",oe.style,ue.style,L),te&8){const Ue=E.dynamicProps;for(let Pe=0;Pe{ge&&yn(ge,H,E,k),pe&&yi(E,k,H,"updated")},j)},zt=(k,E,H,j,L,G,re)=>{for(let X=0;X{if(H!==j){if(H!==Xe)for(const X in H)!Ss(X)&&!(X in j)&&s(k,X,H[X],null,re,E.children,L,G,se);for(const X in j){if(Ss(X))continue;const te=j[X],Q=H[X];te!==Q&&X!=="value"&&s(k,X,Q,te,re,E.children,L,G,se)}"value"in j&&s(k,"value",H.value,j.value)}},at=(k,E,H,j,L,G,re,X,te)=>{const Q=E.el=k?k.el:u(""),pe=E.anchor=k?k.anchor:u("");let{patchFlag:oe,dynamicChildren:ue,slotScopeIds:ge}=E;ge&&(X=X?X.concat(ge):ge),k==null?(r(Q,H,j),r(pe,H,j),st(E.children,H,pe,L,G,re,X,te)):oe>0&&oe&64&&ue&&k.dynamicChildren?(zt(k.dynamicChildren,ue,H,L,G,re,X),(E.key!=null||L&&E===L.subTree)&&td(k,E,!0)):De(k,E,H,pe,L,G,re,X,te)},En=(k,E,H,j,L,G,re,X,te)=>{E.slotScopeIds=X,k==null?E.shapeFlag&512?L.ctx.activate(E,H,j,re,te):tn(E,H,j,L,G,re,te):Bn(k,E,te)},tn=(k,E,H,j,L,G,re)=>{const X=k.component=_g(k,j,L);if(jf(k)&&(X.ctx.renderer=Ce),wg(X),X.asyncDep){if(L&&L.registerDep(X,ft),!k.el){const te=X.subTree=Se(Ei);O(null,te,E,H)}return}ft(X,k,E,H,L,G,re)},Bn=(k,E,H)=>{const j=E.component=k.component;if(Lm(k,E,H))if(j.asyncDep&&!j.asyncResolved){je(j,E,H);return}else j.next=E,Am(j.update),j.update();else E.el=k.el,j.vnode=E},ft=(k,E,H,j,L,G,re)=>{const X=()=>{if(k.isMounted){let{next:pe,bu:oe,u:ue,parent:ge,vnode:$e}=k,Ue=pe,Pe;bi(k,!1),pe?(pe.el=$e.el,je(k,pe,re)):pe=$e,oe&&Ua(oe),(Pe=pe.props&&pe.props.onVnodeBeforeUpdate)&&yn(Pe,ge,pe,$e),bi(k,!0);const ot=Wa(k),Nt=k.subTree;k.subTree=ot,D(Nt,ot,w(Nt.el),ne(Nt),k,L,G),pe.el=ot.el,Ue===null&&Nm(k,ot.el),ue&&Ft(ue,L),(Pe=pe.props&&pe.props.onVnodeUpdated)&&Ft(()=>yn(Pe,ge,pe,$e),L)}else{let pe;const{el:oe,props:ue}=E,{bm:ge,m:$e,parent:Ue}=k,Pe=zs(E);if(bi(k,!1),ge&&Ua(ge),!Pe&&(pe=ue&&ue.onVnodeBeforeMount)&&yn(pe,Ue,E),bi(k,!0),oe&&Ee){const ot=()=>{k.subTree=Wa(k),Ee(oe,k.subTree,k,L,null)};Pe?E.type.__asyncLoader().then(()=>!k.isUnmounted&&ot()):ot()}else{const ot=k.subTree=Wa(k);D(null,ot,H,j,k,L,G),E.el=ot.el}if($e&&Ft($e,L),!Pe&&(pe=ue&&ue.onVnodeMounted)){const ot=E;Ft(()=>yn(pe,Ue,ot),L)}(E.shapeFlag&256||Ue&&zs(Ue.vnode)&&Ue.vnode.shapeFlag&256)&&k.a&&Ft(k.a,L),k.isMounted=!0,E=H=j=null}},te=k.effect=new Jo(X,()=>sl(Q),k.scope),Q=k.update=()=>te.run();Q.id=k.uid,bi(k,!0),Q()},je=(k,E,H)=>{E.component=k;const j=k.vnode.props;k.vnode=E,k.next=null,rg(k,E.props,j,H),og(k,E.children,H),ir(),Eu(),rr()},De=(k,E,H,j,L,G,re,X,te=!1)=>{const Q=k&&k.children,pe=k?k.shapeFlag:0,oe=E.children,{patchFlag:ue,shapeFlag:ge}=E;if(ue>0){if(ue&128){vn(Q,oe,H,j,L,G,re,X,te);return}else if(ue&256){qt(Q,oe,H,j,L,G,re,X,te);return}}ge&8?(pe&16&&se(Q,L,G),oe!==Q&&m(H,oe)):pe&16?ge&16?vn(Q,oe,H,j,L,G,re,X,te):se(Q,L,G,!0):(pe&8&&m(H,""),ge&16&&st(oe,H,j,L,G,re,X,te))},qt=(k,E,H,j,L,G,re,X,te)=>{k=k||Ui,E=E||Ui;const Q=k.length,pe=E.length,oe=Math.min(Q,pe);let ue;for(ue=0;uepe?se(k,L,G,!0,!1,oe):st(E,H,j,L,G,re,X,te,oe)},vn=(k,E,H,j,L,G,re,X,te)=>{let Q=0;const pe=E.length;let oe=k.length-1,ue=pe-1;for(;Q<=oe&&Q<=ue;){const ge=k[Q],$e=E[Q]=te?Gn(E[Q]):_n(E[Q]);if(yr(ge,$e))D(ge,$e,H,null,L,G,re,X,te);else break;Q++}for(;Q<=oe&&Q<=ue;){const ge=k[oe],$e=E[ue]=te?Gn(E[ue]):_n(E[ue]);if(yr(ge,$e))D(ge,$e,H,null,L,G,re,X,te);else break;oe--,ue--}if(Q>oe){if(Q<=ue){const ge=ue+1,$e=geue)for(;Q<=oe;)Tt(k[Q],L,G,!0),Q++;else{const ge=Q,$e=Q,Ue=new Map;for(Q=$e;Q<=ue;Q++){const At=E[Q]=te?Gn(E[Q]):_n(E[Q]);At.key!=null&&Ue.set(At.key,Q)}let Pe,ot=0;const Nt=ue-$e+1;let jn=!1,On=0;const nn=new Array(Nt);for(Q=0;Q=Nt){Tt(At,L,G,!0);continue}let lt;if(At.key!=null)lt=Ue.get(At.key);else for(Pe=$e;Pe<=ue;Pe++)if(nn[Pe-$e]===0&&yr(At,E[Pe])){lt=Pe;break}lt===void 0?Tt(At,L,G,!0):(nn[lt-$e]=Q+1,lt>=On?On=lt:jn=!0,D(At,E[lt],H,null,L,G,re,X,te),ot++)}const ur=jn?dg(nn):Ui;for(Pe=ur.length-1,Q=Nt-1;Q>=0;Q--){const At=$e+Q,lt=E[At],Ct=At+1{const{el:G,type:re,transition:X,children:te,shapeFlag:Q}=k;if(Q&6){dt(k.component.subTree,E,H,j);return}if(Q&128){k.suspense.move(E,H,j);return}if(Q&64){re.move(k,E,H,Ce);return}if(re===Xt){r(G,E,H);for(let oe=0;oeX.enter(G),L);else{const{leave:oe,delayLeave:ue,afterLeave:ge}=X,$e=()=>r(G,E,H),Ue=()=>{oe(G,()=>{$e(),ge&&ge()})};ue?ue(G,$e,Ue):Ue()}else r(G,E,H)},Tt=(k,E,H,j=!1,L=!1)=>{const{type:G,props:re,ref:X,children:te,dynamicChildren:Q,shapeFlag:pe,patchFlag:oe,dirs:ue}=k;if(X!=null&&bo(X,null,H,k,!0),pe&256){E.ctx.deactivate(k);return}const ge=pe&1&&ue,$e=!zs(k);let Ue;if($e&&(Ue=re&&re.onVnodeBeforeUnmount)&&yn(Ue,E,k),pe&6)V(k.component,H,j);else{if(pe&128){k.suspense.unmount(H,j);return}ge&&yi(k,null,E,"beforeUnmount"),pe&64?k.type.remove(k,E,H,L,Ce,j):Q&&(G!==Xt||oe>0&&oe&64)?se(Q,E,H,!1,!0):(G===Xt&&oe&384||!L&&pe&16)&&se(te,E,H),j&&Bt(k)}($e&&(Ue=re&&re.onVnodeUnmounted)||ge)&&Ft(()=>{Ue&&yn(Ue,E,k),ge&&yi(k,null,E,"unmounted")},H)},Bt=k=>{const{type:E,el:H,anchor:j,transition:L}=k;if(E===Xt){Sn(H,j);return}if(E===Ya){J(k);return}const G=()=>{i(H),L&&!L.persisted&&L.afterLeave&&L.afterLeave()};if(k.shapeFlag&1&&L&&!L.persisted){const{leave:re,delayLeave:X}=L,te=()=>re(H,G);X?X(k.el,G,te):te()}else G()},Sn=(k,E)=>{let H;for(;k!==E;)H=x(k),i(k),k=H;i(E)},V=(k,E,H)=>{const{bum:j,scope:L,update:G,subTree:re,um:X}=k;j&&Ua(j),L.stop(),G&&(G.active=!1,Tt(re,k,E,H)),X&&Ft(X,E),Ft(()=>{k.isUnmounted=!0},E),E&&E.pendingBranch&&!E.isUnmounted&&k.asyncDep&&!k.asyncResolved&&k.suspenseId===E.pendingId&&(E.deps--,E.deps===0&&E.resolve())},se=(k,E,H,j=!1,L=!1,G=0)=>{for(let re=G;rek.shapeFlag&6?ne(k.component.subTree):k.shapeFlag&128?k.suspense.next():x(k.anchor||k.el),fe=(k,E,H)=>{k==null?E._vnode&&Tt(E._vnode,null,null,!0):D(E._vnode||null,k,E,null,null,null,H),Eu(),Df(),E._vnode=k},Ce={p:D,um:Tt,m:dt,r:Bt,mt:tn,mc:st,pc:De,pbc:zt,n:ne,o:e};let Qe,Ee;return t&&([Qe,Ee]=t(Ce)),{render:fe,hydrate:Qe,createApp:ug(fe,Qe)}}function bi({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function td(e,t,n=!1){const r=e.children,i=t.children;if(Te(r)&&Te(i))for(let s=0;s>1,e[n[u]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,o=n[s-1];s-- >0;)n[s]=o,o=t[o];return n}const hg=e=>e.__isTeleport,Xt=Symbol(void 0),la=Symbol(void 0),Ei=Symbol(void 0),Ya=Symbol(void 0),Sr=[];let cn=null;function Ie(e=!1){Sr.push(cn=e?null:[])}function pg(){Sr.pop(),cn=Sr[Sr.length-1]||null}let Fr=1;function Du(e){Fr+=e}function nd(e){return e.dynamicChildren=Fr>0?cn||Ui:null,pg(),Fr>0&&cn&&cn.push(e),e}function Ke(e,t,n,r,i,s){return nd(le(e,t,n,r,i,s,!0))}function ar(e,t,n,r,i){return nd(Se(e,t,n,r,i,!0))}function _o(e){return e?e.__v_isVNode===!0:!1}function yr(e,t){return e.type===t.type&&e.key===t.key}const ua="__vInternal",id=({key:e})=>e!=null?e:null,Rs=({ref:e,ref_key:t,ref_for:n})=>e!=null?kt(e)||Ot(e)||Ae(e)?{i:Jt,r:e,k:t,f:!!n}:e:null;function le(e,t=null,n=null,r=0,i=null,s=e===Xt?0:1,o=!1,u=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&id(t),ref:t&&Rs(t),scopeId:sa,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Jt};return u?(ul(c,n),s&128&&e.normalize(c)):n&&(c.shapeFlag|=kt(n)?8:16),Fr>0&&!o&&cn&&(c.patchFlag>0||s&6)&&c.patchFlag!==32&&cn.push(c),c}const Se=mg;function mg(e,t=null,n=null,r=0,i=null,s=!1){if((!e||e===Gm)&&(e=Ei),_o(e)){const u=Xi(e,t,!0);return n&&ul(u,n),Fr>0&&!s&&cn&&(u.shapeFlag&6?cn[cn.indexOf(e)]=u:cn.push(u)),u.patchFlag|=-2,u}if(Tg(e)&&(e=e.__vccOpts),t){t=gg(t);let{class:u,style:c}=t;u&&!kt(u)&&(t.class=Gi(u)),nt(c)&&(Af(c)&&!Te(c)&&(c=Pt({},c)),t.style=Vo(c))}const o=kt(e)?1:Im(e)?128:hg(e)?64:nt(e)?4:Ae(e)?2:0;return le(e,t,n,r,i,o,s,!0)}function gg(e){return e?Af(e)||ua in e?Pt({},e):e:null}function Xi(e,t,n=!1){const{props:r,ref:i,patchFlag:s,children:o}=e,u=t?vg(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&id(u),ref:t&&t.ref?n&&i?Te(i)?i.concat(Rs(t)):[i,Rs(t)]:Rs(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Xt?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Xi(e.ssContent),ssFallback:e.ssFallback&&Xi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function Jn(e=" ",t=0){return Se(la,null,e,t)}function Or(e="",t=!1){return t?(Ie(),ar(Ei,null,e)):Se(Ei,null,e)}function _n(e){return e==null||typeof e=="boolean"?Se(Ei):Te(e)?Se(Xt,null,e.slice()):typeof e=="object"?Gn(e):Se(la,null,String(e))}function Gn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Xi(e)}function ul(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Te(t))n=16;else if(typeof t=="object")if(r&65){const i=t.default;i&&(i._c&&(i._d=!1),ul(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!(ua in t)?t._ctx=Jt:i===3&&Jt&&(Jt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ae(t)?(t={default:t,_ctx:Jt},n=32):(t=String(t),r&64?(n=16,t=[Jn(t)]):n=8);e.children=t,e.shapeFlag|=n}function vg(...e){const t={};for(let n=0;n{$t=e,e.scope.on()},Ai=()=>{$t&&$t.scope.off(),$t=null};function rd(e){return e.vnode.shapeFlag&4}let qr=!1;function wg(e,t=!1){qr=t;const{props:n,children:r}=e.vnode,i=rd(e);ig(e,n,i,t),ag(e,r);const s=i?kg(e,t):void 0;return qr=!1,s}function kg(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Ef(new Proxy(e.ctx,Xm));const{setup:r}=n;if(r){const i=e.setupContext=r.length>1?Cg(e):null;Ji(e),ir();const s=ii(r,e,0,[e.props,i]);if(rr(),Ai(),df(s)){if(s.then(Ai,Ai),t)return s.then(o=>{Hu(e,o,t)}).catch(o=>{ia(o,e,0)});e.asyncDep=s}else Hu(e,s,t)}else sd(e,t)}function Hu(e,t,n){Ae(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:nt(t)&&(e.setupState=Pf(t)),sd(e,n)}let Fu;function sd(e,t,n){const r=e.type;if(!e.render){if(!t&&Fu&&!r.render){const i=r.template||ol(e).template;if(i){const{isCustomElement:s,compilerOptions:o}=e.appContext.config,{delimiters:u,compilerOptions:c}=r,p=Pt(Pt({isCustomElement:s,delimiters:u},o),c);r.render=Fu(i,p)}}e.render=r.render||dn}Ji(e),ir(),Jm(e),rr(),Ai()}function xg(e){return new Proxy(e.attrs,{get(t,n){return Yt(e,"get","$attrs"),t[n]}})}function Cg(e){const t=r=>{e.exposed=r||{}};let n;return{get attrs(){return n||(n=xg(e))},slots:e.slots,emit:e.emit,expose:t}}function ca(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Pf(Ef(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Er)return Er[n](e)},has(t,n){return n in t||n in Er}}))}function $g(e,t=!0){return Ae(e)?e.displayName||e.name:e.name||t&&e.__name}function Tg(e){return Ae(e)&&"__vccOpts"in e}const tt=(e,t)=>Cm(e,t,qr);function fa(e,t,n){const r=arguments.length;return r===2?nt(t)&&!Te(t)?_o(t)?Se(e,null,[t]):Se(e,t):Se(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&_o(n)&&(n=[n]),Se(e,t,n))}const Ag=Symbol(""),Eg=()=>pn(Ag),Sg="3.2.45",Og="http://www.w3.org/2000/svg",ki=typeof document<"u"?document:null,qu=ki&&ki.createElement("template"),zg={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const i=t?ki.createElementNS(Og,e):ki.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&i.setAttribute("multiple",r.multiple),i},createText:e=>ki.createTextNode(e),createComment:e=>ki.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ki.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,s){const o=n?n.previousSibling:t.lastChild;if(i&&(i===s||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===s||!(i=i.nextSibling)););else{qu.innerHTML=r?`${e}`:e;const u=qu.content;if(r){const c=u.firstChild;for(;c.firstChild;)u.appendChild(c.firstChild);u.removeChild(c)}t.insertBefore(u,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Rg(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Pg(e,t,n){const r=e.style,i=kt(n);if(n&&!i){for(const s in n)wo(r,s,n[s]);if(t&&!kt(t))for(const s in t)n[s]==null&&wo(r,s,"")}else{const s=r.display;i?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=s)}}const Bu=/\s*!important$/;function wo(e,t,n){if(Te(n))n.forEach(r=>wo(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Lg(e,t);Bu.test(n)?e.setProperty(Ri(r),n.replace(Bu,""),"important"):e[r]=n}}const ju=["Webkit","Moz","ms"],Ka={};function Lg(e,t){const n=Ka[t];if(n)return n;let r=Tn(t);if(r!=="filter"&&r in e)return Ka[t]=r;r=ta(r);for(let i=0;iGa||(qg.then(()=>Ga=0),Ga=Date.now());function jg(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;hn(Ug(r,n.value),t,5,[r])};return n.value=e,n.attached=Bg(),n}function Ug(e,t){if(Te(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>i=>!i._stopped&&r&&r(i))}else return t}const Vu=/^on[a-z]/,Wg=(e,t,n,r,i=!1,s,o,u,c)=>{t==="class"?Rg(e,r,i):t==="style"?Pg(e,n,r):Js(t)?Yo(t)||Hg(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Vg(e,t,r,i))?Ig(e,t,r,s,o,u,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Ng(e,t,r,i))};function Vg(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&Vu.test(t)&&Ae(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Vu.test(t)&&kt(n)?!1:t in e}const Yg={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},da=(e,t)=>n=>{if(!("key"in n))return;const r=Ri(n.key);if(t.some(i=>i===r||Yg[i]===r))return e(n)},Yu={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):br(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),br(e,!0),r.enter(e)):r.leave(e,()=>{br(e,!1)}):br(e,t))},beforeUnmount(e,{value:t}){br(e,t)}};function br(e,t){e.style.display=t?e._vod:"none"}const Kg=Pt({patchProp:Wg},zg);let Ku;function Gg(){return Ku||(Ku=cg(Kg))}const Qg=(...e)=>{const t=Gg().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=Xg(r);if(!i)return;const s=t._component;!Ae(s)&&!s.render&&!s.template&&(s.template=i.innerHTML),i.innerHTML="";const o=n(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function Xg(e){return kt(e)?document.querySelector(e):e}/*! +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerpolicy&&(s.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?s.credentials="include":i.crossorigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();function Wo(e,t){const n=Object.create(null),r=e.split(",");for(let i=0;i!!n[i.toLowerCase()]:i=>!!n[i]}function Vo(e){if(Te(e)){const t={};for(let n=0;n{if(n){const r=n.split(Lp);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Gi(e){let t="";if(kt(e))t=e;else if(Te(e))for(let n=0;nkt(e)?e:e==null?"":Te(e)||nt(e)&&(e.toString===hf||!Ae(e.toString))?JSON.stringify(e,cf,2):String(e),cf=(e,t)=>t&&t.__v_isRef?cf(e,t.value):Wi(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,i])=>(n[`${r} =>`]=i,n),{})}:ff(t)?{[`Set(${t.size})`]:[...t.values()]}:nt(t)&&!Te(t)&&!pf(t)?String(t):t,Xe={},Ui=[],dn=()=>{},Hp=()=>!1,Fp=/^on[^a-z]/,Js=e=>Fp.test(e),Yo=e=>e.startsWith("onUpdate:"),Pt=Object.assign,Ko=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},qp=Object.prototype.hasOwnProperty,Ne=(e,t)=>qp.call(e,t),Te=Array.isArray,Wi=e=>Zs(e)==="[object Map]",ff=e=>Zs(e)==="[object Set]",Ae=e=>typeof e=="function",kt=e=>typeof e=="string",Go=e=>typeof e=="symbol",nt=e=>e!==null&&typeof e=="object",df=e=>nt(e)&&Ae(e.then)&&Ae(e.catch),hf=Object.prototype.toString,Zs=e=>hf.call(e),Bp=e=>Zs(e).slice(8,-1),pf=e=>Zs(e)==="[object Object]",Qo=e=>kt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ss=Wo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ea=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},jp=/-(\w)/g,Tn=ea(e=>e.replace(jp,(t,n)=>n?n.toUpperCase():"")),Up=/\B([A-Z])/g,Ri=ea(e=>e.replace(Up,"-$1").toLowerCase()),ta=ea(e=>e.charAt(0).toUpperCase()+e.slice(1)),ja=ea(e=>e?`on${ta(e)}`:""),Ir=(e,t)=>!Object.is(e,t),Ua=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},mf=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let _u;const Wp=()=>_u||(_u=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let bn;class Vp{constructor(t=!1){this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=bn,!t&&bn&&(this.index=(bn.scopes||(bn.scopes=[])).push(this)-1)}run(t){if(this.active){const n=bn;try{return bn=this,t()}finally{bn=n}}}on(){bn=this}off(){bn=this.parent}stop(t){if(this.active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},gf=e=>(e.w&si)>0,vf=e=>(e.n&si)>0,Kp=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(m==="length"||m>=c)&&u.push(p)})}else switch(n!==void 0&&u.push(o.get(n)),t){case"add":Te(e)?Qo(n)&&u.push(o.get("length")):(u.push(o.get(Ti)),Wi(e)&&u.push(o.get(fo)));break;case"delete":Te(e)||(u.push(o.get(Ti)),Wi(e)&&u.push(o.get(fo)));break;case"set":Wi(e)&&u.push(o.get(Ti));break}if(u.length===1)u[0]&&ho(u[0]);else{const c=[];for(const p of u)p&&c.push(...p);ho(Xo(c))}}function ho(e,t){const n=Te(e)?e:[...e];for(const r of n)r.computed&&ku(r);for(const r of n)r.computed||ku(r)}function ku(e,t){(e!==ln||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Qp=Wo("__proto__,__v_isRef,__isVue"),_f=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Go)),Xp=Zo(),Jp=Zo(!1,!0),Zp=Zo(!0),xu=em();function em(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=Fe(this);for(let s=0,o=this.length;s{e[t]=function(...n){ir();const r=Fe(this)[t].apply(this,n);return rr(),r}}),e}function Zo(e=!1,t=!1){return function(r,i,s){if(i==="__v_isReactive")return!e;if(i==="__v_isReadonly")return e;if(i==="__v_isShallow")return t;if(i==="__v_raw"&&s===(e?t?gm:$f:t?Cf:xf).get(r))return r;const o=Te(r);if(!e&&o&&Ne(xu,i))return Reflect.get(xu,i,s);const u=Reflect.get(r,i,s);return(Go(i)?_f.has(i):Qp(i))||(e||Yt(r,"get",i),t)?u:Ot(u)?o&&Qo(i)?u:u.value:nt(u)?e?Tf(u):sr(u):u}}const tm=wf(),nm=wf(!0);function wf(e=!1){return function(n,r,i,s){let o=n[r];if(Qi(o)&&Ot(o)&&!Ot(i))return!1;if(!e&&(!Fs(i)&&!Qi(i)&&(o=Fe(o),i=Fe(i)),!Te(n)&&Ot(o)&&!Ot(i)))return o.value=i,!0;const u=Te(n)&&Qo(r)?Number(r)e,na=e=>Reflect.getPrototypeOf(e);function fs(e,t,n=!1,r=!1){e=e.__v_raw;const i=Fe(e),s=Fe(t);n||(t!==s&&Yt(i,"get",t),Yt(i,"get",s));const{has:o}=na(i),u=r?el:n?il:Mr;if(o.call(i,t))return u(e.get(t));if(o.call(i,s))return u(e.get(s));e!==i&&e.get(t)}function ds(e,t=!1){const n=this.__v_raw,r=Fe(n),i=Fe(e);return t||(e!==i&&Yt(r,"has",e),Yt(r,"has",i)),e===i?n.has(e):n.has(e)||n.has(i)}function hs(e,t=!1){return e=e.__v_raw,!t&&Yt(Fe(e),"iterate",Ti),Reflect.get(e,"size",e)}function Cu(e){e=Fe(e);const t=Fe(this);return na(t).has.call(t,e)||(t.add(e),In(t,"add",e,e)),this}function $u(e,t){t=Fe(t);const n=Fe(this),{has:r,get:i}=na(n);let s=r.call(n,e);s||(e=Fe(e),s=r.call(n,e));const o=i.call(n,e);return n.set(e,t),s?Ir(t,o)&&In(n,"set",e,t):In(n,"add",e,t),this}function Tu(e){const t=Fe(this),{has:n,get:r}=na(t);let i=n.call(t,e);i||(e=Fe(e),i=n.call(t,e)),r&&r.call(t,e);const s=t.delete(e);return i&&In(t,"delete",e,void 0),s}function Au(){const e=Fe(this),t=e.size!==0,n=e.clear();return t&&In(e,"clear",void 0,void 0),n}function ps(e,t){return function(r,i){const s=this,o=s.__v_raw,u=Fe(o),c=t?el:e?il:Mr;return!e&&Yt(u,"iterate",Ti),o.forEach((p,m)=>r.call(i,c(p),c(m),s))}}function ms(e,t,n){return function(...r){const i=this.__v_raw,s=Fe(i),o=Wi(s),u=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,p=i[e](...r),m=n?el:t?il:Mr;return!t&&Yt(s,"iterate",c?fo:Ti),{next(){const{value:w,done:x}=p.next();return x?{value:w,done:x}:{value:u?[m(w[0]),m(w[1])]:m(w),done:x}},[Symbol.iterator](){return this}}}}function Vn(e){return function(...t){return e==="delete"?!1:this}}function lm(){const e={get(s){return fs(this,s)},get size(){return hs(this)},has:ds,add:Cu,set:$u,delete:Tu,clear:Au,forEach:ps(!1,!1)},t={get(s){return fs(this,s,!1,!0)},get size(){return hs(this)},has:ds,add:Cu,set:$u,delete:Tu,clear:Au,forEach:ps(!1,!0)},n={get(s){return fs(this,s,!0)},get size(){return hs(this,!0)},has(s){return ds.call(this,s,!0)},add:Vn("add"),set:Vn("set"),delete:Vn("delete"),clear:Vn("clear"),forEach:ps(!0,!1)},r={get(s){return fs(this,s,!0,!0)},get size(){return hs(this,!0)},has(s){return ds.call(this,s,!0)},add:Vn("add"),set:Vn("set"),delete:Vn("delete"),clear:Vn("clear"),forEach:ps(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(s=>{e[s]=ms(s,!1,!1),n[s]=ms(s,!0,!1),t[s]=ms(s,!1,!0),r[s]=ms(s,!0,!0)}),[e,n,t,r]}const[um,cm,fm,dm]=lm();function tl(e,t){const n=t?e?dm:fm:e?cm:um;return(r,i,s)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?r:Reflect.get(Ne(n,i)&&i in r?n:r,i,s)}const hm={get:tl(!1,!1)},pm={get:tl(!1,!0)},mm={get:tl(!0,!1)},xf=new WeakMap,Cf=new WeakMap,$f=new WeakMap,gm=new WeakMap;function vm(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ym(e){return e.__v_skip||!Object.isExtensible(e)?0:vm(Bp(e))}function sr(e){return Qi(e)?e:nl(e,!1,kf,hm,xf)}function bm(e){return nl(e,!1,om,pm,Cf)}function Tf(e){return nl(e,!0,am,mm,$f)}function nl(e,t,n,r,i){if(!nt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=i.get(e);if(s)return s;const o=ym(e);if(o===0)return e;const u=new Proxy(e,o===2?r:n);return i.set(e,u),u}function Vi(e){return Qi(e)?Vi(e.__v_raw):!!(e&&e.__v_isReactive)}function Qi(e){return!!(e&&e.__v_isReadonly)}function Fs(e){return!!(e&&e.__v_isShallow)}function Af(e){return Vi(e)||Qi(e)}function Fe(e){const t=e&&e.__v_raw;return t?Fe(t):e}function Ef(e){return Hs(e,"__v_skip",!0),e}const Mr=e=>nt(e)?sr(e):e,il=e=>nt(e)?Tf(e):e;function Sf(e){ti&&ln&&(e=Fe(e),bf(e.dep||(e.dep=Xo())))}function Of(e,t){e=Fe(e),e.dep&&ho(e.dep)}function Ot(e){return!!(e&&e.__v_isRef===!0)}function zf(e){return Rf(e,!1)}function _m(e){return Rf(e,!0)}function Rf(e,t){return Ot(e)?e:new wm(e,t)}class wm{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Fe(t),this._value=n?t:Mr(t)}get value(){return Sf(this),this._value}set value(t){const n=this.__v_isShallow||Fs(t)||Qi(t);t=n?t:Fe(t),Ir(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Mr(t),Of(this))}}function ni(e){return Ot(e)?e.value:e}const km={get:(e,t,n)=>ni(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const i=e[t];return Ot(i)&&!Ot(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function Pf(e){return Vi(e)?e:new Proxy(e,km)}var Lf;class xm{constructor(t,n,r,i){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[Lf]=!1,this._dirty=!0,this.effect=new Jo(t,()=>{this._dirty||(this._dirty=!0,Of(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!i,this.__v_isReadonly=r}get value(){const t=Fe(this);return Sf(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}Lf="__v_isReadonly";function Cm(e,t,n=!1){let r,i;const s=Ae(e);return s?(r=e,i=dn):(r=e.get,i=e.set),new xm(r,i,s||!i,n)}function ii(e,t,n,r){let i;try{i=r?e(...r):e()}catch(s){ia(s,t,n)}return i}function hn(e,t,n,r){if(Ae(e)){const s=ii(e,t,n,r);return s&&df(s)&&s.catch(o=>{ia(o,t,n)}),s}const i=[];for(let s=0;s>>1;Hr(St[r])wn&&St.splice(t,1)}function Em(e){Te(e)?Yi.push(...e):(!Ln||!Ln.includes(e,e.allowRecurse?wi+1:wi))&&Yi.push(e),Mf()}function Eu(e,t=Dr?wn+1:0){for(;tHr(n)-Hr(r)),wi=0;wie.id==null?1/0:e.id,Sm=(e,t)=>{const n=Hr(e)-Hr(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Hf(e){po=!1,Dr=!0,St.sort(Sm);const t=dn;try{for(wn=0;wnkt(O)?O.trim():O)),w&&(i=n.map(mf))}let u,c=r[u=ja(t)]||r[u=ja(Tn(t))];!c&&s&&(c=r[u=ja(Ri(t))]),c&&hn(c,e,6,i);const p=r[u+"Once"];if(p){if(!e.emitted)e.emitted={};else if(e.emitted[u])return;e.emitted[u]=!0,hn(p,e,6,i)}}function Ff(e,t,n=!1){const r=t.emitsCache,i=r.get(e);if(i!==void 0)return i;const s=e.emits;let o={},u=!1;if(!Ae(e)){const c=p=>{const m=Ff(p,t,!0);m&&(u=!0,Pt(o,m))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!s&&!u?(nt(e)&&r.set(e,null),null):(Te(s)?s.forEach(c=>o[c]=null):Pt(o,s),nt(e)&&r.set(e,o),o)}function ra(e,t){return!e||!Js(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ne(e,t[0].toLowerCase()+t.slice(1))||Ne(e,Ri(t))||Ne(e,t))}let Jt=null,sa=null;function qs(e){const t=Jt;return Jt=e,sa=e&&e.type.__scopeId||null,t}function Pi(e){sa=e}function Li(){sa=null}function zm(e,t=Jt,n){if(!t||e._n)return e;const r=(...i)=>{r._d&&Du(-1);const s=qs(t);let o;try{o=e(...i)}finally{qs(s),r._d&&Du(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Wa(e){const{type:t,vnode:n,proxy:r,withProxy:i,props:s,propsOptions:[o],slots:u,attrs:c,emit:p,render:m,renderCache:w,data:x,setupState:O,ctx:I,inheritAttrs:D}=e;let Z,z;const U=qs(e);try{if(n.shapeFlag&4){const J=i||r;Z=_n(m.call(J,J,w,s,O,x,I)),z=c}else{const J=t;Z=_n(J.length>1?J(s,{attrs:c,slots:u,emit:p}):J(s,null)),z=t.props?c:Rm(c)}}catch(J){Sr.length=0,ia(J,e,1),Z=Se(Ei)}let F=Z;if(z&&D!==!1){const J=Object.keys(z),{shapeFlag:ke}=F;J.length&&ke&7&&(o&&J.some(Yo)&&(z=Pm(z,o)),F=Xi(F,z))}return n.dirs&&(F=Xi(F),F.dirs=F.dirs?F.dirs.concat(n.dirs):n.dirs),n.transition&&(F.transition=n.transition),Z=F,qs(U),Z}const Rm=e=>{let t;for(const n in e)(n==="class"||n==="style"||Js(n))&&((t||(t={}))[n]=e[n]);return t},Pm=(e,t)=>{const n={};for(const r in e)(!Yo(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Lm(e,t,n){const{props:r,children:i,component:s}=e,{props:o,children:u,patchFlag:c}=t,p=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Su(r,o,p):!!o;if(c&8){const m=t.dynamicProps;for(let w=0;we.__isSuspense;function Mm(e,t){t&&t.pendingBranch?Te(e)?t.effects.push(...e):t.effects.push(e):Em(e)}function Os(e,t){if($t){let n=$t.provides;const r=$t.parent&&$t.parent.provides;r===n&&(n=$t.provides=Object.create(r)),n[e]=t}}function pn(e,t,n=!1){const r=$t||Jt;if(r){const i=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(i&&e in i)return i[e];if(arguments.length>1)return n&&Ae(t)?t.call(r.proxy):t}}const gs={};function Ar(e,t,n){return qf(e,t,n)}function qf(e,t,{immediate:n,deep:r,flush:i,onTrack:s,onTrigger:o}=Xe){const u=$t;let c,p=!1,m=!1;if(Ot(e)?(c=()=>e.value,p=Fs(e)):Vi(e)?(c=()=>e,r=!0):Te(e)?(m=!0,p=e.some(F=>Vi(F)||Fs(F)),c=()=>e.map(F=>{if(Ot(F))return F.value;if(Vi(F))return xi(F);if(Ae(F))return ii(F,u,2)})):Ae(e)?t?c=()=>ii(e,u,2):c=()=>{if(!(u&&u.isUnmounted))return w&&w(),hn(e,u,3,[x])}:c=dn,t&&r){const F=c;c=()=>xi(F())}let w,x=F=>{w=z.onStop=()=>{ii(F,u,4)}},O;if(qr)if(x=dn,t?n&&hn(t,u,3,[c(),m?[]:void 0,x]):c(),i==="sync"){const F=Eg();O=F.__watcherHandles||(F.__watcherHandles=[])}else return dn;let I=m?new Array(e.length).fill(gs):gs;const D=()=>{if(!!z.active)if(t){const F=z.run();(r||p||(m?F.some((J,ke)=>Ir(J,I[ke])):Ir(F,I)))&&(w&&w(),hn(t,u,3,[F,I===gs?void 0:m&&I[0]===gs?[]:I,x]),I=F)}else z.run()};D.allowRecurse=!!t;let Z;i==="sync"?Z=D:i==="post"?Z=()=>Ft(D,u&&u.suspense):(D.pre=!0,u&&(D.id=u.uid),Z=()=>sl(D));const z=new Jo(c,Z);t?n?D():I=z.run():i==="post"?Ft(z.run.bind(z),u&&u.suspense):z.run();const U=()=>{z.stop(),u&&u.scope&&Ko(u.scope.effects,z)};return O&&O.push(U),U}function Dm(e,t,n){const r=this.proxy,i=kt(e)?e.includes(".")?Bf(r,e):()=>r[e]:e.bind(r,r);let s;Ae(t)?s=t:(s=t.handler,n=t);const o=$t;Ji(this);const u=qf(i,s.bind(r),n);return o?Ji(o):Ai(),u}function Bf(e,t){const n=t.split(".");return()=>{let r=e;for(let i=0;i{xi(n,t)});else if(pf(e))for(const n in e)xi(e[n],t);return e}function Gr(e){return Ae(e)?{setup:e,name:e.name}:e}const zs=e=>!!e.type.__asyncLoader,jf=e=>e.type.__isKeepAlive;function Hm(e,t){Uf(e,"a",t)}function Fm(e,t){Uf(e,"da",t)}function Uf(e,t,n=$t){const r=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(aa(t,r,n),n){let i=n.parent;for(;i&&i.parent;)jf(i.parent.vnode)&&qm(r,t,n,i),i=i.parent}}function qm(e,t,n,r){const i=aa(t,e,r,!0);Vf(()=>{Ko(r[t],i)},n)}function aa(e,t,n=$t,r=!1){if(n){const i=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;ir(),Ji(n);const u=hn(t,n,e,o);return Ai(),rr(),u});return r?i.unshift(s):i.push(s),s}}const Fn=e=>(t,n=$t)=>(!qr||e==="sp")&&aa(e,(...r)=>t(...r),n),Bm=Fn("bm"),oa=Fn("m"),jm=Fn("bu"),Um=Fn("u"),Wf=Fn("bum"),Vf=Fn("um"),Wm=Fn("sp"),Vm=Fn("rtg"),Ym=Fn("rtc");function Km(e,t=$t){aa("ec",e,t)}function Ou(e,t){const n=Jt;if(n===null)return e;const r=ca(n)||n.proxy,i=e.dirs||(e.dirs=[]);for(let s=0;st(o,u,void 0,s&&s[u]));else{const o=Object.keys(e);i=new Array(o.length);for(let u=0,c=o.length;ue?rd(e)?ca(e)||e.proxy:mo(e.parent):null,Er=Pt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>mo(e.parent),$root:e=>mo(e.root),$emit:e=>e.emit,$options:e=>ol(e),$forceUpdate:e=>e.f||(e.f=()=>sl(e.update)),$nextTick:e=>e.n||(e.n=If.bind(e.proxy)),$watch:e=>Dm.bind(e)}),Va=(e,t)=>e!==Xe&&!e.__isScriptSetup&&Ne(e,t),Xm={get({_:e},t){const{ctx:n,setupState:r,data:i,props:s,accessCache:o,type:u,appContext:c}=e;let p;if(t[0]!=="$"){const O=o[t];if(O!==void 0)switch(O){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return s[t]}else{if(Va(r,t))return o[t]=1,r[t];if(i!==Xe&&Ne(i,t))return o[t]=2,i[t];if((p=e.propsOptions[0])&&Ne(p,t))return o[t]=3,s[t];if(n!==Xe&&Ne(n,t))return o[t]=4,n[t];go&&(o[t]=0)}}const m=Er[t];let w,x;if(m)return t==="$attrs"&&Yt(e,"get",t),m(e);if((w=u.__cssModules)&&(w=w[t]))return w;if(n!==Xe&&Ne(n,t))return o[t]=4,n[t];if(x=c.config.globalProperties,Ne(x,t))return x[t]},set({_:e},t,n){const{data:r,setupState:i,ctx:s}=e;return Va(i,t)?(i[t]=n,!0):r!==Xe&&Ne(r,t)?(r[t]=n,!0):Ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:s}},o){let u;return!!n[o]||e!==Xe&&Ne(e,o)||Va(t,o)||(u=s[0])&&Ne(u,o)||Ne(r,o)||Ne(Er,o)||Ne(i.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let go=!0;function Jm(e){const t=ol(e),n=e.proxy,r=e.ctx;go=!1,t.beforeCreate&&Ru(t.beforeCreate,e,"bc");const{data:i,computed:s,methods:o,watch:u,provide:c,inject:p,created:m,beforeMount:w,mounted:x,beforeUpdate:O,updated:I,activated:D,deactivated:Z,beforeDestroy:z,beforeUnmount:U,destroyed:F,unmounted:J,render:ke,renderTracked:h,renderTriggered:qe,errorCaptured:st,serverPrefetch:ct,expose:zt,inheritAttrs:en,components:at,directives:En,filters:tn}=t;if(p&&Zm(p,r,null,e.appContext.config.unwrapInjectedRef),o)for(const je in o){const De=o[je];Ae(De)&&(r[je]=De.bind(n))}if(i){const je=i.call(n,n);nt(je)&&(e.data=sr(je))}if(go=!0,s)for(const je in s){const De=s[je],qt=Ae(De)?De.bind(n,n):Ae(De.get)?De.get.bind(n,n):dn,vn=!Ae(De)&&Ae(De.set)?De.set.bind(n):dn,dt=tt({get:qt,set:vn});Object.defineProperty(r,je,{enumerable:!0,configurable:!0,get:()=>dt.value,set:Tt=>dt.value=Tt})}if(u)for(const je in u)Kf(u[je],r,n,je);if(c){const je=Ae(c)?c.call(n):c;Reflect.ownKeys(je).forEach(De=>{Os(De,je[De])})}m&&Ru(m,e,"c");function ft(je,De){Te(De)?De.forEach(qt=>je(qt.bind(n))):De&&je(De.bind(n))}if(ft(Bm,w),ft(oa,x),ft(jm,O),ft(Um,I),ft(Hm,D),ft(Fm,Z),ft(Km,st),ft(Ym,h),ft(Vm,qe),ft(Wf,U),ft(Vf,J),ft(Wm,ct),Te(zt))if(zt.length){const je=e.exposed||(e.exposed={});zt.forEach(De=>{Object.defineProperty(je,De,{get:()=>n[De],set:qt=>n[De]=qt})})}else e.exposed||(e.exposed={});ke&&e.render===dn&&(e.render=ke),en!=null&&(e.inheritAttrs=en),at&&(e.components=at),En&&(e.directives=En)}function Zm(e,t,n=dn,r=!1){Te(e)&&(e=vo(e));for(const i in e){const s=e[i];let o;nt(s)?"default"in s?o=pn(s.from||i,s.default,!0):o=pn(s.from||i):o=pn(s),Ot(o)&&r?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>o.value,set:u=>o.value=u}):t[i]=o}}function Ru(e,t,n){hn(Te(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Kf(e,t,n,r){const i=r.includes(".")?Bf(n,r):()=>n[r];if(kt(e)){const s=t[e];Ae(s)&&Ar(i,s)}else if(Ae(e))Ar(i,e.bind(n));else if(nt(e))if(Te(e))e.forEach(s=>Kf(s,t,n,r));else{const s=Ae(e.handler)?e.handler.bind(n):t[e.handler];Ae(s)&&Ar(i,s,e)}}function ol(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:i,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,u=s.get(t);let c;return u?c=u:!i.length&&!n&&!r?c=t:(c={},i.length&&i.forEach(p=>Bs(c,p,o,!0)),Bs(c,t,o)),nt(t)&&s.set(t,c),c}function Bs(e,t,n,r=!1){const{mixins:i,extends:s}=t;s&&Bs(e,s,n,!0),i&&i.forEach(o=>Bs(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const u=eg[o]||n&&n[o];e[o]=u?u(e[o],t[o]):t[o]}return e}const eg={data:Pu,props:_i,emits:_i,methods:_i,computed:_i,beforeCreate:Rt,created:Rt,beforeMount:Rt,mounted:Rt,beforeUpdate:Rt,updated:Rt,beforeDestroy:Rt,beforeUnmount:Rt,destroyed:Rt,unmounted:Rt,activated:Rt,deactivated:Rt,errorCaptured:Rt,serverPrefetch:Rt,components:_i,directives:_i,watch:ng,provide:Pu,inject:tg};function Pu(e,t){return t?e?function(){return Pt(Ae(e)?e.call(this,this):e,Ae(t)?t.call(this,this):t)}:t:e}function tg(e,t){return _i(vo(e),vo(t))}function vo(e){if(Te(e)){const t={};for(let n=0;n0)&&!(o&16)){if(o&8){const m=e.vnode.dynamicProps;for(let w=0;w{c=!0;const[x,O]=Qf(w,t,!0);Pt(o,x),O&&u.push(...O)};!n&&t.mixins.length&&t.mixins.forEach(m),e.extends&&m(e.extends),e.mixins&&e.mixins.forEach(m)}if(!s&&!c)return nt(e)&&r.set(e,Ui),Ui;if(Te(s))for(let m=0;m-1,O[1]=D<0||I-1||Ne(O,"default"))&&u.push(w)}}}const p=[o,u];return nt(e)&&r.set(e,p),p}function Lu(e){return e[0]!=="$"}function Nu(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function Iu(e,t){return Nu(e)===Nu(t)}function Mu(e,t){return Te(t)?t.findIndex(n=>Iu(n,e)):Ae(t)&&Iu(t,e)?0:-1}const Xf=e=>e[0]==="_"||e==="$stable",ll=e=>Te(e)?e.map(_n):[_n(e)],sg=(e,t,n)=>{if(t._n)return t;const r=zm((...i)=>ll(t(...i)),n);return r._c=!1,r},Jf=(e,t,n)=>{const r=e._ctx;for(const i in e){if(Xf(i))continue;const s=e[i];if(Ae(s))t[i]=sg(i,s,r);else if(s!=null){const o=ll(s);t[i]=()=>o}}},Zf=(e,t)=>{const n=ll(t);e.slots.default=()=>n},ag=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=Fe(t),Hs(t,"_",n)):Jf(t,e.slots={})}else e.slots={},t&&Zf(e,t);Hs(e.slots,ua,1)},og=(e,t,n)=>{const{vnode:r,slots:i}=e;let s=!0,o=Xe;if(r.shapeFlag&32){const u=t._;u?n&&u===1?s=!1:(Pt(i,t),!n&&u===1&&delete i._):(s=!t.$stable,Jf(t,i)),o=t}else t&&(Zf(e,t),o={default:1});if(s)for(const u in i)!Xf(u)&&!(u in o)&&delete i[u]};function ed(){return{app:null,config:{isNativeTag:Hp,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let lg=0;function ug(e,t){return function(r,i=null){Ae(r)||(r=Object.assign({},r)),i!=null&&!nt(i)&&(i=null);const s=ed(),o=new Set;let u=!1;const c=s.app={_uid:lg++,_component:r,_props:i,_container:null,_context:s,_instance:null,version:Sg,get config(){return s.config},set config(p){},use(p,...m){return o.has(p)||(p&&Ae(p.install)?(o.add(p),p.install(c,...m)):Ae(p)&&(o.add(p),p(c,...m))),c},mixin(p){return s.mixins.includes(p)||s.mixins.push(p),c},component(p,m){return m?(s.components[p]=m,c):s.components[p]},directive(p,m){return m?(s.directives[p]=m,c):s.directives[p]},mount(p,m,w){if(!u){const x=Se(r,i);return x.appContext=s,m&&t?t(x,p):e(x,p,w),u=!0,c._container=p,p.__vue_app__=c,ca(x.component)||x.component.proxy}},unmount(){u&&(e(null,c._container),delete c._container.__vue_app__)},provide(p,m){return s.provides[p]=m,c}};return c}}function bo(e,t,n,r,i=!1){if(Te(e)){e.forEach((x,O)=>bo(x,t&&(Te(t)?t[O]:t),n,r,i));return}if(zs(r)&&!i)return;const s=r.shapeFlag&4?ca(r.component)||r.component.proxy:r.el,o=i?null:s,{i:u,r:c}=e,p=t&&t.r,m=u.refs===Xe?u.refs={}:u.refs,w=u.setupState;if(p!=null&&p!==c&&(kt(p)?(m[p]=null,Ne(w,p)&&(w[p]=null)):Ot(p)&&(p.value=null)),Ae(c))ii(c,u,12,[o,m]);else{const x=kt(c),O=Ot(c);if(x||O){const I=()=>{if(e.f){const D=x?Ne(w,c)?w[c]:m[c]:c.value;i?Te(D)&&Ko(D,s):Te(D)?D.includes(s)||D.push(s):x?(m[c]=[s],Ne(w,c)&&(w[c]=m[c])):(c.value=[s],e.k&&(m[e.k]=c.value))}else x?(m[c]=o,Ne(w,c)&&(w[c]=o)):O&&(c.value=o,e.k&&(m[e.k]=o))};o?(I.id=-1,Ft(I,n)):I()}}}const Ft=Mm;function cg(e){return fg(e)}function fg(e,t){const n=Wp();n.__VUE__=!0;const{insert:r,remove:i,patchProp:s,createElement:o,createText:u,createComment:c,setText:p,setElementText:m,parentNode:w,nextSibling:x,setScopeId:O=dn,insertStaticContent:I}=e,D=(k,E,H,j=null,L=null,G=null,re=!1,X=null,te=!!E.dynamicChildren)=>{if(k===E)return;k&&!yr(k,E)&&(j=ne(k),Tt(k,L,G,!0),k=null),E.patchFlag===-2&&(te=!1,E.dynamicChildren=null);const{type:Q,ref:pe,shapeFlag:oe}=E;switch(Q){case la:Z(k,E,H,j);break;case Ei:z(k,E,H,j);break;case Ya:k==null&&U(E,H,j,re);break;case Xt:at(k,E,H,j,L,G,re,X,te);break;default:oe&1?ke(k,E,H,j,L,G,re,X,te):oe&6?En(k,E,H,j,L,G,re,X,te):(oe&64||oe&128)&&Q.process(k,E,H,j,L,G,re,X,te,Ce)}pe!=null&&L&&bo(pe,k&&k.ref,G,E||k,!E)},Z=(k,E,H,j)=>{if(k==null)r(E.el=u(E.children),H,j);else{const L=E.el=k.el;E.children!==k.children&&p(L,E.children)}},z=(k,E,H,j)=>{k==null?r(E.el=c(E.children||""),H,j):E.el=k.el},U=(k,E,H,j)=>{[k.el,k.anchor]=I(k.children,E,H,j,k.el,k.anchor)},F=({el:k,anchor:E},H,j)=>{let L;for(;k&&k!==E;)L=x(k),r(k,H,j),k=L;r(E,H,j)},J=({el:k,anchor:E})=>{let H;for(;k&&k!==E;)H=x(k),i(k),k=H;i(E)},ke=(k,E,H,j,L,G,re,X,te)=>{re=re||E.type==="svg",k==null?h(E,H,j,L,G,re,X,te):ct(k,E,L,G,re,X,te)},h=(k,E,H,j,L,G,re,X)=>{let te,Q;const{type:pe,props:oe,shapeFlag:ue,transition:ge,dirs:$e}=k;if(te=k.el=o(k.type,G,oe&&oe.is,oe),ue&8?m(te,k.children):ue&16&&st(k.children,te,null,j,L,G&&pe!=="foreignObject",re,X),$e&&yi(k,null,j,"created"),oe){for(const Pe in oe)Pe!=="value"&&!Ss(Pe)&&s(te,Pe,null,oe[Pe],G,k.children,j,L,se);"value"in oe&&s(te,"value",null,oe.value),(Q=oe.onVnodeBeforeMount)&&yn(Q,j,k)}qe(te,k,k.scopeId,re,j),$e&&yi(k,null,j,"beforeMount");const Ue=(!L||L&&!L.pendingBranch)&&ge&&!ge.persisted;Ue&&ge.beforeEnter(te),r(te,E,H),((Q=oe&&oe.onVnodeMounted)||Ue||$e)&&Ft(()=>{Q&&yn(Q,j,k),Ue&&ge.enter(te),$e&&yi(k,null,j,"mounted")},L)},qe=(k,E,H,j,L)=>{if(H&&O(k,H),j)for(let G=0;G{for(let Q=te;Q{const X=E.el=k.el;let{patchFlag:te,dynamicChildren:Q,dirs:pe}=E;te|=k.patchFlag&16;const oe=k.props||Xe,ue=E.props||Xe;let ge;H&&bi(H,!1),(ge=ue.onVnodeBeforeUpdate)&&yn(ge,H,E,k),pe&&yi(E,k,H,"beforeUpdate"),H&&bi(H,!0);const $e=L&&E.type!=="foreignObject";if(Q?zt(k.dynamicChildren,Q,X,H,j,$e,G):re||De(k,E,X,null,H,j,$e,G,!1),te>0){if(te&16)en(X,E,oe,ue,H,j,L);else if(te&2&&oe.class!==ue.class&&s(X,"class",null,ue.class,L),te&4&&s(X,"style",oe.style,ue.style,L),te&8){const Ue=E.dynamicProps;for(let Pe=0;Pe{ge&&yn(ge,H,E,k),pe&&yi(E,k,H,"updated")},j)},zt=(k,E,H,j,L,G,re)=>{for(let X=0;X{if(H!==j){if(H!==Xe)for(const X in H)!Ss(X)&&!(X in j)&&s(k,X,H[X],null,re,E.children,L,G,se);for(const X in j){if(Ss(X))continue;const te=j[X],Q=H[X];te!==Q&&X!=="value"&&s(k,X,Q,te,re,E.children,L,G,se)}"value"in j&&s(k,"value",H.value,j.value)}},at=(k,E,H,j,L,G,re,X,te)=>{const Q=E.el=k?k.el:u(""),pe=E.anchor=k?k.anchor:u("");let{patchFlag:oe,dynamicChildren:ue,slotScopeIds:ge}=E;ge&&(X=X?X.concat(ge):ge),k==null?(r(Q,H,j),r(pe,H,j),st(E.children,H,pe,L,G,re,X,te)):oe>0&&oe&64&&ue&&k.dynamicChildren?(zt(k.dynamicChildren,ue,H,L,G,re,X),(E.key!=null||L&&E===L.subTree)&&td(k,E,!0)):De(k,E,H,pe,L,G,re,X,te)},En=(k,E,H,j,L,G,re,X,te)=>{E.slotScopeIds=X,k==null?E.shapeFlag&512?L.ctx.activate(E,H,j,re,te):tn(E,H,j,L,G,re,te):Bn(k,E,te)},tn=(k,E,H,j,L,G,re)=>{const X=k.component=_g(k,j,L);if(jf(k)&&(X.ctx.renderer=Ce),wg(X),X.asyncDep){if(L&&L.registerDep(X,ft),!k.el){const te=X.subTree=Se(Ei);z(null,te,E,H)}return}ft(X,k,E,H,L,G,re)},Bn=(k,E,H)=>{const j=E.component=k.component;if(Lm(k,E,H))if(j.asyncDep&&!j.asyncResolved){je(j,E,H);return}else j.next=E,Am(j.update),j.update();else E.el=k.el,j.vnode=E},ft=(k,E,H,j,L,G,re)=>{const X=()=>{if(k.isMounted){let{next:pe,bu:oe,u:ue,parent:ge,vnode:$e}=k,Ue=pe,Pe;bi(k,!1),pe?(pe.el=$e.el,je(k,pe,re)):pe=$e,oe&&Ua(oe),(Pe=pe.props&&pe.props.onVnodeBeforeUpdate)&&yn(Pe,ge,pe,$e),bi(k,!0);const ot=Wa(k),Nt=k.subTree;k.subTree=ot,D(Nt,ot,w(Nt.el),ne(Nt),k,L,G),pe.el=ot.el,Ue===null&&Nm(k,ot.el),ue&&Ft(ue,L),(Pe=pe.props&&pe.props.onVnodeUpdated)&&Ft(()=>yn(Pe,ge,pe,$e),L)}else{let pe;const{el:oe,props:ue}=E,{bm:ge,m:$e,parent:Ue}=k,Pe=zs(E);if(bi(k,!1),ge&&Ua(ge),!Pe&&(pe=ue&&ue.onVnodeBeforeMount)&&yn(pe,Ue,E),bi(k,!0),oe&&Ee){const ot=()=>{k.subTree=Wa(k),Ee(oe,k.subTree,k,L,null)};Pe?E.type.__asyncLoader().then(()=>!k.isUnmounted&&ot()):ot()}else{const ot=k.subTree=Wa(k);D(null,ot,H,j,k,L,G),E.el=ot.el}if($e&&Ft($e,L),!Pe&&(pe=ue&&ue.onVnodeMounted)){const ot=E;Ft(()=>yn(pe,Ue,ot),L)}(E.shapeFlag&256||Ue&&zs(Ue.vnode)&&Ue.vnode.shapeFlag&256)&&k.a&&Ft(k.a,L),k.isMounted=!0,E=H=j=null}},te=k.effect=new Jo(X,()=>sl(Q),k.scope),Q=k.update=()=>te.run();Q.id=k.uid,bi(k,!0),Q()},je=(k,E,H)=>{E.component=k;const j=k.vnode.props;k.vnode=E,k.next=null,rg(k,E.props,j,H),og(k,E.children,H),ir(),Eu(),rr()},De=(k,E,H,j,L,G,re,X,te=!1)=>{const Q=k&&k.children,pe=k?k.shapeFlag:0,oe=E.children,{patchFlag:ue,shapeFlag:ge}=E;if(ue>0){if(ue&128){vn(Q,oe,H,j,L,G,re,X,te);return}else if(ue&256){qt(Q,oe,H,j,L,G,re,X,te);return}}ge&8?(pe&16&&se(Q,L,G),oe!==Q&&m(H,oe)):pe&16?ge&16?vn(Q,oe,H,j,L,G,re,X,te):se(Q,L,G,!0):(pe&8&&m(H,""),ge&16&&st(oe,H,j,L,G,re,X,te))},qt=(k,E,H,j,L,G,re,X,te)=>{k=k||Ui,E=E||Ui;const Q=k.length,pe=E.length,oe=Math.min(Q,pe);let ue;for(ue=0;uepe?se(k,L,G,!0,!1,oe):st(E,H,j,L,G,re,X,te,oe)},vn=(k,E,H,j,L,G,re,X,te)=>{let Q=0;const pe=E.length;let oe=k.length-1,ue=pe-1;for(;Q<=oe&&Q<=ue;){const ge=k[Q],$e=E[Q]=te?Gn(E[Q]):_n(E[Q]);if(yr(ge,$e))D(ge,$e,H,null,L,G,re,X,te);else break;Q++}for(;Q<=oe&&Q<=ue;){const ge=k[oe],$e=E[ue]=te?Gn(E[ue]):_n(E[ue]);if(yr(ge,$e))D(ge,$e,H,null,L,G,re,X,te);else break;oe--,ue--}if(Q>oe){if(Q<=ue){const ge=ue+1,$e=geue)for(;Q<=oe;)Tt(k[Q],L,G,!0),Q++;else{const ge=Q,$e=Q,Ue=new Map;for(Q=$e;Q<=ue;Q++){const At=E[Q]=te?Gn(E[Q]):_n(E[Q]);At.key!=null&&Ue.set(At.key,Q)}let Pe,ot=0;const Nt=ue-$e+1;let jn=!1,On=0;const nn=new Array(Nt);for(Q=0;Q=Nt){Tt(At,L,G,!0);continue}let lt;if(At.key!=null)lt=Ue.get(At.key);else for(Pe=$e;Pe<=ue;Pe++)if(nn[Pe-$e]===0&&yr(At,E[Pe])){lt=Pe;break}lt===void 0?Tt(At,L,G,!0):(nn[lt-$e]=Q+1,lt>=On?On=lt:jn=!0,D(At,E[lt],H,null,L,G,re,X,te),ot++)}const ur=jn?dg(nn):Ui;for(Pe=ur.length-1,Q=Nt-1;Q>=0;Q--){const At=$e+Q,lt=E[At],Ct=At+1{const{el:G,type:re,transition:X,children:te,shapeFlag:Q}=k;if(Q&6){dt(k.component.subTree,E,H,j);return}if(Q&128){k.suspense.move(E,H,j);return}if(Q&64){re.move(k,E,H,Ce);return}if(re===Xt){r(G,E,H);for(let oe=0;oeX.enter(G),L);else{const{leave:oe,delayLeave:ue,afterLeave:ge}=X,$e=()=>r(G,E,H),Ue=()=>{oe(G,()=>{$e(),ge&&ge()})};ue?ue(G,$e,Ue):Ue()}else r(G,E,H)},Tt=(k,E,H,j=!1,L=!1)=>{const{type:G,props:re,ref:X,children:te,dynamicChildren:Q,shapeFlag:pe,patchFlag:oe,dirs:ue}=k;if(X!=null&&bo(X,null,H,k,!0),pe&256){E.ctx.deactivate(k);return}const ge=pe&1&&ue,$e=!zs(k);let Ue;if($e&&(Ue=re&&re.onVnodeBeforeUnmount)&&yn(Ue,E,k),pe&6)V(k.component,H,j);else{if(pe&128){k.suspense.unmount(H,j);return}ge&&yi(k,null,E,"beforeUnmount"),pe&64?k.type.remove(k,E,H,L,Ce,j):Q&&(G!==Xt||oe>0&&oe&64)?se(Q,E,H,!1,!0):(G===Xt&&oe&384||!L&&pe&16)&&se(te,E,H),j&&Bt(k)}($e&&(Ue=re&&re.onVnodeUnmounted)||ge)&&Ft(()=>{Ue&&yn(Ue,E,k),ge&&yi(k,null,E,"unmounted")},H)},Bt=k=>{const{type:E,el:H,anchor:j,transition:L}=k;if(E===Xt){Sn(H,j);return}if(E===Ya){J(k);return}const G=()=>{i(H),L&&!L.persisted&&L.afterLeave&&L.afterLeave()};if(k.shapeFlag&1&&L&&!L.persisted){const{leave:re,delayLeave:X}=L,te=()=>re(H,G);X?X(k.el,G,te):te()}else G()},Sn=(k,E)=>{let H;for(;k!==E;)H=x(k),i(k),k=H;i(E)},V=(k,E,H)=>{const{bum:j,scope:L,update:G,subTree:re,um:X}=k;j&&Ua(j),L.stop(),G&&(G.active=!1,Tt(re,k,E,H)),X&&Ft(X,E),Ft(()=>{k.isUnmounted=!0},E),E&&E.pendingBranch&&!E.isUnmounted&&k.asyncDep&&!k.asyncResolved&&k.suspenseId===E.pendingId&&(E.deps--,E.deps===0&&E.resolve())},se=(k,E,H,j=!1,L=!1,G=0)=>{for(let re=G;rek.shapeFlag&6?ne(k.component.subTree):k.shapeFlag&128?k.suspense.next():x(k.anchor||k.el),fe=(k,E,H)=>{k==null?E._vnode&&Tt(E._vnode,null,null,!0):D(E._vnode||null,k,E,null,null,null,H),Eu(),Df(),E._vnode=k},Ce={p:D,um:Tt,m:dt,r:Bt,mt:tn,mc:st,pc:De,pbc:zt,n:ne,o:e};let Qe,Ee;return t&&([Qe,Ee]=t(Ce)),{render:fe,hydrate:Qe,createApp:ug(fe,Qe)}}function bi({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function td(e,t,n=!1){const r=e.children,i=t.children;if(Te(r)&&Te(i))for(let s=0;s>1,e[n[u]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,o=n[s-1];s-- >0;)n[s]=o,o=t[o];return n}const hg=e=>e.__isTeleport,Xt=Symbol(void 0),la=Symbol(void 0),Ei=Symbol(void 0),Ya=Symbol(void 0),Sr=[];let cn=null;function Ie(e=!1){Sr.push(cn=e?null:[])}function pg(){Sr.pop(),cn=Sr[Sr.length-1]||null}let Fr=1;function Du(e){Fr+=e}function nd(e){return e.dynamicChildren=Fr>0?cn||Ui:null,pg(),Fr>0&&cn&&cn.push(e),e}function Ke(e,t,n,r,i,s){return nd(le(e,t,n,r,i,s,!0))}function ar(e,t,n,r,i){return nd(Se(e,t,n,r,i,!0))}function _o(e){return e?e.__v_isVNode===!0:!1}function yr(e,t){return e.type===t.type&&e.key===t.key}const ua="__vInternal",id=({key:e})=>e!=null?e:null,Rs=({ref:e,ref_key:t,ref_for:n})=>e!=null?kt(e)||Ot(e)||Ae(e)?{i:Jt,r:e,k:t,f:!!n}:e:null;function le(e,t=null,n=null,r=0,i=null,s=e===Xt?0:1,o=!1,u=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&id(t),ref:t&&Rs(t),scopeId:sa,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Jt};return u?(ul(c,n),s&128&&e.normalize(c)):n&&(c.shapeFlag|=kt(n)?8:16),Fr>0&&!o&&cn&&(c.patchFlag>0||s&6)&&c.patchFlag!==32&&cn.push(c),c}const Se=mg;function mg(e,t=null,n=null,r=0,i=null,s=!1){if((!e||e===Gm)&&(e=Ei),_o(e)){const u=Xi(e,t,!0);return n&&ul(u,n),Fr>0&&!s&&cn&&(u.shapeFlag&6?cn[cn.indexOf(e)]=u:cn.push(u)),u.patchFlag|=-2,u}if(Tg(e)&&(e=e.__vccOpts),t){t=gg(t);let{class:u,style:c}=t;u&&!kt(u)&&(t.class=Gi(u)),nt(c)&&(Af(c)&&!Te(c)&&(c=Pt({},c)),t.style=Vo(c))}const o=kt(e)?1:Im(e)?128:hg(e)?64:nt(e)?4:Ae(e)?2:0;return le(e,t,n,r,i,o,s,!0)}function gg(e){return e?Af(e)||ua in e?Pt({},e):e:null}function Xi(e,t,n=!1){const{props:r,ref:i,patchFlag:s,children:o}=e,u=t?vg(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&id(u),ref:t&&t.ref?n&&i?Te(i)?i.concat(Rs(t)):[i,Rs(t)]:Rs(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Xt?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Xi(e.ssContent),ssFallback:e.ssFallback&&Xi(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function Jn(e=" ",t=0){return Se(la,null,e,t)}function Or(e="",t=!1){return t?(Ie(),ar(Ei,null,e)):Se(Ei,null,e)}function _n(e){return e==null||typeof e=="boolean"?Se(Ei):Te(e)?Se(Xt,null,e.slice()):typeof e=="object"?Gn(e):Se(la,null,String(e))}function Gn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Xi(e)}function ul(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Te(t))n=16;else if(typeof t=="object")if(r&65){const i=t.default;i&&(i._c&&(i._d=!1),ul(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!(ua in t)?t._ctx=Jt:i===3&&Jt&&(Jt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ae(t)?(t={default:t,_ctx:Jt},n=32):(t=String(t),r&64?(n=16,t=[Jn(t)]):n=8);e.children=t,e.shapeFlag|=n}function vg(...e){const t={};for(let n=0;n{$t=e,e.scope.on()},Ai=()=>{$t&&$t.scope.off(),$t=null};function rd(e){return e.vnode.shapeFlag&4}let qr=!1;function wg(e,t=!1){qr=t;const{props:n,children:r}=e.vnode,i=rd(e);ig(e,n,i,t),ag(e,r);const s=i?kg(e,t):void 0;return qr=!1,s}function kg(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Ef(new Proxy(e.ctx,Xm));const{setup:r}=n;if(r){const i=e.setupContext=r.length>1?Cg(e):null;Ji(e),ir();const s=ii(r,e,0,[e.props,i]);if(rr(),Ai(),df(s)){if(s.then(Ai,Ai),t)return s.then(o=>{Hu(e,o,t)}).catch(o=>{ia(o,e,0)});e.asyncDep=s}else Hu(e,s,t)}else sd(e,t)}function Hu(e,t,n){Ae(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:nt(t)&&(e.setupState=Pf(t)),sd(e,n)}let Fu;function sd(e,t,n){const r=e.type;if(!e.render){if(!t&&Fu&&!r.render){const i=r.template||ol(e).template;if(i){const{isCustomElement:s,compilerOptions:o}=e.appContext.config,{delimiters:u,compilerOptions:c}=r,p=Pt(Pt({isCustomElement:s,delimiters:u},o),c);r.render=Fu(i,p)}}e.render=r.render||dn}Ji(e),ir(),Jm(e),rr(),Ai()}function xg(e){return new Proxy(e.attrs,{get(t,n){return Yt(e,"get","$attrs"),t[n]}})}function Cg(e){const t=r=>{e.exposed=r||{}};let n;return{get attrs(){return n||(n=xg(e))},slots:e.slots,emit:e.emit,expose:t}}function ca(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Pf(Ef(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Er)return Er[n](e)},has(t,n){return n in t||n in Er}}))}function $g(e,t=!0){return Ae(e)?e.displayName||e.name:e.name||t&&e.__name}function Tg(e){return Ae(e)&&"__vccOpts"in e}const tt=(e,t)=>Cm(e,t,qr);function fa(e,t,n){const r=arguments.length;return r===2?nt(t)&&!Te(t)?_o(t)?Se(e,null,[t]):Se(e,t):Se(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&_o(n)&&(n=[n]),Se(e,t,n))}const Ag=Symbol(""),Eg=()=>pn(Ag),Sg="3.2.45",Og="http://www.w3.org/2000/svg",ki=typeof document<"u"?document:null,qu=ki&&ki.createElement("template"),zg={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const i=t?ki.createElementNS(Og,e):ki.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&i.setAttribute("multiple",r.multiple),i},createText:e=>ki.createTextNode(e),createComment:e=>ki.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ki.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,s){const o=n?n.previousSibling:t.lastChild;if(i&&(i===s||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===s||!(i=i.nextSibling)););else{qu.innerHTML=r?`${e}`:e;const u=qu.content;if(r){const c=u.firstChild;for(;c.firstChild;)u.appendChild(c.firstChild);u.removeChild(c)}t.insertBefore(u,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Rg(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Pg(e,t,n){const r=e.style,i=kt(n);if(n&&!i){for(const s in n)wo(r,s,n[s]);if(t&&!kt(t))for(const s in t)n[s]==null&&wo(r,s,"")}else{const s=r.display;i?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=s)}}const Bu=/\s*!important$/;function wo(e,t,n){if(Te(n))n.forEach(r=>wo(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Lg(e,t);Bu.test(n)?e.setProperty(Ri(r),n.replace(Bu,""),"important"):e[r]=n}}const ju=["Webkit","Moz","ms"],Ka={};function Lg(e,t){const n=Ka[t];if(n)return n;let r=Tn(t);if(r!=="filter"&&r in e)return Ka[t]=r;r=ta(r);for(let i=0;iGa||(qg.then(()=>Ga=0),Ga=Date.now());function jg(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;hn(Ug(r,n.value),t,5,[r])};return n.value=e,n.attached=Bg(),n}function Ug(e,t){if(Te(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>i=>!i._stopped&&r&&r(i))}else return t}const Vu=/^on[a-z]/,Wg=(e,t,n,r,i=!1,s,o,u,c)=>{t==="class"?Rg(e,r,i):t==="style"?Pg(e,n,r):Js(t)?Yo(t)||Hg(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Vg(e,t,r,i))?Ig(e,t,r,s,o,u,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Ng(e,t,r,i))};function Vg(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&Vu.test(t)&&Ae(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Vu.test(t)&&kt(n)?!1:t in e}const Yg={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},da=(e,t)=>n=>{if(!("key"in n))return;const r=Ri(n.key);if(t.some(i=>i===r||Yg[i]===r))return e(n)},Yu={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):br(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),br(e,!0),r.enter(e)):r.leave(e,()=>{br(e,!1)}):br(e,t))},beforeUnmount(e,{value:t}){br(e,t)}};function br(e,t){e.style.display=t?e._vod:"none"}const Kg=Pt({patchProp:Wg},zg);let Ku;function Gg(){return Ku||(Ku=cg(Kg))}const Qg=(...e)=>{const t=Gg().createApp(...e),{mount:n}=t;return t.mount=r=>{const i=Xg(r);if(!i)return;const s=t._component;!Ae(s)&&!s.render&&!s.template&&(s.template=i.innerHTML),i.innerHTML="";const o=n(i,!1,i instanceof SVGElement);return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function Xg(e){return kt(e)?document.querySelector(e):e}/*! * vue-router v4.1.6 * (c) 2022 Eduardo San Martin Morote * @license MIT - */const qi=typeof window<"u";function Jg(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const Be=Object.assign;function Qa(e,t){const n={};for(const r in t){const i=t[r];n[r]=gn(i)?i.map(e):e(i)}return n}const zr=()=>{},gn=Array.isArray,Zg=/\/$/,ev=e=>e.replace(Zg,"");function Xa(e,t,n="/"){let r,i={},s="",o="";const u=t.indexOf("#");let c=t.indexOf("?");return u=0&&(c=-1),c>-1&&(r=t.slice(0,c),s=t.slice(c+1,u>-1?u:t.length),i=e(s)),u>-1&&(r=r||t.slice(0,u),o=t.slice(u,t.length)),r=rv(r!=null?r:t,n),{fullPath:r+(s&&"?")+s+o,path:r,query:i,hash:o}}function tv(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Gu(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nv(e,t,n){const r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Zi(t.matched[r],n.matched[i])&&ad(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Zi(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ad(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!iv(e[n],t[n]))return!1;return!0}function iv(e,t){return gn(e)?Qu(e,t):gn(t)?Qu(t,e):e===t}function Qu(e,t){return gn(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function rv(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/");let i=n.length-1,s,o;for(s=0;s1&&i--;else break;return n.slice(0,i).join("/")+"/"+r.slice(s-(s===r.length?1:0)).join("/")}var Br;(function(e){e.pop="pop",e.push="push"})(Br||(Br={}));var Rr;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Rr||(Rr={}));function sv(e){if(!e)if(qi){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ev(e)}const av=/^[^#]+#/;function ov(e,t){return e.replace(av,"#")+t}function lv(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const ha=()=>({left:window.pageXOffset,top:window.pageYOffset});function uv(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),i=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=lv(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Xu(e,t){return(history.state?history.state.position-t:-1)+e}const ko=new Map;function cv(e,t){ko.set(e,t)}function fv(e){const t=ko.get(e);return ko.delete(e),t}let dv=()=>location.protocol+"//"+location.host;function od(e,t){const{pathname:n,search:r,hash:i}=t,s=e.indexOf("#");if(s>-1){let u=i.includes(e.slice(s))?e.slice(s).length:1,c=i.slice(u);return c[0]!=="/"&&(c="/"+c),Gu(c,"")}return Gu(n,e)+r+i}function hv(e,t,n,r){let i=[],s=[],o=null;const u=({state:x})=>{const R=od(e,location),I=n.value,D=t.value;let Z=0;if(x){if(n.value=R,t.value=x,o&&o===I){o=null;return}Z=D?x.position-D.position:0}else r(R);i.forEach(O=>{O(n.value,I,{delta:Z,type:Br.pop,direction:Z?Z>0?Rr.forward:Rr.back:Rr.unknown})})};function c(){o=n.value}function p(x){i.push(x);const R=()=>{const I=i.indexOf(x);I>-1&&i.splice(I,1)};return s.push(R),R}function m(){const{history:x}=window;!x.state||x.replaceState(Be({},x.state,{scroll:ha()}),"")}function w(){for(const x of s)x();s=[],window.removeEventListener("popstate",u),window.removeEventListener("beforeunload",m)}return window.addEventListener("popstate",u),window.addEventListener("beforeunload",m),{pauseListeners:c,listen:p,destroy:w}}function Ju(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?ha():null}}function pv(e){const{history:t,location:n}=window,r={value:od(e,n)},i={value:t.state};i.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(c,p,m){const w=e.indexOf("#"),x=w>-1?(n.host&&document.querySelector("base")?e:e.slice(w))+c:dv()+e+c;try{t[m?"replaceState":"pushState"](p,"",x),i.value=p}catch(R){console.error(R),n[m?"replace":"assign"](x)}}function o(c,p){const m=Be({},t.state,Ju(i.value.back,c,i.value.forward,!0),p,{position:i.value.position});s(c,m,!0),r.value=c}function u(c,p){const m=Be({},i.value,t.state,{forward:c,scroll:ha()});s(m.current,m,!0);const w=Be({},Ju(r.value,c,null),{position:m.position+1},p);s(c,w,!1),r.value=c}return{location:r,state:i,push:u,replace:o}}function mv(e){e=sv(e);const t=pv(e),n=hv(e,t.state,t.location,t.replace);function r(s,o=!0){o||n.pauseListeners(),history.go(s)}const i=Be({location:"",base:e,go:r,createHref:ov.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function gv(e){return typeof e=="string"||e&&typeof e=="object"}function ld(e){return typeof e=="string"||typeof e=="symbol"}const Yn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},ud=Symbol("");var Zu;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Zu||(Zu={}));function er(e,t){return Be(new Error,{type:e,[ud]:!0},t)}function Pn(e,t){return e instanceof Error&&ud in e&&(t==null||!!(e.type&t))}const ec="[^/]+?",vv={sensitive:!1,strict:!1,start:!0,end:!0},yv=/[.+*?^${}()[\]/\\]/g;function bv(e,t){const n=Be({},vv,t),r=[];let i=n.start?"^":"";const s=[];for(const p of e){const m=p.length?[]:[90];n.strict&&!p.length&&(i+="/");for(let w=0;wt.length?t.length===1&&t[0]===40+40?1:-1:0}function wv(e,t){let n=0;const r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}const kv={type:0,value:""},xv=/[a-zA-Z0-9_]/;function Cv(e){if(!e)return[[]];if(e==="/")return[[kv]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(R){throw new Error(`ERR (${n})/"${p}": ${R}`)}let n=0,r=n;const i=[];let s;function o(){s&&i.push(s),s=[]}let u=0,c,p="",m="";function w(){!p||(n===0?s.push({type:0,value:p}):n===1||n===2||n===3?(s.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${p}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:p,regexp:m,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),p="")}function x(){p+=c}for(;u{o(U)}:zr}function o(m){if(ld(m)){const w=r.get(m);w&&(r.delete(m),n.splice(n.indexOf(w),1),w.children.forEach(o),w.alias.forEach(o))}else{const w=n.indexOf(m);w>-1&&(n.splice(w,1),m.record.name&&r.delete(m.record.name),m.children.forEach(o),m.alias.forEach(o))}}function u(){return n}function c(m){let w=0;for(;w=0&&(m.record.path!==n[w].record.path||!cd(m,n[w]));)w++;n.splice(w,0,m),m.record.name&&!ic(m)&&r.set(m.record.name,m)}function p(m,w){let x,R={},I,D;if("name"in m&&m.name){if(x=r.get(m.name),!x)throw er(1,{location:m});D=x.record.name,R=Be(nc(w.params,x.keys.filter(U=>!U.optional).map(U=>U.name)),m.params&&nc(m.params,x.keys.map(U=>U.name))),I=x.stringify(R)}else if("path"in m)I=m.path,x=n.find(U=>U.re.test(I)),x&&(R=x.parse(I),D=x.record.name);else{if(x=w.name?r.get(w.name):n.find(U=>U.re.test(w.path)),!x)throw er(1,{location:m,currentLocation:w});D=x.record.name,R=Be({},w.params,m.params),I=x.stringify(R)}const Z=[];let O=x;for(;O;)Z.unshift(O.record),O=O.parent;return{name:D,path:I,params:R,matched:Z,meta:Sv(Z)}}return e.forEach(m=>s(m)),{addRoute:s,resolve:p,removeRoute:o,getRoutes:u,getRecordMatcher:i}}function nc(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Av(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:Ev(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function Ev(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="boolean"?n:n[r];return t}function ic(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Sv(e){return e.reduce((t,n)=>Be(t,n.meta),{})}function rc(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function cd(e,t){return t.children.some(n=>n===e||cd(e,n))}const fd=/#/g,Ov=/&/g,zv=/\//g,Rv=/=/g,Pv=/\?/g,dd=/\+/g,Lv=/%5B/g,Nv=/%5D/g,hd=/%5E/g,Iv=/%60/g,pd=/%7B/g,Mv=/%7C/g,md=/%7D/g,Dv=/%20/g;function cl(e){return encodeURI(""+e).replace(Mv,"|").replace(Lv,"[").replace(Nv,"]")}function Hv(e){return cl(e).replace(pd,"{").replace(md,"}").replace(hd,"^")}function xo(e){return cl(e).replace(dd,"%2B").replace(Dv,"+").replace(fd,"%23").replace(Ov,"%26").replace(Iv,"`").replace(pd,"{").replace(md,"}").replace(hd,"^")}function Fv(e){return xo(e).replace(Rv,"%3D")}function qv(e){return cl(e).replace(fd,"%23").replace(Pv,"%3F")}function Bv(e){return e==null?"":qv(e).replace(zv,"%2F")}function js(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function jv(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;is&&xo(s)):[r&&xo(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Uv(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=gn(r)?r.map(i=>i==null?null:""+i):r==null?r:""+r)}return t}const Wv=Symbol(""),ac=Symbol(""),pa=Symbol(""),fl=Symbol(""),Co=Symbol("");function _r(){let e=[];function t(r){return e.push(r),()=>{const i=e.indexOf(r);i>-1&&e.splice(i,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function Qn(e,t,n,r,i){const s=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((o,u)=>{const c=w=>{w===!1?u(er(4,{from:n,to:t})):w instanceof Error?u(w):gv(w)?u(er(2,{from:t,to:w})):(s&&r.enterCallbacks[i]===s&&typeof w=="function"&&s.push(w),o())},p=e.call(r&&r.instances[i],t,n,c);let m=Promise.resolve(p);e.length<3&&(m=m.then(c)),m.catch(w=>u(w))})}function Ja(e,t,n,r){const i=[];for(const s of e)for(const o in s.components){let u=s.components[o];if(!(t!=="beforeRouteEnter"&&!s.instances[o]))if(Vv(u)){const p=(u.__vccOpts||u)[t];p&&i.push(Qn(p,n,r,s,o))}else{let c=u();i.push(()=>c.then(p=>{if(!p)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${s.path}"`));const m=Jg(p)?p.default:p;s.components[o]=m;const x=(m.__vccOpts||m)[t];return x&&Qn(x,n,r,s,o)()}))}}return i}function Vv(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function oc(e){const t=pn(pa),n=pn(fl),r=tt(()=>t.resolve(ni(e.to))),i=tt(()=>{const{matched:c}=r.value,{length:p}=c,m=c[p-1],w=n.matched;if(!m||!w.length)return-1;const x=w.findIndex(Zi.bind(null,m));if(x>-1)return x;const R=lc(c[p-2]);return p>1&&lc(m)===R&&w[w.length-1].path!==R?w.findIndex(Zi.bind(null,c[p-2])):x}),s=tt(()=>i.value>-1&&Qv(n.params,r.value.params)),o=tt(()=>i.value>-1&&i.value===n.matched.length-1&&ad(n.params,r.value.params));function u(c={}){return Gv(c)?t[ni(e.replace)?"replace":"push"](ni(e.to)).catch(zr):Promise.resolve()}return{route:r,href:tt(()=>r.value.href),isActive:s,isExactActive:o,navigate:u}}const Yv=Gr({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:oc,setup(e,{slots:t}){const n=sr(oc(e)),{options:r}=pn(pa),i=tt(()=>({[uc(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[uc(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:fa("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},s)}}}),Kv=Yv;function Gv(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Qv(e,t){for(const n in t){const r=t[n],i=e[n];if(typeof r=="string"){if(r!==i)return!1}else if(!gn(i)||i.length!==r.length||r.some((s,o)=>s!==i[o]))return!1}return!0}function lc(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const uc=(e,t,n)=>e!=null?e:t!=null?t:n,Xv=Gr({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=pn(Co),i=tt(()=>e.route||r.value),s=pn(ac,0),o=tt(()=>{let p=ni(s);const{matched:m}=i.value;let w;for(;(w=m[p])&&!w.components;)p++;return p}),u=tt(()=>i.value.matched[o.value]);Os(ac,tt(()=>o.value+1)),Os(Wv,u),Os(Co,i);const c=zf();return Ar(()=>[c.value,u.value,e.name],([p,m,w],[x,R,I])=>{m&&(m.instances[w]=p,R&&R!==m&&p&&p===x&&(m.leaveGuards.size||(m.leaveGuards=R.leaveGuards),m.updateGuards.size||(m.updateGuards=R.updateGuards))),p&&m&&(!R||!Zi(m,R)||!x)&&(m.enterCallbacks[w]||[]).forEach(D=>D(p))},{flush:"post"}),()=>{const p=i.value,m=e.name,w=u.value,x=w&&w.components[m];if(!x)return cc(n.default,{Component:x,route:p});const R=w.props[m],I=R?R===!0?p.params:typeof R=="function"?R(p):R:null,Z=fa(x,Be({},I,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(w.instances[m]=null)},ref:c}));return cc(n.default,{Component:Z,route:p})||Z}}});function cc(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Jv=Xv;function Zv(e){const t=Tv(e.routes,e),n=e.parseQuery||jv,r=e.stringifyQuery||sc,i=e.history,s=_r(),o=_r(),u=_r(),c=_m(Yn);let p=Yn;qi&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const m=Qa.bind(null,V=>""+V),w=Qa.bind(null,Bv),x=Qa.bind(null,js);function R(V,se){let ne,fe;return ld(V)?(ne=t.getRecordMatcher(V),fe=se):fe=V,t.addRoute(fe,ne)}function I(V){const se=t.getRecordMatcher(V);se&&t.removeRoute(se)}function D(){return t.getRoutes().map(V=>V.record)}function Z(V){return!!t.getRecordMatcher(V)}function O(V,se){if(se=Be({},se||c.value),typeof V=="string"){const k=Xa(n,V,se.path),E=t.resolve({path:k.path},se),H=i.createHref(k.fullPath);return Be(k,E,{params:x(E.params),hash:js(k.hash),redirectedFrom:void 0,href:H})}let ne;if("path"in V)ne=Be({},V,{path:Xa(n,V.path,se.path).path});else{const k=Be({},V.params);for(const E in k)k[E]==null&&delete k[E];ne=Be({},V,{params:w(V.params)}),se.params=w(se.params)}const fe=t.resolve(ne,se),Ce=V.hash||"";fe.params=m(x(fe.params));const Qe=tv(r,Be({},V,{hash:Hv(Ce),path:fe.path})),Ee=i.createHref(Qe);return Be({fullPath:Qe,hash:Ce,query:r===sc?Uv(V.query):V.query||{}},fe,{redirectedFrom:void 0,href:Ee})}function U(V){return typeof V=="string"?Xa(n,V,c.value.path):Be({},V)}function F(V,se){if(p!==V)return er(8,{from:se,to:V})}function J(V){return qe(V)}function ke(V){return J(Be(U(V),{replace:!0}))}function h(V){const se=V.matched[V.matched.length-1];if(se&&se.redirect){const{redirect:ne}=se;let fe=typeof ne=="function"?ne(V):ne;return typeof fe=="string"&&(fe=fe.includes("?")||fe.includes("#")?fe=U(fe):{path:fe},fe.params={}),Be({query:V.query,hash:V.hash,params:"path"in fe?{}:V.params},fe)}}function qe(V,se){const ne=p=O(V),fe=c.value,Ce=V.state,Qe=V.force,Ee=V.replace===!0,k=h(ne);if(k)return qe(Be(U(k),{state:typeof k=="object"?Be({},Ce,k.state):Ce,force:Qe,replace:Ee}),se||ne);const E=ne;E.redirectedFrom=se;let H;return!Qe&&nv(r,fe,ne)&&(H=er(16,{to:E,from:fe}),vn(fe,fe,!0,!1)),(H?Promise.resolve(H):ct(E,fe)).catch(j=>Pn(j)?Pn(j,2)?j:qt(j):je(j,E,fe)).then(j=>{if(j){if(Pn(j,2))return qe(Be({replace:Ee},U(j.to),{state:typeof j.to=="object"?Be({},Ce,j.to.state):Ce,force:Qe}),se||E)}else j=en(E,fe,!0,Ee,Ce);return zt(E,fe,j),j})}function st(V,se){const ne=F(V,se);return ne?Promise.reject(ne):Promise.resolve()}function ct(V,se){let ne;const[fe,Ce,Qe]=ey(V,se);ne=Ja(fe.reverse(),"beforeRouteLeave",V,se);for(const k of fe)k.leaveGuards.forEach(E=>{ne.push(Qn(E,V,se))});const Ee=st.bind(null,V,se);return ne.push(Ee),Hi(ne).then(()=>{ne=[];for(const k of s.list())ne.push(Qn(k,V,se));return ne.push(Ee),Hi(ne)}).then(()=>{ne=Ja(Ce,"beforeRouteUpdate",V,se);for(const k of Ce)k.updateGuards.forEach(E=>{ne.push(Qn(E,V,se))});return ne.push(Ee),Hi(ne)}).then(()=>{ne=[];for(const k of V.matched)if(k.beforeEnter&&!se.matched.includes(k))if(gn(k.beforeEnter))for(const E of k.beforeEnter)ne.push(Qn(E,V,se));else ne.push(Qn(k.beforeEnter,V,se));return ne.push(Ee),Hi(ne)}).then(()=>(V.matched.forEach(k=>k.enterCallbacks={}),ne=Ja(Qe,"beforeRouteEnter",V,se),ne.push(Ee),Hi(ne))).then(()=>{ne=[];for(const k of o.list())ne.push(Qn(k,V,se));return ne.push(Ee),Hi(ne)}).catch(k=>Pn(k,8)?k:Promise.reject(k))}function zt(V,se,ne){for(const fe of u.list())fe(V,se,ne)}function en(V,se,ne,fe,Ce){const Qe=F(V,se);if(Qe)return Qe;const Ee=se===Yn,k=qi?history.state:{};ne&&(fe||Ee?i.replace(V.fullPath,Be({scroll:Ee&&k&&k.scroll},Ce)):i.push(V.fullPath,Ce)),c.value=V,vn(V,se,ne,Ee),qt()}let at;function En(){at||(at=i.listen((V,se,ne)=>{if(!Sn.listening)return;const fe=O(V),Ce=h(fe);if(Ce){qe(Be(Ce,{replace:!0}),fe).catch(zr);return}p=fe;const Qe=c.value;qi&&cv(Xu(Qe.fullPath,ne.delta),ha()),ct(fe,Qe).catch(Ee=>Pn(Ee,12)?Ee:Pn(Ee,2)?(qe(Ee.to,fe).then(k=>{Pn(k,20)&&!ne.delta&&ne.type===Br.pop&&i.go(-1,!1)}).catch(zr),Promise.reject()):(ne.delta&&i.go(-ne.delta,!1),je(Ee,fe,Qe))).then(Ee=>{Ee=Ee||en(fe,Qe,!1),Ee&&(ne.delta&&!Pn(Ee,8)?i.go(-ne.delta,!1):ne.type===Br.pop&&Pn(Ee,20)&&i.go(-1,!1)),zt(fe,Qe,Ee)}).catch(zr)}))}let tn=_r(),Bn=_r(),ft;function je(V,se,ne){qt(V);const fe=Bn.list();return fe.length?fe.forEach(Ce=>Ce(V,se,ne)):console.error(V),Promise.reject(V)}function De(){return ft&&c.value!==Yn?Promise.resolve():new Promise((V,se)=>{tn.add([V,se])})}function qt(V){return ft||(ft=!V,En(),tn.list().forEach(([se,ne])=>V?ne(V):se()),tn.reset()),V}function vn(V,se,ne,fe){const{scrollBehavior:Ce}=e;if(!qi||!Ce)return Promise.resolve();const Qe=!ne&&fv(Xu(V.fullPath,0))||(fe||!ne)&&history.state&&history.state.scroll||null;return If().then(()=>Ce(V,se,Qe)).then(Ee=>Ee&&uv(Ee)).catch(Ee=>je(Ee,V,se))}const dt=V=>i.go(V);let Tt;const Bt=new Set,Sn={currentRoute:c,listening:!0,addRoute:R,removeRoute:I,hasRoute:Z,getRoutes:D,resolve:O,options:e,push:J,replace:ke,go:dt,back:()=>dt(-1),forward:()=>dt(1),beforeEach:s.add,beforeResolve:o.add,afterEach:u.add,onError:Bn.add,isReady:De,install(V){const se=this;V.component("RouterLink",Kv),V.component("RouterView",Jv),V.config.globalProperties.$router=se,Object.defineProperty(V.config.globalProperties,"$route",{enumerable:!0,get:()=>ni(c)}),qi&&!Tt&&c.value===Yn&&(Tt=!0,J(i.location).catch(Ce=>{}));const ne={};for(const Ce in Yn)ne[Ce]=tt(()=>c.value[Ce]);V.provide(pa,se),V.provide(fl,sr(ne)),V.provide(Co,c);const fe=V.unmount;Bt.add(V),V.unmount=function(){Bt.delete(V),Bt.size<1&&(p=Yn,at&&at(),at=null,c.value=Yn,Tt=!1,ft=!1),fe()}}};return Sn}function Hi(e){return e.reduce((t,n)=>t.then(()=>n()),Promise.resolve())}function ey(e,t){const n=[],r=[],i=[],s=Math.max(t.matched.length,e.matched.length);for(let o=0;oZi(p,u))?r.push(u):n.push(u));const c=e.matched[o];c&&(t.matched.find(p=>Zi(p,c))||i.push(c))}return[n,r,i]}function ty(){return pn(pa)}function ny(){return pn(fl)}var iy=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},gd={exports:{}};/*! + */const qi=typeof window<"u";function Jg(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const Be=Object.assign;function Qa(e,t){const n={};for(const r in t){const i=t[r];n[r]=gn(i)?i.map(e):e(i)}return n}const zr=()=>{},gn=Array.isArray,Zg=/\/$/,ev=e=>e.replace(Zg,"");function Xa(e,t,n="/"){let r,i={},s="",o="";const u=t.indexOf("#");let c=t.indexOf("?");return u=0&&(c=-1),c>-1&&(r=t.slice(0,c),s=t.slice(c+1,u>-1?u:t.length),i=e(s)),u>-1&&(r=r||t.slice(0,u),o=t.slice(u,t.length)),r=rv(r!=null?r:t,n),{fullPath:r+(s&&"?")+s+o,path:r,query:i,hash:o}}function tv(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Gu(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function nv(e,t,n){const r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Zi(t.matched[r],n.matched[i])&&ad(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Zi(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ad(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!iv(e[n],t[n]))return!1;return!0}function iv(e,t){return gn(e)?Qu(e,t):gn(t)?Qu(t,e):e===t}function Qu(e,t){return gn(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function rv(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/");let i=n.length-1,s,o;for(s=0;s1&&i--;else break;return n.slice(0,i).join("/")+"/"+r.slice(s-(s===r.length?1:0)).join("/")}var Br;(function(e){e.pop="pop",e.push="push"})(Br||(Br={}));var Rr;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Rr||(Rr={}));function sv(e){if(!e)if(qi){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),ev(e)}const av=/^[^#]+#/;function ov(e,t){return e.replace(av,"#")+t}function lv(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const ha=()=>({left:window.pageXOffset,top:window.pageYOffset});function uv(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),i=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!i)return;t=lv(i,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Xu(e,t){return(history.state?history.state.position-t:-1)+e}const ko=new Map;function cv(e,t){ko.set(e,t)}function fv(e){const t=ko.get(e);return ko.delete(e),t}let dv=()=>location.protocol+"//"+location.host;function od(e,t){const{pathname:n,search:r,hash:i}=t,s=e.indexOf("#");if(s>-1){let u=i.includes(e.slice(s))?e.slice(s).length:1,c=i.slice(u);return c[0]!=="/"&&(c="/"+c),Gu(c,"")}return Gu(n,e)+r+i}function hv(e,t,n,r){let i=[],s=[],o=null;const u=({state:x})=>{const O=od(e,location),I=n.value,D=t.value;let Z=0;if(x){if(n.value=O,t.value=x,o&&o===I){o=null;return}Z=D?x.position-D.position:0}else r(O);i.forEach(z=>{z(n.value,I,{delta:Z,type:Br.pop,direction:Z?Z>0?Rr.forward:Rr.back:Rr.unknown})})};function c(){o=n.value}function p(x){i.push(x);const O=()=>{const I=i.indexOf(x);I>-1&&i.splice(I,1)};return s.push(O),O}function m(){const{history:x}=window;!x.state||x.replaceState(Be({},x.state,{scroll:ha()}),"")}function w(){for(const x of s)x();s=[],window.removeEventListener("popstate",u),window.removeEventListener("beforeunload",m)}return window.addEventListener("popstate",u),window.addEventListener("beforeunload",m),{pauseListeners:c,listen:p,destroy:w}}function Ju(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?ha():null}}function pv(e){const{history:t,location:n}=window,r={value:od(e,n)},i={value:t.state};i.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(c,p,m){const w=e.indexOf("#"),x=w>-1?(n.host&&document.querySelector("base")?e:e.slice(w))+c:dv()+e+c;try{t[m?"replaceState":"pushState"](p,"",x),i.value=p}catch(O){console.error(O),n[m?"replace":"assign"](x)}}function o(c,p){const m=Be({},t.state,Ju(i.value.back,c,i.value.forward,!0),p,{position:i.value.position});s(c,m,!0),r.value=c}function u(c,p){const m=Be({},i.value,t.state,{forward:c,scroll:ha()});s(m.current,m,!0);const w=Be({},Ju(r.value,c,null),{position:m.position+1},p);s(c,w,!1),r.value=c}return{location:r,state:i,push:u,replace:o}}function mv(e){e=sv(e);const t=pv(e),n=hv(e,t.state,t.location,t.replace);function r(s,o=!0){o||n.pauseListeners(),history.go(s)}const i=Be({location:"",base:e,go:r,createHref:ov.bind(null,e)},t,n);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function gv(e){return typeof e=="string"||e&&typeof e=="object"}function ld(e){return typeof e=="string"||typeof e=="symbol"}const Yn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},ud=Symbol("");var Zu;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Zu||(Zu={}));function er(e,t){return Be(new Error,{type:e,[ud]:!0},t)}function Pn(e,t){return e instanceof Error&&ud in e&&(t==null||!!(e.type&t))}const ec="[^/]+?",vv={sensitive:!1,strict:!1,start:!0,end:!0},yv=/[.+*?^${}()[\]/\\]/g;function bv(e,t){const n=Be({},vv,t),r=[];let i=n.start?"^":"";const s=[];for(const p of e){const m=p.length?[]:[90];n.strict&&!p.length&&(i+="/");for(let w=0;wt.length?t.length===1&&t[0]===40+40?1:-1:0}function wv(e,t){let n=0;const r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}const kv={type:0,value:""},xv=/[a-zA-Z0-9_]/;function Cv(e){if(!e)return[[]];if(e==="/")return[[kv]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(O){throw new Error(`ERR (${n})/"${p}": ${O}`)}let n=0,r=n;const i=[];let s;function o(){s&&i.push(s),s=[]}let u=0,c,p="",m="";function w(){!p||(n===0?s.push({type:0,value:p}):n===1||n===2||n===3?(s.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${p}) must be alone in its segment. eg: '/:ids+.`),s.push({type:1,value:p,regexp:m,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),p="")}function x(){p+=c}for(;u{o(U)}:zr}function o(m){if(ld(m)){const w=r.get(m);w&&(r.delete(m),n.splice(n.indexOf(w),1),w.children.forEach(o),w.alias.forEach(o))}else{const w=n.indexOf(m);w>-1&&(n.splice(w,1),m.record.name&&r.delete(m.record.name),m.children.forEach(o),m.alias.forEach(o))}}function u(){return n}function c(m){let w=0;for(;w=0&&(m.record.path!==n[w].record.path||!cd(m,n[w]));)w++;n.splice(w,0,m),m.record.name&&!ic(m)&&r.set(m.record.name,m)}function p(m,w){let x,O={},I,D;if("name"in m&&m.name){if(x=r.get(m.name),!x)throw er(1,{location:m});D=x.record.name,O=Be(nc(w.params,x.keys.filter(U=>!U.optional).map(U=>U.name)),m.params&&nc(m.params,x.keys.map(U=>U.name))),I=x.stringify(O)}else if("path"in m)I=m.path,x=n.find(U=>U.re.test(I)),x&&(O=x.parse(I),D=x.record.name);else{if(x=w.name?r.get(w.name):n.find(U=>U.re.test(w.path)),!x)throw er(1,{location:m,currentLocation:w});D=x.record.name,O=Be({},w.params,m.params),I=x.stringify(O)}const Z=[];let z=x;for(;z;)Z.unshift(z.record),z=z.parent;return{name:D,path:I,params:O,matched:Z,meta:Sv(Z)}}return e.forEach(m=>s(m)),{addRoute:s,resolve:p,removeRoute:o,getRoutes:u,getRecordMatcher:i}}function nc(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Av(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:Ev(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function Ev(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="boolean"?n:n[r];return t}function ic(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Sv(e){return e.reduce((t,n)=>Be(t,n.meta),{})}function rc(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function cd(e,t){return t.children.some(n=>n===e||cd(e,n))}const fd=/#/g,Ov=/&/g,zv=/\//g,Rv=/=/g,Pv=/\?/g,dd=/\+/g,Lv=/%5B/g,Nv=/%5D/g,hd=/%5E/g,Iv=/%60/g,pd=/%7B/g,Mv=/%7C/g,md=/%7D/g,Dv=/%20/g;function cl(e){return encodeURI(""+e).replace(Mv,"|").replace(Lv,"[").replace(Nv,"]")}function Hv(e){return cl(e).replace(pd,"{").replace(md,"}").replace(hd,"^")}function xo(e){return cl(e).replace(dd,"%2B").replace(Dv,"+").replace(fd,"%23").replace(Ov,"%26").replace(Iv,"`").replace(pd,"{").replace(md,"}").replace(hd,"^")}function Fv(e){return xo(e).replace(Rv,"%3D")}function qv(e){return cl(e).replace(fd,"%23").replace(Pv,"%3F")}function Bv(e){return e==null?"":qv(e).replace(zv,"%2F")}function js(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function jv(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;is&&xo(s)):[r&&xo(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Uv(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=gn(r)?r.map(i=>i==null?null:""+i):r==null?r:""+r)}return t}const Wv=Symbol(""),ac=Symbol(""),pa=Symbol(""),fl=Symbol(""),Co=Symbol("");function _r(){let e=[];function t(r){return e.push(r),()=>{const i=e.indexOf(r);i>-1&&e.splice(i,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function Qn(e,t,n,r,i){const s=r&&(r.enterCallbacks[i]=r.enterCallbacks[i]||[]);return()=>new Promise((o,u)=>{const c=w=>{w===!1?u(er(4,{from:n,to:t})):w instanceof Error?u(w):gv(w)?u(er(2,{from:t,to:w})):(s&&r.enterCallbacks[i]===s&&typeof w=="function"&&s.push(w),o())},p=e.call(r&&r.instances[i],t,n,c);let m=Promise.resolve(p);e.length<3&&(m=m.then(c)),m.catch(w=>u(w))})}function Ja(e,t,n,r){const i=[];for(const s of e)for(const o in s.components){let u=s.components[o];if(!(t!=="beforeRouteEnter"&&!s.instances[o]))if(Vv(u)){const p=(u.__vccOpts||u)[t];p&&i.push(Qn(p,n,r,s,o))}else{let c=u();i.push(()=>c.then(p=>{if(!p)return Promise.reject(new Error(`Couldn't resolve component "${o}" at "${s.path}"`));const m=Jg(p)?p.default:p;s.components[o]=m;const x=(m.__vccOpts||m)[t];return x&&Qn(x,n,r,s,o)()}))}}return i}function Vv(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function oc(e){const t=pn(pa),n=pn(fl),r=tt(()=>t.resolve(ni(e.to))),i=tt(()=>{const{matched:c}=r.value,{length:p}=c,m=c[p-1],w=n.matched;if(!m||!w.length)return-1;const x=w.findIndex(Zi.bind(null,m));if(x>-1)return x;const O=lc(c[p-2]);return p>1&&lc(m)===O&&w[w.length-1].path!==O?w.findIndex(Zi.bind(null,c[p-2])):x}),s=tt(()=>i.value>-1&&Qv(n.params,r.value.params)),o=tt(()=>i.value>-1&&i.value===n.matched.length-1&&ad(n.params,r.value.params));function u(c={}){return Gv(c)?t[ni(e.replace)?"replace":"push"](ni(e.to)).catch(zr):Promise.resolve()}return{route:r,href:tt(()=>r.value.href),isActive:s,isExactActive:o,navigate:u}}const Yv=Gr({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:oc,setup(e,{slots:t}){const n=sr(oc(e)),{options:r}=pn(pa),i=tt(()=>({[uc(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[uc(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&t.default(n);return e.custom?s:fa("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},s)}}}),Kv=Yv;function Gv(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Qv(e,t){for(const n in t){const r=t[n],i=e[n];if(typeof r=="string"){if(r!==i)return!1}else if(!gn(i)||i.length!==r.length||r.some((s,o)=>s!==i[o]))return!1}return!0}function lc(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const uc=(e,t,n)=>e!=null?e:t!=null?t:n,Xv=Gr({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=pn(Co),i=tt(()=>e.route||r.value),s=pn(ac,0),o=tt(()=>{let p=ni(s);const{matched:m}=i.value;let w;for(;(w=m[p])&&!w.components;)p++;return p}),u=tt(()=>i.value.matched[o.value]);Os(ac,tt(()=>o.value+1)),Os(Wv,u),Os(Co,i);const c=zf();return Ar(()=>[c.value,u.value,e.name],([p,m,w],[x,O,I])=>{m&&(m.instances[w]=p,O&&O!==m&&p&&p===x&&(m.leaveGuards.size||(m.leaveGuards=O.leaveGuards),m.updateGuards.size||(m.updateGuards=O.updateGuards))),p&&m&&(!O||!Zi(m,O)||!x)&&(m.enterCallbacks[w]||[]).forEach(D=>D(p))},{flush:"post"}),()=>{const p=i.value,m=e.name,w=u.value,x=w&&w.components[m];if(!x)return cc(n.default,{Component:x,route:p});const O=w.props[m],I=O?O===!0?p.params:typeof O=="function"?O(p):O:null,Z=fa(x,Be({},I,t,{onVnodeUnmounted:z=>{z.component.isUnmounted&&(w.instances[m]=null)},ref:c}));return cc(n.default,{Component:Z,route:p})||Z}}});function cc(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Jv=Xv;function Zv(e){const t=Tv(e.routes,e),n=e.parseQuery||jv,r=e.stringifyQuery||sc,i=e.history,s=_r(),o=_r(),u=_r(),c=_m(Yn);let p=Yn;qi&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const m=Qa.bind(null,V=>""+V),w=Qa.bind(null,Bv),x=Qa.bind(null,js);function O(V,se){let ne,fe;return ld(V)?(ne=t.getRecordMatcher(V),fe=se):fe=V,t.addRoute(fe,ne)}function I(V){const se=t.getRecordMatcher(V);se&&t.removeRoute(se)}function D(){return t.getRoutes().map(V=>V.record)}function Z(V){return!!t.getRecordMatcher(V)}function z(V,se){if(se=Be({},se||c.value),typeof V=="string"){const k=Xa(n,V,se.path),E=t.resolve({path:k.path},se),H=i.createHref(k.fullPath);return Be(k,E,{params:x(E.params),hash:js(k.hash),redirectedFrom:void 0,href:H})}let ne;if("path"in V)ne=Be({},V,{path:Xa(n,V.path,se.path).path});else{const k=Be({},V.params);for(const E in k)k[E]==null&&delete k[E];ne=Be({},V,{params:w(V.params)}),se.params=w(se.params)}const fe=t.resolve(ne,se),Ce=V.hash||"";fe.params=m(x(fe.params));const Qe=tv(r,Be({},V,{hash:Hv(Ce),path:fe.path})),Ee=i.createHref(Qe);return Be({fullPath:Qe,hash:Ce,query:r===sc?Uv(V.query):V.query||{}},fe,{redirectedFrom:void 0,href:Ee})}function U(V){return typeof V=="string"?Xa(n,V,c.value.path):Be({},V)}function F(V,se){if(p!==V)return er(8,{from:se,to:V})}function J(V){return qe(V)}function ke(V){return J(Be(U(V),{replace:!0}))}function h(V){const se=V.matched[V.matched.length-1];if(se&&se.redirect){const{redirect:ne}=se;let fe=typeof ne=="function"?ne(V):ne;return typeof fe=="string"&&(fe=fe.includes("?")||fe.includes("#")?fe=U(fe):{path:fe},fe.params={}),Be({query:V.query,hash:V.hash,params:"path"in fe?{}:V.params},fe)}}function qe(V,se){const ne=p=z(V),fe=c.value,Ce=V.state,Qe=V.force,Ee=V.replace===!0,k=h(ne);if(k)return qe(Be(U(k),{state:typeof k=="object"?Be({},Ce,k.state):Ce,force:Qe,replace:Ee}),se||ne);const E=ne;E.redirectedFrom=se;let H;return!Qe&&nv(r,fe,ne)&&(H=er(16,{to:E,from:fe}),vn(fe,fe,!0,!1)),(H?Promise.resolve(H):ct(E,fe)).catch(j=>Pn(j)?Pn(j,2)?j:qt(j):je(j,E,fe)).then(j=>{if(j){if(Pn(j,2))return qe(Be({replace:Ee},U(j.to),{state:typeof j.to=="object"?Be({},Ce,j.to.state):Ce,force:Qe}),se||E)}else j=en(E,fe,!0,Ee,Ce);return zt(E,fe,j),j})}function st(V,se){const ne=F(V,se);return ne?Promise.reject(ne):Promise.resolve()}function ct(V,se){let ne;const[fe,Ce,Qe]=ey(V,se);ne=Ja(fe.reverse(),"beforeRouteLeave",V,se);for(const k of fe)k.leaveGuards.forEach(E=>{ne.push(Qn(E,V,se))});const Ee=st.bind(null,V,se);return ne.push(Ee),Hi(ne).then(()=>{ne=[];for(const k of s.list())ne.push(Qn(k,V,se));return ne.push(Ee),Hi(ne)}).then(()=>{ne=Ja(Ce,"beforeRouteUpdate",V,se);for(const k of Ce)k.updateGuards.forEach(E=>{ne.push(Qn(E,V,se))});return ne.push(Ee),Hi(ne)}).then(()=>{ne=[];for(const k of V.matched)if(k.beforeEnter&&!se.matched.includes(k))if(gn(k.beforeEnter))for(const E of k.beforeEnter)ne.push(Qn(E,V,se));else ne.push(Qn(k.beforeEnter,V,se));return ne.push(Ee),Hi(ne)}).then(()=>(V.matched.forEach(k=>k.enterCallbacks={}),ne=Ja(Qe,"beforeRouteEnter",V,se),ne.push(Ee),Hi(ne))).then(()=>{ne=[];for(const k of o.list())ne.push(Qn(k,V,se));return ne.push(Ee),Hi(ne)}).catch(k=>Pn(k,8)?k:Promise.reject(k))}function zt(V,se,ne){for(const fe of u.list())fe(V,se,ne)}function en(V,se,ne,fe,Ce){const Qe=F(V,se);if(Qe)return Qe;const Ee=se===Yn,k=qi?history.state:{};ne&&(fe||Ee?i.replace(V.fullPath,Be({scroll:Ee&&k&&k.scroll},Ce)):i.push(V.fullPath,Ce)),c.value=V,vn(V,se,ne,Ee),qt()}let at;function En(){at||(at=i.listen((V,se,ne)=>{if(!Sn.listening)return;const fe=z(V),Ce=h(fe);if(Ce){qe(Be(Ce,{replace:!0}),fe).catch(zr);return}p=fe;const Qe=c.value;qi&&cv(Xu(Qe.fullPath,ne.delta),ha()),ct(fe,Qe).catch(Ee=>Pn(Ee,12)?Ee:Pn(Ee,2)?(qe(Ee.to,fe).then(k=>{Pn(k,20)&&!ne.delta&&ne.type===Br.pop&&i.go(-1,!1)}).catch(zr),Promise.reject()):(ne.delta&&i.go(-ne.delta,!1),je(Ee,fe,Qe))).then(Ee=>{Ee=Ee||en(fe,Qe,!1),Ee&&(ne.delta&&!Pn(Ee,8)?i.go(-ne.delta,!1):ne.type===Br.pop&&Pn(Ee,20)&&i.go(-1,!1)),zt(fe,Qe,Ee)}).catch(zr)}))}let tn=_r(),Bn=_r(),ft;function je(V,se,ne){qt(V);const fe=Bn.list();return fe.length?fe.forEach(Ce=>Ce(V,se,ne)):console.error(V),Promise.reject(V)}function De(){return ft&&c.value!==Yn?Promise.resolve():new Promise((V,se)=>{tn.add([V,se])})}function qt(V){return ft||(ft=!V,En(),tn.list().forEach(([se,ne])=>V?ne(V):se()),tn.reset()),V}function vn(V,se,ne,fe){const{scrollBehavior:Ce}=e;if(!qi||!Ce)return Promise.resolve();const Qe=!ne&&fv(Xu(V.fullPath,0))||(fe||!ne)&&history.state&&history.state.scroll||null;return If().then(()=>Ce(V,se,Qe)).then(Ee=>Ee&&uv(Ee)).catch(Ee=>je(Ee,V,se))}const dt=V=>i.go(V);let Tt;const Bt=new Set,Sn={currentRoute:c,listening:!0,addRoute:O,removeRoute:I,hasRoute:Z,getRoutes:D,resolve:z,options:e,push:J,replace:ke,go:dt,back:()=>dt(-1),forward:()=>dt(1),beforeEach:s.add,beforeResolve:o.add,afterEach:u.add,onError:Bn.add,isReady:De,install(V){const se=this;V.component("RouterLink",Kv),V.component("RouterView",Jv),V.config.globalProperties.$router=se,Object.defineProperty(V.config.globalProperties,"$route",{enumerable:!0,get:()=>ni(c)}),qi&&!Tt&&c.value===Yn&&(Tt=!0,J(i.location).catch(Ce=>{}));const ne={};for(const Ce in Yn)ne[Ce]=tt(()=>c.value[Ce]);V.provide(pa,se),V.provide(fl,sr(ne)),V.provide(Co,c);const fe=V.unmount;Bt.add(V),V.unmount=function(){Bt.delete(V),Bt.size<1&&(p=Yn,at&&at(),at=null,c.value=Yn,Tt=!1,ft=!1),fe()}}};return Sn}function Hi(e){return e.reduce((t,n)=>t.then(()=>n()),Promise.resolve())}function ey(e,t){const n=[],r=[],i=[],s=Math.max(t.matched.length,e.matched.length);for(let o=0;oZi(p,u))?r.push(u):n.push(u));const c=e.matched[o];c&&(t.matched.find(p=>Zi(p,c))||i.push(c))}return[n,r,i]}function ty(){return pn(pa)}function ny(){return pn(fl)}var iy=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},gd={exports:{}};/*! * jQuery JavaScript Library v3.6.1 * https://jquery.com/ * @@ -14,10 +14,10 @@ * https://jquery.org/license * * Date: 2022-08-26T17:52Z - */(function(e){(function(t,n){e.exports=t.document?n(t,!0):function(r){if(!r.document)throw new Error("jQuery requires a window with a document");return n(r)}})(typeof window<"u"?window:iy,function(t,n){var r=[],i=Object.getPrototypeOf,s=r.slice,o=r.flat?function(a){return r.flat.call(a)}:function(a){return r.concat.apply([],a)},u=r.push,c=r.indexOf,p={},m=p.toString,w=p.hasOwnProperty,x=w.toString,R=x.call(Object),I={},D=function(l){return typeof l=="function"&&typeof l.nodeType!="number"&&typeof l.item!="function"},Z=function(l){return l!=null&&l===l.window},O=t.document,U={type:!0,src:!0,nonce:!0,noModule:!0};function F(a,l,f){f=f||O;var d,g,v=f.createElement("script");if(v.text=a,l)for(d in U)g=l[d]||l.getAttribute&&l.getAttribute(d),g&&v.setAttribute(d,g);f.head.appendChild(v).parentNode.removeChild(v)}function J(a){return a==null?a+"":typeof a=="object"||typeof a=="function"?p[m.call(a)]||"object":typeof a}var ke="3.6.1",h=function(a,l){return new h.fn.init(a,l)};h.fn=h.prototype={jquery:ke,constructor:h,length:0,toArray:function(){return s.call(this)},get:function(a){return a==null?s.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var l=h.merge(this.constructor(),a);return l.prevObject=this,l},each:function(a){return h.each(this,a)},map:function(a){return this.pushStack(h.map(this,function(l,f){return a.call(l,f,l)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(h.grep(this,function(a,l){return(l+1)%2}))},odd:function(){return this.pushStack(h.grep(this,function(a,l){return l%2}))},eq:function(a){var l=this.length,f=+a+(a<0?l:0);return this.pushStack(f>=0&&f0&&l-1 in a}var st=function(a){var l,f,d,g,v,b,A,C,P,M,Y,N,q,de,xe,he,_t,vt,jt,We="sizzle"+1*new Date,we=a.document,Mt=0,Le=0,ut=os(),pr=os(),rs=os(),Ut=os(),hi=function(_,T){return _===T&&(Y=!0),0},pi={}.hasOwnProperty,Dt=[],Un=Dt.pop,Gt=Dt.push,Wn=Dt.push,fu=Dt.slice,mi=function(_,T){for(var S=0,B=_.length;S+~]|"+He+")"+He+"*"),wp=new RegExp(He+"|>"),kp=new RegExp(Ia),xp=new RegExp("^"+gi+"$"),as={ID:new RegExp("^#("+gi+")"),CLASS:new RegExp("^\\.("+gi+")"),TAG:new RegExp("^("+gi+"|[*])"),ATTR:new RegExp("^"+du),PSEUDO:new RegExp("^"+Ia),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+He+"*(even|odd|(([+-]|)(\\d*)n|)"+He+"*(?:([+-]|)"+He+"*(\\d+)|))"+He+"*\\)|)","i"),bool:new RegExp("^(?:"+Na+")$","i"),needsContext:new RegExp("^"+He+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+He+"*((?:-\\d)?\\d*)"+He+"*\\)|)(?=[^-]|$)","i")},Cp=/HTML$/i,$p=/^(?:input|select|textarea|button)$/i,Tp=/^h\d$/i,mr=/^[^{]+\{\s*\[native \w/,Ap=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Ma=/[+~]/,zn=new RegExp("\\\\[\\da-fA-F]{1,6}"+He+"?|\\\\([^\\r\\n\\f])","g"),Rn=function(_,T){var S="0x"+_.slice(1)-65536;return T||(S<0?String.fromCharCode(S+65536):String.fromCharCode(S>>10|55296,S&1023|56320))},pu=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,mu=function(_,T){return T?_==="\0"?"\uFFFD":_.slice(0,-1)+"\\"+_.charCodeAt(_.length-1).toString(16)+" ":"\\"+_},gu=function(){N()},Ep=us(function(_){return _.disabled===!0&&_.nodeName.toLowerCase()==="fieldset"},{dir:"parentNode",next:"legend"});try{Wn.apply(Dt=fu.call(we.childNodes),we.childNodes),Dt[we.childNodes.length].nodeType}catch{Wn={apply:Dt.length?function(T,S){Gt.apply(T,fu.call(S))}:function(T,S){for(var B=T.length,z=0;T[B++]=S[z++];);T.length=B-1}}}function Ve(_,T,S,B){var z,W,K,ee,ie,ve,me,be=T&&T.ownerDocument,ze=T?T.nodeType:9;if(S=S||[],typeof _!="string"||!_||ze!==1&&ze!==9&&ze!==11)return S;if(!B&&(N(T),T=T||q,xe)){if(ze!==11&&(ie=Ap.exec(_)))if(z=ie[1]){if(ze===9)if(K=T.getElementById(z)){if(K.id===z)return S.push(K),S}else return S;else if(be&&(K=be.getElementById(z))&&jt(T,K)&&K.id===z)return S.push(K),S}else{if(ie[2])return Wn.apply(S,T.getElementsByTagName(_)),S;if((z=ie[3])&&f.getElementsByClassName&&T.getElementsByClassName)return Wn.apply(S,T.getElementsByClassName(z)),S}if(f.qsa&&!Ut[_+" "]&&(!he||!he.test(_))&&(ze!==1||T.nodeName.toLowerCase()!=="object")){if(me=_,be=T,ze===1&&(wp.test(_)||hu.test(_))){for(be=Ma.test(_)&&Ha(T.parentNode)||T,(be!==T||!f.scope)&&((ee=T.getAttribute("id"))?ee=ee.replace(pu,mu):T.setAttribute("id",ee=We)),ve=b(_),W=ve.length;W--;)ve[W]=(ee?"#"+ee:":scope")+" "+ls(ve[W]);me=ve.join(",")}try{return Wn.apply(S,be.querySelectorAll(me)),S}catch{Ut(_,!0)}finally{ee===We&&T.removeAttribute("id")}}}return C(_.replace(ss,"$1"),T,S,B)}function os(){var _=[];function T(S,B){return _.push(S+" ")>d.cacheLength&&delete T[_.shift()],T[S+" "]=B}return T}function sn(_){return _[We]=!0,_}function an(_){var T=q.createElement("fieldset");try{return!!_(T)}catch{return!1}finally{T.parentNode&&T.parentNode.removeChild(T),T=null}}function Da(_,T){for(var S=_.split("|"),B=S.length;B--;)d.attrHandle[S[B]]=T}function vu(_,T){var S=T&&_,B=S&&_.nodeType===1&&T.nodeType===1&&_.sourceIndex-T.sourceIndex;if(B)return B;if(S){for(;S=S.nextSibling;)if(S===T)return-1}return _?1:-1}function Sp(_){return function(T){var S=T.nodeName.toLowerCase();return S==="input"&&T.type===_}}function Op(_){return function(T){var S=T.nodeName.toLowerCase();return(S==="input"||S==="button")&&T.type===_}}function yu(_){return function(T){return"form"in T?T.parentNode&&T.disabled===!1?"label"in T?"label"in T.parentNode?T.parentNode.disabled===_:T.disabled===_:T.isDisabled===_||T.isDisabled!==!_&&Ep(T)===_:T.disabled===_:"label"in T?T.disabled===_:!1}}function vi(_){return sn(function(T){return T=+T,sn(function(S,B){for(var z,W=_([],S.length,T),K=W.length;K--;)S[z=W[K]]&&(S[z]=!(B[z]=S[z]))})})}function Ha(_){return _&&typeof _.getElementsByTagName<"u"&&_}f=Ve.support={},v=Ve.isXML=function(_){var T=_&&_.namespaceURI,S=_&&(_.ownerDocument||_).documentElement;return!Cp.test(T||S&&S.nodeName||"HTML")},N=Ve.setDocument=function(_){var T,S,B=_?_.ownerDocument||_:we;return B==q||B.nodeType!==9||!B.documentElement||(q=B,de=q.documentElement,xe=!v(q),we!=q&&(S=q.defaultView)&&S.top!==S&&(S.addEventListener?S.addEventListener("unload",gu,!1):S.attachEvent&&S.attachEvent("onunload",gu)),f.scope=an(function(z){return de.appendChild(z).appendChild(q.createElement("div")),typeof z.querySelectorAll<"u"&&!z.querySelectorAll(":scope fieldset div").length}),f.attributes=an(function(z){return z.className="i",!z.getAttribute("className")}),f.getElementsByTagName=an(function(z){return z.appendChild(q.createComment("")),!z.getElementsByTagName("*").length}),f.getElementsByClassName=mr.test(q.getElementsByClassName),f.getById=an(function(z){return de.appendChild(z).id=We,!q.getElementsByName||!q.getElementsByName(We).length}),f.getById?(d.filter.ID=function(z){var W=z.replace(zn,Rn);return function(K){return K.getAttribute("id")===W}},d.find.ID=function(z,W){if(typeof W.getElementById<"u"&&xe){var K=W.getElementById(z);return K?[K]:[]}}):(d.filter.ID=function(z){var W=z.replace(zn,Rn);return function(K){var ee=typeof K.getAttributeNode<"u"&&K.getAttributeNode("id");return ee&&ee.value===W}},d.find.ID=function(z,W){if(typeof W.getElementById<"u"&&xe){var K,ee,ie,ve=W.getElementById(z);if(ve){if(K=ve.getAttributeNode("id"),K&&K.value===z)return[ve];for(ie=W.getElementsByName(z),ee=0;ve=ie[ee++];)if(K=ve.getAttributeNode("id"),K&&K.value===z)return[ve]}return[]}}),d.find.TAG=f.getElementsByTagName?function(z,W){if(typeof W.getElementsByTagName<"u")return W.getElementsByTagName(z);if(f.qsa)return W.querySelectorAll(z)}:function(z,W){var K,ee=[],ie=0,ve=W.getElementsByTagName(z);if(z==="*"){for(;K=ve[ie++];)K.nodeType===1&&ee.push(K);return ee}return ve},d.find.CLASS=f.getElementsByClassName&&function(z,W){if(typeof W.getElementsByClassName<"u"&&xe)return W.getElementsByClassName(z)},_t=[],he=[],(f.qsa=mr.test(q.querySelectorAll))&&(an(function(z){var W;de.appendChild(z).innerHTML="",z.querySelectorAll("[msallowcapture^='']").length&&he.push("[*^$]="+He+`*(?:''|"")`),z.querySelectorAll("[selected]").length||he.push("\\["+He+"*(?:value|"+Na+")"),z.querySelectorAll("[id~="+We+"-]").length||he.push("~="),W=q.createElement("input"),W.setAttribute("name",""),z.appendChild(W),z.querySelectorAll("[name='']").length||he.push("\\["+He+"*name"+He+"*="+He+`*(?:''|"")`),z.querySelectorAll(":checked").length||he.push(":checked"),z.querySelectorAll("a#"+We+"+*").length||he.push(".#.+[+~]"),z.querySelectorAll("\\\f"),he.push("[\\r\\n\\f]")}),an(function(z){z.innerHTML="";var W=q.createElement("input");W.setAttribute("type","hidden"),z.appendChild(W).setAttribute("name","D"),z.querySelectorAll("[name=d]").length&&he.push("name"+He+"*[*^$|!~]?="),z.querySelectorAll(":enabled").length!==2&&he.push(":enabled",":disabled"),de.appendChild(z).disabled=!0,z.querySelectorAll(":disabled").length!==2&&he.push(":enabled",":disabled"),z.querySelectorAll("*,:x"),he.push(",.*:")})),(f.matchesSelector=mr.test(vt=de.matches||de.webkitMatchesSelector||de.mozMatchesSelector||de.oMatchesSelector||de.msMatchesSelector))&&an(function(z){f.disconnectedMatch=vt.call(z,"*"),vt.call(z,"[s!='']:x"),_t.push("!=",Ia)}),he=he.length&&new RegExp(he.join("|")),_t=_t.length&&new RegExp(_t.join("|")),T=mr.test(de.compareDocumentPosition),jt=T||mr.test(de.contains)?function(z,W){var K=z.nodeType===9?z.documentElement:z,ee=W&&W.parentNode;return z===ee||!!(ee&&ee.nodeType===1&&(K.contains?K.contains(ee):z.compareDocumentPosition&&z.compareDocumentPosition(ee)&16))}:function(z,W){if(W){for(;W=W.parentNode;)if(W===z)return!0}return!1},hi=T?function(z,W){if(z===W)return Y=!0,0;var K=!z.compareDocumentPosition-!W.compareDocumentPosition;return K||(K=(z.ownerDocument||z)==(W.ownerDocument||W)?z.compareDocumentPosition(W):1,K&1||!f.sortDetached&&W.compareDocumentPosition(z)===K?z==q||z.ownerDocument==we&&jt(we,z)?-1:W==q||W.ownerDocument==we&&jt(we,W)?1:M?mi(M,z)-mi(M,W):0:K&4?-1:1)}:function(z,W){if(z===W)return Y=!0,0;var K,ee=0,ie=z.parentNode,ve=W.parentNode,me=[z],be=[W];if(!ie||!ve)return z==q?-1:W==q?1:ie?-1:ve?1:M?mi(M,z)-mi(M,W):0;if(ie===ve)return vu(z,W);for(K=z;K=K.parentNode;)me.unshift(K);for(K=W;K=K.parentNode;)be.unshift(K);for(;me[ee]===be[ee];)ee++;return ee?vu(me[ee],be[ee]):me[ee]==we?-1:be[ee]==we?1:0}),q},Ve.matches=function(_,T){return Ve(_,null,null,T)},Ve.matchesSelector=function(_,T){if(N(_),f.matchesSelector&&xe&&!Ut[T+" "]&&(!_t||!_t.test(T))&&(!he||!he.test(T)))try{var S=vt.call(_,T);if(S||f.disconnectedMatch||_.document&&_.document.nodeType!==11)return S}catch{Ut(T,!0)}return Ve(T,q,null,[_]).length>0},Ve.contains=function(_,T){return(_.ownerDocument||_)!=q&&N(_),jt(_,T)},Ve.attr=function(_,T){(_.ownerDocument||_)!=q&&N(_);var S=d.attrHandle[T.toLowerCase()],B=S&&pi.call(d.attrHandle,T.toLowerCase())?S(_,T,!xe):void 0;return B!==void 0?B:f.attributes||!xe?_.getAttribute(T):(B=_.getAttributeNode(T))&&B.specified?B.value:null},Ve.escape=function(_){return(_+"").replace(pu,mu)},Ve.error=function(_){throw new Error("Syntax error, unrecognized expression: "+_)},Ve.uniqueSort=function(_){var T,S=[],B=0,z=0;if(Y=!f.detectDuplicates,M=!f.sortStable&&_.slice(0),_.sort(hi),Y){for(;T=_[z++];)T===_[z]&&(B=S.push(z));for(;B--;)_.splice(S[B],1)}return M=null,_},g=Ve.getText=function(_){var T,S="",B=0,z=_.nodeType;if(z){if(z===1||z===9||z===11){if(typeof _.textContent=="string")return _.textContent;for(_=_.firstChild;_;_=_.nextSibling)S+=g(_)}else if(z===3||z===4)return _.nodeValue}else for(;T=_[B++];)S+=g(T);return S},d=Ve.selectors={cacheLength:50,createPseudo:sn,match:as,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(_){return _[1]=_[1].replace(zn,Rn),_[3]=(_[3]||_[4]||_[5]||"").replace(zn,Rn),_[2]==="~="&&(_[3]=" "+_[3]+" "),_.slice(0,4)},CHILD:function(_){return _[1]=_[1].toLowerCase(),_[1].slice(0,3)==="nth"?(_[3]||Ve.error(_[0]),_[4]=+(_[4]?_[5]+(_[6]||1):2*(_[3]==="even"||_[3]==="odd")),_[5]=+(_[7]+_[8]||_[3]==="odd")):_[3]&&Ve.error(_[0]),_},PSEUDO:function(_){var T,S=!_[6]&&_[2];return as.CHILD.test(_[0])?null:(_[3]?_[2]=_[4]||_[5]||"":S&&kp.test(S)&&(T=b(S,!0))&&(T=S.indexOf(")",S.length-T)-S.length)&&(_[0]=_[0].slice(0,T),_[2]=S.slice(0,T)),_.slice(0,3))}},filter:{TAG:function(_){var T=_.replace(zn,Rn).toLowerCase();return _==="*"?function(){return!0}:function(S){return S.nodeName&&S.nodeName.toLowerCase()===T}},CLASS:function(_){var T=ut[_+" "];return T||(T=new RegExp("(^|"+He+")"+_+"("+He+"|$)"))&&ut(_,function(S){return T.test(typeof S.className=="string"&&S.className||typeof S.getAttribute<"u"&&S.getAttribute("class")||"")})},ATTR:function(_,T,S){return function(B){var z=Ve.attr(B,_);return z==null?T==="!=":T?(z+="",T==="="?z===S:T==="!="?z!==S:T==="^="?S&&z.indexOf(S)===0:T==="*="?S&&z.indexOf(S)>-1:T==="$="?S&&z.slice(-S.length)===S:T==="~="?(" "+z.replace(bp," ")+" ").indexOf(S)>-1:T==="|="?z===S||z.slice(0,S.length+1)===S+"-":!1):!0}},CHILD:function(_,T,S,B,z){var W=_.slice(0,3)!=="nth",K=_.slice(-4)!=="last",ee=T==="of-type";return B===1&&z===0?function(ie){return!!ie.parentNode}:function(ie,ve,me){var be,ze,Ye,ye,wt,Et,Wt=W!==K?"nextSibling":"previousSibling",et=ie.parentNode,gr=ee&&ie.nodeName.toLowerCase(),vr=!me&&!ee,Vt=!1;if(et){if(W){for(;Wt;){for(ye=ie;ye=ye[Wt];)if(ee?ye.nodeName.toLowerCase()===gr:ye.nodeType===1)return!1;Et=Wt=_==="only"&&!Et&&"nextSibling"}return!0}if(Et=[K?et.firstChild:et.lastChild],K&&vr){for(ye=et,Ye=ye[We]||(ye[We]={}),ze=Ye[ye.uniqueID]||(Ye[ye.uniqueID]={}),be=ze[_]||[],wt=be[0]===Mt&&be[1],Vt=wt&&be[2],ye=wt&&et.childNodes[wt];ye=++wt&&ye&&ye[Wt]||(Vt=wt=0)||Et.pop();)if(ye.nodeType===1&&++Vt&&ye===ie){ze[_]=[Mt,wt,Vt];break}}else if(vr&&(ye=ie,Ye=ye[We]||(ye[We]={}),ze=Ye[ye.uniqueID]||(Ye[ye.uniqueID]={}),be=ze[_]||[],wt=be[0]===Mt&&be[1],Vt=wt),Vt===!1)for(;(ye=++wt&&ye&&ye[Wt]||(Vt=wt=0)||Et.pop())&&!((ee?ye.nodeName.toLowerCase()===gr:ye.nodeType===1)&&++Vt&&(vr&&(Ye=ye[We]||(ye[We]={}),ze=Ye[ye.uniqueID]||(Ye[ye.uniqueID]={}),ze[_]=[Mt,Vt]),ye===ie)););return Vt-=z,Vt===B||Vt%B===0&&Vt/B>=0}}},PSEUDO:function(_,T){var S,B=d.pseudos[_]||d.setFilters[_.toLowerCase()]||Ve.error("unsupported pseudo: "+_);return B[We]?B(T):B.length>1?(S=[_,_,"",T],d.setFilters.hasOwnProperty(_.toLowerCase())?sn(function(z,W){for(var K,ee=B(z,T),ie=ee.length;ie--;)K=mi(z,ee[ie]),z[K]=!(W[K]=ee[ie])}):function(z){return B(z,0,S)}):B}},pseudos:{not:sn(function(_){var T=[],S=[],B=A(_.replace(ss,"$1"));return B[We]?sn(function(z,W,K,ee){for(var ie,ve=B(z,null,ee,[]),me=z.length;me--;)(ie=ve[me])&&(z[me]=!(W[me]=ie))}):function(z,W,K){return T[0]=z,B(T,null,K,S),T[0]=null,!S.pop()}}),has:sn(function(_){return function(T){return Ve(_,T).length>0}}),contains:sn(function(_){return _=_.replace(zn,Rn),function(T){return(T.textContent||g(T)).indexOf(_)>-1}}),lang:sn(function(_){return xp.test(_||"")||Ve.error("unsupported lang: "+_),_=_.replace(zn,Rn).toLowerCase(),function(T){var S;do if(S=xe?T.lang:T.getAttribute("xml:lang")||T.getAttribute("lang"))return S=S.toLowerCase(),S===_||S.indexOf(_+"-")===0;while((T=T.parentNode)&&T.nodeType===1);return!1}}),target:function(_){var T=a.location&&a.location.hash;return T&&T.slice(1)===_.id},root:function(_){return _===de},focus:function(_){return _===q.activeElement&&(!q.hasFocus||q.hasFocus())&&!!(_.type||_.href||~_.tabIndex)},enabled:yu(!1),disabled:yu(!0),checked:function(_){var T=_.nodeName.toLowerCase();return T==="input"&&!!_.checked||T==="option"&&!!_.selected},selected:function(_){return _.parentNode&&_.parentNode.selectedIndex,_.selected===!0},empty:function(_){for(_=_.firstChild;_;_=_.nextSibling)if(_.nodeType<6)return!1;return!0},parent:function(_){return!d.pseudos.empty(_)},header:function(_){return Tp.test(_.nodeName)},input:function(_){return $p.test(_.nodeName)},button:function(_){var T=_.nodeName.toLowerCase();return T==="input"&&_.type==="button"||T==="button"},text:function(_){var T;return _.nodeName.toLowerCase()==="input"&&_.type==="text"&&((T=_.getAttribute("type"))==null||T.toLowerCase()==="text")},first:vi(function(){return[0]}),last:vi(function(_,T){return[T-1]}),eq:vi(function(_,T,S){return[S<0?S+T:S]}),even:vi(function(_,T){for(var S=0;ST?T:S;--B>=0;)_.push(B);return _}),gt:vi(function(_,T,S){for(var B=S<0?S+T:S;++B1?function(T,S,B){for(var z=_.length;z--;)if(!_[z](T,S,B))return!1;return!0}:_[0]}function zp(_,T,S){for(var B=0,z=T.length;B-1&&(K[me]=!(ee[me]=ze))}}else et=cs(et===ee?et.splice(wt,et.length):et),z?z(null,ee,et,ve):Wn.apply(ee,et)})}function Ba(_){for(var T,S,B,z=_.length,W=d.relative[_[0].type],K=W||d.relative[" "],ee=W?1:0,ie=us(function(be){return be===T},K,!0),ve=us(function(be){return mi(T,be)>-1},K,!0),me=[function(be,ze,Ye){var ye=!W&&(Ye||ze!==P)||((T=ze).nodeType?ie(be,ze,Ye):ve(be,ze,Ye));return T=null,ye}];ee1&&Fa(me),ee>1&&ls(_.slice(0,ee-1).concat({value:_[ee-2].type===" "?"*":""})).replace(ss,"$1"),S,ee0,B=_.length>0,z=function(W,K,ee,ie,ve){var me,be,ze,Ye=0,ye="0",wt=W&&[],Et=[],Wt=P,et=W||B&&d.find.TAG("*",ve),gr=Mt+=Wt==null?1:Math.random()||.1,vr=et.length;for(ve&&(P=K==q||K||ve);ye!==vr&&(me=et[ye])!=null;ye++){if(B&&me){for(be=0,!K&&me.ownerDocument!=q&&(N(me),ee=!xe);ze=_[be++];)if(ze(me,K||q,ee)){ie.push(me);break}ve&&(Mt=gr)}S&&((me=!ze&&me)&&Ye--,W&&wt.push(me))}if(Ye+=ye,S&&ye!==Ye){for(be=0;ze=T[be++];)ze(wt,Et,K,ee);if(W){if(Ye>0)for(;ye--;)wt[ye]||Et[ye]||(Et[ye]=Un.call(ie));Et=cs(Et)}Wn.apply(ie,Et),ve&&!W&&Et.length>0&&Ye+T.length>1&&Ve.uniqueSort(ie)}return ve&&(Mt=gr,P=Wt),wt};return S?sn(z):z}return A=Ve.compile=function(_,T){var S,B=[],z=[],W=rs[_+" "];if(!W){for(T||(T=b(_)),S=T.length;S--;)W=Ba(T[S]),W[We]?B.push(W):z.push(W);W=rs(_,Rp(z,B)),W.selector=_}return W},C=Ve.select=function(_,T,S,B){var z,W,K,ee,ie,ve=typeof _=="function"&&_,me=!B&&b(_=ve.selector||_);if(S=S||[],me.length===1){if(W=me[0]=me[0].slice(0),W.length>2&&(K=W[0]).type==="ID"&&T.nodeType===9&&xe&&d.relative[W[1].type]){if(T=(d.find.ID(K.matches[0].replace(zn,Rn),T)||[])[0],T)ve&&(T=T.parentNode);else return S;_=_.slice(W.shift().value.length)}for(z=as.needsContext.test(_)?0:W.length;z--&&(K=W[z],!d.relative[ee=K.type]);)if((ie=d.find[ee])&&(B=ie(K.matches[0].replace(zn,Rn),Ma.test(W[0].type)&&Ha(T.parentNode)||T))){if(W.splice(z,1),_=B.length&&ls(W),!_)return Wn.apply(S,B),S;break}}return(ve||A(_,me))(B,T,!xe,S,!T||Ma.test(_)&&Ha(T.parentNode)||T),S},f.sortStable=We.split("").sort(hi).join("")===We,f.detectDuplicates=!!Y,N(),f.sortDetached=an(function(_){return _.compareDocumentPosition(q.createElement("fieldset"))&1}),an(function(_){return _.innerHTML="",_.firstChild.getAttribute("href")==="#"})||Da("type|href|height|width",function(_,T,S){if(!S)return _.getAttribute(T,T.toLowerCase()==="type"?1:2)}),(!f.attributes||!an(function(_){return _.innerHTML="",_.firstChild.setAttribute("value",""),_.firstChild.getAttribute("value")===""}))&&Da("value",function(_,T,S){if(!S&&_.nodeName.toLowerCase()==="input")return _.defaultValue}),an(function(_){return _.getAttribute("disabled")==null})||Da(Na,function(_,T,S){var B;if(!S)return _[T]===!0?T.toLowerCase():(B=_.getAttributeNode(T))&&B.specified?B.value:null}),Ve}(t);h.find=st,h.expr=st.selectors,h.expr[":"]=h.expr.pseudos,h.uniqueSort=h.unique=st.uniqueSort,h.text=st.getText,h.isXMLDoc=st.isXML,h.contains=st.contains,h.escapeSelector=st.escape;var ct=function(a,l,f){for(var d=[],g=f!==void 0;(a=a[l])&&a.nodeType!==9;)if(a.nodeType===1){if(g&&h(a).is(f))break;d.push(a)}return d},zt=function(a,l){for(var f=[];a;a=a.nextSibling)a.nodeType===1&&a!==l&&f.push(a);return f},en=h.expr.match.needsContext;function at(a,l){return a.nodeName&&a.nodeName.toLowerCase()===l.toLowerCase()}var En=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function tn(a,l,f){return D(l)?h.grep(a,function(d,g){return!!l.call(d,g,d)!==f}):l.nodeType?h.grep(a,function(d){return d===l!==f}):typeof l!="string"?h.grep(a,function(d){return c.call(l,d)>-1!==f}):h.filter(l,a,f)}h.filter=function(a,l,f){var d=l[0];return f&&(a=":not("+a+")"),l.length===1&&d.nodeType===1?h.find.matchesSelector(d,a)?[d]:[]:h.find.matches(a,h.grep(l,function(g){return g.nodeType===1}))},h.fn.extend({find:function(a){var l,f,d=this.length,g=this;if(typeof a!="string")return this.pushStack(h(a).filter(function(){for(l=0;l1?h.uniqueSort(f):f},filter:function(a){return this.pushStack(tn(this,a||[],!1))},not:function(a){return this.pushStack(tn(this,a||[],!0))},is:function(a){return!!tn(this,typeof a=="string"&&en.test(a)?h(a):a||[],!1).length}});var Bn,ft=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,je=h.fn.init=function(a,l,f){var d,g;if(!a)return this;if(f=f||Bn,typeof a=="string")if(a[0]==="<"&&a[a.length-1]===">"&&a.length>=3?d=[null,a,null]:d=ft.exec(a),d&&(d[1]||!l))if(d[1]){if(l=l instanceof h?l[0]:l,h.merge(this,h.parseHTML(d[1],l&&l.nodeType?l.ownerDocument||l:O,!0)),En.test(d[1])&&h.isPlainObject(l))for(d in l)D(this[d])?this[d](l[d]):this.attr(d,l[d]);return this}else return g=O.getElementById(d[2]),g&&(this[0]=g,this.length=1),this;else return!l||l.jquery?(l||f).find(a):this.constructor(l).find(a);else{if(a.nodeType)return this[0]=a,this.length=1,this;if(D(a))return f.ready!==void 0?f.ready(a):a(h)}return h.makeArray(a,this)};je.prototype=h.fn,Bn=h(O);var De=/^(?:parents|prev(?:Until|All))/,qt={children:!0,contents:!0,next:!0,prev:!0};h.fn.extend({has:function(a){var l=h(a,this),f=l.length;return this.filter(function(){for(var d=0;d-1:f.nodeType===1&&h.find.matchesSelector(f,a))){v.push(f);break}}return this.pushStack(v.length>1?h.uniqueSort(v):v)},index:function(a){return a?typeof a=="string"?c.call(h(a),this[0]):c.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,l){return this.pushStack(h.uniqueSort(h.merge(this.get(),h(a,l))))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}});function vn(a,l){for(;(a=a[l])&&a.nodeType!==1;);return a}h.each({parent:function(a){var l=a.parentNode;return l&&l.nodeType!==11?l:null},parents:function(a){return ct(a,"parentNode")},parentsUntil:function(a,l,f){return ct(a,"parentNode",f)},next:function(a){return vn(a,"nextSibling")},prev:function(a){return vn(a,"previousSibling")},nextAll:function(a){return ct(a,"nextSibling")},prevAll:function(a){return ct(a,"previousSibling")},nextUntil:function(a,l,f){return ct(a,"nextSibling",f)},prevUntil:function(a,l,f){return ct(a,"previousSibling",f)},siblings:function(a){return zt((a.parentNode||{}).firstChild,a)},children:function(a){return zt(a.firstChild)},contents:function(a){return a.contentDocument!=null&&i(a.contentDocument)?a.contentDocument:(at(a,"template")&&(a=a.content||a),h.merge([],a.childNodes))}},function(a,l){h.fn[a]=function(f,d){var g=h.map(this,l,f);return a.slice(-5)!=="Until"&&(d=f),d&&typeof d=="string"&&(g=h.filter(d,g)),this.length>1&&(qt[a]||h.uniqueSort(g),De.test(a)&&g.reverse()),this.pushStack(g)}});var dt=/[^\x20\t\r\n\f]+/g;function Tt(a){var l={};return h.each(a.match(dt)||[],function(f,d){l[d]=!0}),l}h.Callbacks=function(a){a=typeof a=="string"?Tt(a):h.extend({},a);var l,f,d,g,v=[],b=[],A=-1,C=function(){for(g=g||a.once,d=l=!0;b.length;A=-1)for(f=b.shift();++A-1;)v.splice(N,1),N<=A&&A--}),this},has:function(M){return M?h.inArray(M,v)>-1:v.length>0},empty:function(){return v&&(v=[]),this},disable:function(){return g=b=[],v=f="",this},disabled:function(){return!v},lock:function(){return g=b=[],!f&&!l&&(v=f=""),this},locked:function(){return!!g},fireWith:function(M,Y){return g||(Y=Y||[],Y=[M,Y.slice?Y.slice():Y],b.push(Y),l||C()),this},fire:function(){return P.fireWith(this,arguments),this},fired:function(){return!!d}};return P};function Bt(a){return a}function Sn(a){throw a}function V(a,l,f,d){var g;try{a&&D(g=a.promise)?g.call(a).done(l).fail(f):a&&D(g=a.then)?g.call(a,l,f):l.apply(void 0,[a].slice(d))}catch(v){f.apply(void 0,[v])}}h.extend({Deferred:function(a){var l=[["notify","progress",h.Callbacks("memory"),h.Callbacks("memory"),2],["resolve","done",h.Callbacks("once memory"),h.Callbacks("once memory"),0,"resolved"],["reject","fail",h.Callbacks("once memory"),h.Callbacks("once memory"),1,"rejected"]],f="pending",d={state:function(){return f},always:function(){return g.done(arguments).fail(arguments),this},catch:function(v){return d.then(null,v)},pipe:function(){var v=arguments;return h.Deferred(function(b){h.each(l,function(A,C){var P=D(v[C[4]])&&v[C[4]];g[C[1]](function(){var M=P&&P.apply(this,arguments);M&&D(M.promise)?M.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[C[0]+"With"](this,P?[M]:arguments)})}),v=null}).promise()},then:function(v,b,A){var C=0;function P(M,Y,N,q){return function(){var de=this,xe=arguments,he=function(){var vt,jt;if(!(M=C&&(N!==Sn&&(de=void 0,xe=[vt]),Y.rejectWith(de,xe))}};M?_t():(h.Deferred.getStackHook&&(_t.stackTrace=h.Deferred.getStackHook()),t.setTimeout(_t))}}return h.Deferred(function(M){l[0][3].add(P(0,M,D(A)?A:Bt,M.notifyWith)),l[1][3].add(P(0,M,D(v)?v:Bt)),l[2][3].add(P(0,M,D(b)?b:Sn))}).promise()},promise:function(v){return v!=null?h.extend(v,d):d}},g={};return h.each(l,function(v,b){var A=b[2],C=b[5];d[b[1]]=A.add,C&&A.add(function(){f=C},l[3-v][2].disable,l[3-v][3].disable,l[0][2].lock,l[0][3].lock),A.add(b[3].fire),g[b[0]]=function(){return g[b[0]+"With"](this===g?void 0:this,arguments),this},g[b[0]+"With"]=A.fireWith}),d.promise(g),a&&a.call(g,g),g},when:function(a){var l=arguments.length,f=l,d=Array(f),g=s.call(arguments),v=h.Deferred(),b=function(A){return function(C){d[A]=this,g[A]=arguments.length>1?s.call(arguments):C,--l||v.resolveWith(d,g)}};if(l<=1&&(V(a,v.done(b(f)).resolve,v.reject,!l),v.state()==="pending"||D(g[f]&&g[f].then)))return v.then();for(;f--;)V(g[f],b(f),v.reject);return v.promise()}});var se=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;h.Deferred.exceptionHook=function(a,l){t.console&&t.console.warn&&a&&se.test(a.name)&&t.console.warn("jQuery.Deferred exception: "+a.message,a.stack,l)},h.readyException=function(a){t.setTimeout(function(){throw a})};var ne=h.Deferred();h.fn.ready=function(a){return ne.then(a).catch(function(l){h.readyException(l)}),this},h.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--h.readyWait:h.isReady)||(h.isReady=!0,!(a!==!0&&--h.readyWait>0)&&ne.resolveWith(O,[h]))}}),h.ready.then=ne.then;function fe(){O.removeEventListener("DOMContentLoaded",fe),t.removeEventListener("load",fe),h.ready()}O.readyState==="complete"||O.readyState!=="loading"&&!O.documentElement.doScroll?t.setTimeout(h.ready):(O.addEventListener("DOMContentLoaded",fe),t.addEventListener("load",fe));var Ce=function(a,l,f,d,g,v,b){var A=0,C=a.length,P=f==null;if(J(f)==="object"){g=!0;for(A in f)Ce(a,l,A,f[A],!0,v,b)}else if(d!==void 0&&(g=!0,D(d)||(b=!0),P&&(b?(l.call(a,d),l=null):(P=l,l=function(M,Y,N){return P.call(h(M),N)})),l))for(;A1,null,!0)},removeData:function(a){return this.each(function(){G.remove(this,a)})}}),h.extend({queue:function(a,l,f){var d;if(a)return l=(l||"fx")+"queue",d=L.get(a,l),f&&(!d||Array.isArray(f)?d=L.access(a,l,h.makeArray(f)):d.push(f)),d||[]},dequeue:function(a,l){l=l||"fx";var f=h.queue(a,l),d=f.length,g=f.shift(),v=h._queueHooks(a,l),b=function(){h.dequeue(a,l)};g==="inprogress"&&(g=f.shift(),d--),g&&(l==="fx"&&f.unshift("inprogress"),delete v.stop,g.call(a,b,v)),!d&&v&&v.empty.fire()},_queueHooks:function(a,l){var f=l+"queueHooks";return L.get(a,f)||L.access(a,f,{empty:h.Callbacks("once memory").add(function(){L.remove(a,[l+"queue",f])})})}}),h.fn.extend({queue:function(a,l){var f=2;return typeof a!="string"&&(l=a,a="fx",f--),arguments.length\x20\t\r\n\f]*)/i,At=/^$|^module$|\/(?:java|ecma)script/i;(function(){var a=O.createDocumentFragment(),l=a.appendChild(O.createElement("div")),f=O.createElement("input");f.setAttribute("type","radio"),f.setAttribute("checked","checked"),f.setAttribute("name","t"),l.appendChild(f),I.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,l.innerHTML="",I.noCloneChecked=!!l.cloneNode(!0).lastChild.defaultValue,l.innerHTML="",I.option=!!l.lastChild})();var lt={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};lt.tbody=lt.tfoot=lt.colgroup=lt.caption=lt.thead,lt.th=lt.td,I.option||(lt.optgroup=lt.option=[1,""]);function Ct(a,l){var f;return typeof a.getElementsByTagName<"u"?f=a.getElementsByTagName(l||"*"):typeof a.querySelectorAll<"u"?f=a.querySelectorAll(l||"*"):f=[],l===void 0||l&&at(a,l)?h.merge([a],f):f}function wa(a,l){for(var f=0,d=a.length;f-1){g&&g.push(v);continue}if(P=$e(v),b=Ct(Y.appendChild(v),"script"),P&&wa(b),f)for(M=0;v=b[M++];)At.test(v.type||"")&&f.push(v)}return Y}var Fl=/^([^.]*)(?:\.(.+)|)/;function Ni(){return!0}function Ii(){return!1}function Mh(a,l){return a===Dh()==(l==="focus")}function Dh(){try{return O.activeElement}catch{}}function ka(a,l,f,d,g,v){var b,A;if(typeof l=="object"){typeof f!="string"&&(d=d||f,f=void 0);for(A in l)ka(a,A,f,d,l[A],v);return a}if(d==null&&g==null?(g=f,d=f=void 0):g==null&&(typeof f=="string"?(g=d,d=void 0):(g=d,d=f,f=void 0)),g===!1)g=Ii;else if(!g)return a;return v===1&&(b=g,g=function(C){return h().off(C),b.apply(this,arguments)},g.guid=b.guid||(b.guid=h.guid++)),a.each(function(){h.event.add(this,l,g,d,f)})}h.event={global:{},add:function(a,l,f,d,g){var v,b,A,C,P,M,Y,N,q,de,xe,he=L.get(a);if(!!H(a))for(f.handler&&(v=f,f=v.handler,g=v.selector),g&&h.find.matchesSelector(ge,g),f.guid||(f.guid=h.guid++),(C=he.events)||(C=he.events=Object.create(null)),(b=he.handle)||(b=he.handle=function(_t){return typeof h<"u"&&h.event.triggered!==_t.type?h.event.dispatch.apply(a,arguments):void 0}),l=(l||"").match(dt)||[""],P=l.length;P--;)A=Fl.exec(l[P])||[],q=xe=A[1],de=(A[2]||"").split(".").sort(),q&&(Y=h.event.special[q]||{},q=(g?Y.delegateType:Y.bindType)||q,Y=h.event.special[q]||{},M=h.extend({type:q,origType:xe,data:d,handler:f,guid:f.guid,selector:g,needsContext:g&&h.expr.match.needsContext.test(g),namespace:de.join(".")},v),(N=C[q])||(N=C[q]=[],N.delegateCount=0,(!Y.setup||Y.setup.call(a,d,de,b)===!1)&&a.addEventListener&&a.addEventListener(q,b)),Y.add&&(Y.add.call(a,M),M.handler.guid||(M.handler.guid=f.guid)),g?N.splice(N.delegateCount++,0,M):N.push(M),h.event.global[q]=!0)},remove:function(a,l,f,d,g){var v,b,A,C,P,M,Y,N,q,de,xe,he=L.hasData(a)&&L.get(a);if(!(!he||!(C=he.events))){for(l=(l||"").match(dt)||[""],P=l.length;P--;){if(A=Fl.exec(l[P])||[],q=xe=A[1],de=(A[2]||"").split(".").sort(),!q){for(q in C)h.event.remove(a,q+l[P],f,d,!0);continue}for(Y=h.event.special[q]||{},q=(d?Y.delegateType:Y.bindType)||q,N=C[q]||[],A=A[2]&&new RegExp("(^|\\.)"+de.join("\\.(?:.*\\.|)")+"(\\.|$)"),b=v=N.length;v--;)M=N[v],(g||xe===M.origType)&&(!f||f.guid===M.guid)&&(!A||A.test(M.namespace))&&(!d||d===M.selector||d==="**"&&M.selector)&&(N.splice(v,1),M.selector&&N.delegateCount--,Y.remove&&Y.remove.call(a,M));b&&!N.length&&((!Y.teardown||Y.teardown.call(a,de,he.handle)===!1)&&h.removeEvent(a,q,he.handle),delete C[q])}h.isEmptyObject(C)&&L.remove(a,"handle events")}},dispatch:function(a){var l,f,d,g,v,b,A=new Array(arguments.length),C=h.event.fix(a),P=(L.get(this,"events")||Object.create(null))[C.type]||[],M=h.event.special[C.type]||{};for(A[0]=C,l=1;l=1)){for(;P!==this;P=P.parentNode||this)if(P.nodeType===1&&!(a.type==="click"&&P.disabled===!0)){for(v=[],b={},f=0;f-1:h.find(g,this,null,[P]).length),b[g]&&v.push(d);v.length&&A.push({elem:P,handlers:v})}}return P=this,C\s*$/g;function ql(a,l){return at(a,"table")&&at(l.nodeType!==11?l:l.firstChild,"tr")&&h(a).children("tbody")[0]||a}function Bh(a){return a.type=(a.getAttribute("type")!==null)+"/"+a.type,a}function jh(a){return(a.type||"").slice(0,5)==="true/"?a.type=a.type.slice(5):a.removeAttribute("type"),a}function Bl(a,l){var f,d,g,v,b,A,C;if(l.nodeType===1){if(L.hasData(a)&&(v=L.get(a),C=v.events,C)){L.remove(l,"handle events");for(g in C)for(f=0,d=C[g].length;f1&&typeof q=="string"&&!I.checkClone&&Fh.test(q))return a.each(function(xe){var he=a.eq(xe);de&&(l[0]=q.call(this,xe,he.html())),Mi(he,l,f,d)});if(Y&&(g=Hl(l,a[0].ownerDocument,!1,a,d),v=g.firstChild,g.childNodes.length===1&&(g=v),v||d)){for(b=h.map(Ct(g,"script"),Bh),A=b.length;M0&&wa(b,!C&&Ct(a,"script")),A},cleanData:function(a){for(var l,f,d,g=h.event.special,v=0;(f=a[v])!==void 0;v++)if(H(f)){if(l=f[L.expando]){if(l.events)for(d in l.events)g[d]?h.event.remove(f,d):h.removeEvent(f,d,l.handle);f[L.expando]=void 0}f[G.expando]&&(f[G.expando]=void 0)}}}),h.fn.extend({detach:function(a){return jl(this,a,!0)},remove:function(a){return jl(this,a)},text:function(a){return Ce(this,function(l){return l===void 0?h.text(this):this.empty().each(function(){(this.nodeType===1||this.nodeType===11||this.nodeType===9)&&(this.textContent=l)})},null,a,arguments.length)},append:function(){return Mi(this,arguments,function(a){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var l=ql(this,a);l.appendChild(a)}})},prepend:function(){return Mi(this,arguments,function(a){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var l=ql(this,a);l.insertBefore(a,l.firstChild)}})},before:function(){return Mi(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Mi(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,l=0;(a=this[l])!=null;l++)a.nodeType===1&&(h.cleanData(Ct(a,!1)),a.textContent="");return this},clone:function(a,l){return a=a==null?!1:a,l=l==null?a:l,this.map(function(){return h.clone(this,a,l)})},html:function(a){return Ce(this,function(l){var f=this[0]||{},d=0,g=this.length;if(l===void 0&&f.nodeType===1)return f.innerHTML;if(typeof l=="string"&&!Hh.test(l)&&!lt[(ur.exec(l)||["",""])[1].toLowerCase()]){l=h.htmlPrefilter(l);try{for(;d=0&&(C+=Math.max(0,Math.ceil(a["offset"+l[0].toUpperCase()+l.slice(1)]-v-C-A-.5))||0),C}function Jl(a,l,f){var d=ts(a),g=!I.boxSizingReliable()||f,v=g&&h.css(a,"boxSizing",!1,d)==="border-box",b=v,A=cr(a,l,d),C="offset"+l[0].toUpperCase()+l.slice(1);if(xa.test(A)){if(!f)return A;A="auto"}return(!I.boxSizingReliable()&&v||!I.reliableTrDimensions()&&at(a,"tr")||A==="auto"||!parseFloat(A)&&h.css(a,"display",!1,d)==="inline")&&a.getClientRects().length&&(v=h.css(a,"boxSizing",!1,d)==="border-box",b=C in a,b&&(A=a[C])),A=parseFloat(A)||0,A+Ta(a,l,f||(v?"border":"content"),b,d,A)+"px"}h.extend({cssHooks:{opacity:{get:function(a,l){if(l){var f=cr(a,"opacity");return f===""?"1":f}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(a,l,f,d){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var g,v,b,A=E(l),C=Ca.test(l),P=a.style;if(C||(l=$a(A)),b=h.cssHooks[l]||h.cssHooks[A],f!==void 0){if(v=typeof f,v==="string"&&(g=oe.exec(f))&&g[1]&&(f=ot(a,l,g),v="number"),f==null||f!==f)return;v==="number"&&!C&&(f+=g&&g[3]||(h.cssNumber[A]?"":"px")),!I.clearCloneStyle&&f===""&&l.indexOf("background")===0&&(P[l]="inherit"),(!b||!("set"in b)||(f=b.set(a,f,d))!==void 0)&&(C?P.setProperty(l,f):P[l]=f)}else return b&&"get"in b&&(g=b.get(a,!1,d))!==void 0?g:P[l]}},css:function(a,l,f,d){var g,v,b,A=E(l),C=Ca.test(l);return C||(l=$a(A)),b=h.cssHooks[l]||h.cssHooks[A],b&&"get"in b&&(g=b.get(a,!0,f)),g===void 0&&(g=cr(a,l,d)),g==="normal"&&l in Ql&&(g=Ql[l]),f===""||f?(v=parseFloat(g),f===!0||isFinite(v)?v||0:g):g}}),h.each(["height","width"],function(a,l){h.cssHooks[l]={get:function(f,d,g){if(d)return Kh.test(h.css(f,"display"))&&(!f.getClientRects().length||!f.getBoundingClientRect().width)?Ul(f,Gh,function(){return Jl(f,l,g)}):Jl(f,l,g)},set:function(f,d,g){var v,b=ts(f),A=!I.scrollboxSize()&&b.position==="absolute",C=A||g,P=C&&h.css(f,"boxSizing",!1,b)==="border-box",M=g?Ta(f,l,g,P,b):0;return P&&A&&(M-=Math.ceil(f["offset"+l[0].toUpperCase()+l.slice(1)]-parseFloat(b[l])-Ta(f,l,"border",!1,b)-.5)),M&&(v=oe.exec(d))&&(v[3]||"px")!=="px"&&(f.style[l]=d,d=h.css(f,l)),Xl(f,d,M)}}}),h.cssHooks.marginLeft=Vl(I.reliableMarginLeft,function(a,l){if(l)return(parseFloat(cr(a,"marginLeft"))||a.getBoundingClientRect().left-Ul(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),h.each({margin:"",padding:"",border:"Width"},function(a,l){h.cssHooks[a+l]={expand:function(f){for(var d=0,g={},v=typeof f=="string"?f.split(" "):[f];d<4;d++)g[a+ue[d]+l]=v[d]||v[d-2]||v[0];return g}},a!=="margin"&&(h.cssHooks[a+l].set=Xl)}),h.fn.extend({css:function(a,l){return Ce(this,function(f,d,g){var v,b,A={},C=0;if(Array.isArray(d)){for(v=ts(f),b=d.length;C1)}});function It(a,l,f,d,g){return new It.prototype.init(a,l,f,d,g)}h.Tween=It,It.prototype={constructor:It,init:function(a,l,f,d,g,v){this.elem=a,this.prop=f,this.easing=g||h.easing._default,this.options=l,this.start=this.now=this.cur(),this.end=d,this.unit=v||(h.cssNumber[f]?"":"px")},cur:function(){var a=It.propHooks[this.prop];return a&&a.get?a.get(this):It.propHooks._default.get(this)},run:function(a){var l,f=It.propHooks[this.prop];return this.options.duration?this.pos=l=h.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=l=a,this.now=(this.end-this.start)*l+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),f&&f.set?f.set(this):It.propHooks._default.set(this),this}},It.prototype.init.prototype=It.prototype,It.propHooks={_default:{get:function(a){var l;return a.elem.nodeType!==1||a.elem[a.prop]!=null&&a.elem.style[a.prop]==null?a.elem[a.prop]:(l=h.css(a.elem,a.prop,""),!l||l==="auto"?0:l)},set:function(a){h.fx.step[a.prop]?h.fx.step[a.prop](a):a.elem.nodeType===1&&(h.cssHooks[a.prop]||a.elem.style[$a(a.prop)]!=null)?h.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},It.propHooks.scrollTop=It.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},h.easing={linear:function(a){return a},swing:function(a){return .5-Math.cos(a*Math.PI)/2},_default:"swing"},h.fx=It.prototype.init,h.fx.step={};var Di,ns,Qh=/^(?:toggle|show|hide)$/,Xh=/queueHooks$/;function Aa(){ns&&(O.hidden===!1&&t.requestAnimationFrame?t.requestAnimationFrame(Aa):t.setTimeout(Aa,h.fx.interval),h.fx.tick())}function Zl(){return t.setTimeout(function(){Di=void 0}),Di=Date.now()}function is(a,l){var f,d=0,g={height:a};for(l=l?1:0;d<4;d+=2-l)f=ue[d],g["margin"+f]=g["padding"+f]=a;return l&&(g.opacity=g.width=a),g}function eu(a,l,f){for(var d,g=(rn.tweeners[l]||[]).concat(rn.tweeners["*"]),v=0,b=g.length;v1)},removeAttr:function(a){return this.each(function(){h.removeAttr(this,a)})}}),h.extend({attr:function(a,l,f){var d,g,v=a.nodeType;if(!(v===3||v===8||v===2)){if(typeof a.getAttribute>"u")return h.prop(a,l,f);if((v!==1||!h.isXMLDoc(a))&&(g=h.attrHooks[l.toLowerCase()]||(h.expr.match.bool.test(l)?tu:void 0)),f!==void 0){if(f===null){h.removeAttr(a,l);return}return g&&"set"in g&&(d=g.set(a,f,l))!==void 0?d:(a.setAttribute(l,f+""),f)}return g&&"get"in g&&(d=g.get(a,l))!==null?d:(d=h.find.attr(a,l),d==null?void 0:d)}},attrHooks:{type:{set:function(a,l){if(!I.radioValue&&l==="radio"&&at(a,"input")){var f=a.value;return a.setAttribute("type",l),f&&(a.value=f),l}}}},removeAttr:function(a,l){var f,d=0,g=l&&l.match(dt);if(g&&a.nodeType===1)for(;f=g[d++];)a.removeAttribute(f)}}),tu={set:function(a,l,f){return l===!1?h.removeAttr(a,f):a.setAttribute(f,f),f}},h.each(h.expr.match.bool.source.match(/\w+/g),function(a,l){var f=fr[l]||h.find.attr;fr[l]=function(d,g,v){var b,A,C=g.toLowerCase();return v||(A=fr[C],fr[C]=b,b=f(d,g,v)!=null?C:null,fr[C]=A),b}});var ep=/^(?:input|select|textarea|button)$/i,tp=/^(?:a|area)$/i;h.fn.extend({prop:function(a,l){return Ce(this,h.prop,a,l,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[h.propFix[a]||a]})}}),h.extend({prop:function(a,l,f){var d,g,v=a.nodeType;if(!(v===3||v===8||v===2))return(v!==1||!h.isXMLDoc(a))&&(l=h.propFix[l]||l,g=h.propHooks[l]),f!==void 0?g&&"set"in g&&(d=g.set(a,f,l))!==void 0?d:a[l]=f:g&&"get"in g&&(d=g.get(a,l))!==null?d:a[l]},propHooks:{tabIndex:{get:function(a){var l=h.find.attr(a,"tabindex");return l?parseInt(l,10):ep.test(a.nodeName)||tp.test(a.nodeName)&&a.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),I.optSelected||(h.propHooks.selected={get:function(a){var l=a.parentNode;return l&&l.parentNode&&l.parentNode.selectedIndex,null},set:function(a){var l=a.parentNode;l&&(l.selectedIndex,l.parentNode&&l.parentNode.selectedIndex)}}),h.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){h.propFix[this.toLowerCase()]=this});function fi(a){var l=a.match(dt)||[];return l.join(" ")}function di(a){return a.getAttribute&&a.getAttribute("class")||""}function Ea(a){return Array.isArray(a)?a:typeof a=="string"?a.match(dt)||[]:[]}h.fn.extend({addClass:function(a){var l,f,d,g,v,b;return D(a)?this.each(function(A){h(this).addClass(a.call(this,A,di(this)))}):(l=Ea(a),l.length?this.each(function(){if(d=di(this),f=this.nodeType===1&&" "+fi(d)+" ",f){for(v=0;v-1;)f=f.replace(" "+g+" "," ");b=fi(f),d!==b&&this.setAttribute("class",b)}}):this):this.attr("class","")},toggleClass:function(a,l){var f,d,g,v,b=typeof a,A=b==="string"||Array.isArray(a);return D(a)?this.each(function(C){h(this).toggleClass(a.call(this,C,di(this),l),l)}):typeof l=="boolean"&&A?l?this.addClass(a):this.removeClass(a):(f=Ea(a),this.each(function(){if(A)for(v=h(this),g=0;g-1)return!0;return!1}});var np=/\r/g;h.fn.extend({val:function(a){var l,f,d,g=this[0];return arguments.length?(d=D(a),this.each(function(v){var b;this.nodeType===1&&(d?b=a.call(this,v,h(this).val()):b=a,b==null?b="":typeof b=="number"?b+="":Array.isArray(b)&&(b=h.map(b,function(A){return A==null?"":A+""})),l=h.valHooks[this.type]||h.valHooks[this.nodeName.toLowerCase()],(!l||!("set"in l)||l.set(this,b,"value")===void 0)&&(this.value=b))})):g?(l=h.valHooks[g.type]||h.valHooks[g.nodeName.toLowerCase()],l&&"get"in l&&(f=l.get(g,"value"))!==void 0?f:(f=g.value,typeof f=="string"?f.replace(np,""):f==null?"":f)):void 0}}),h.extend({valHooks:{option:{get:function(a){var l=h.find.attr(a,"value");return l!=null?l:fi(h.text(a))}},select:{get:function(a){var l,f,d,g=a.options,v=a.selectedIndex,b=a.type==="select-one",A=b?null:[],C=b?v+1:g.length;for(v<0?d=C:d=b?v:0;d-1)&&(f=!0);return f||(a.selectedIndex=-1),v}}}}),h.each(["radio","checkbox"],function(){h.valHooks[this]={set:function(a,l){if(Array.isArray(l))return a.checked=h.inArray(h(a).val(),l)>-1}},I.checkOn||(h.valHooks[this].get=function(a){return a.getAttribute("value")===null?"on":a.value})}),I.focusin="onfocusin"in t;var nu=/^(?:focusinfocus|focusoutblur)$/,iu=function(a){a.stopPropagation()};h.extend(h.event,{trigger:function(a,l,f,d){var g,v,b,A,C,P,M,Y,N=[f||O],q=w.call(a,"type")?a.type:a,de=w.call(a,"namespace")?a.namespace.split("."):[];if(v=Y=b=f=f||O,!(f.nodeType===3||f.nodeType===8)&&!nu.test(q+h.event.triggered)&&(q.indexOf(".")>-1&&(de=q.split("."),q=de.shift(),de.sort()),C=q.indexOf(":")<0&&"on"+q,a=a[h.expando]?a:new h.Event(q,typeof a=="object"&&a),a.isTrigger=d?2:3,a.namespace=de.join("."),a.rnamespace=a.namespace?new RegExp("(^|\\.)"+de.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,a.result=void 0,a.target||(a.target=f),l=l==null?[a]:h.makeArray(l,[a]),M=h.event.special[q]||{},!(!d&&M.trigger&&M.trigger.apply(f,l)===!1))){if(!d&&!M.noBubble&&!Z(f)){for(A=M.delegateType||q,nu.test(A+q)||(v=v.parentNode);v;v=v.parentNode)N.push(v),b=v;b===(f.ownerDocument||O)&&N.push(b.defaultView||b.parentWindow||t)}for(g=0;(v=N[g++])&&!a.isPropagationStopped();)Y=v,a.type=g>1?A:M.bindType||q,P=(L.get(v,"events")||Object.create(null))[a.type]&&L.get(v,"handle"),P&&P.apply(v,l),P=C&&v[C],P&&P.apply&&H(v)&&(a.result=P.apply(v,l),a.result===!1&&a.preventDefault());return a.type=q,!d&&!a.isDefaultPrevented()&&(!M._default||M._default.apply(N.pop(),l)===!1)&&H(f)&&C&&D(f[q])&&!Z(f)&&(b=f[C],b&&(f[C]=null),h.event.triggered=q,a.isPropagationStopped()&&Y.addEventListener(q,iu),f[q](),a.isPropagationStopped()&&Y.removeEventListener(q,iu),h.event.triggered=void 0,b&&(f[C]=b)),a.result}},simulate:function(a,l,f){var d=h.extend(new h.Event,f,{type:a,isSimulated:!0});h.event.trigger(d,null,l)}}),h.fn.extend({trigger:function(a,l){return this.each(function(){h.event.trigger(a,l,this)})},triggerHandler:function(a,l){var f=this[0];if(f)return h.event.trigger(a,l,f,!0)}}),I.focusin||h.each({focus:"focusin",blur:"focusout"},function(a,l){var f=function(d){h.event.simulate(l,d.target,h.event.fix(d))};h.event.special[l]={setup:function(){var d=this.ownerDocument||this.document||this,g=L.access(d,l);g||d.addEventListener(a,f,!0),L.access(d,l,(g||0)+1)},teardown:function(){var d=this.ownerDocument||this.document||this,g=L.access(d,l)-1;g?L.access(d,l,g):(d.removeEventListener(a,f,!0),L.remove(d,l))}}});var dr=t.location,ru={guid:Date.now()},Sa=/\?/;h.parseXML=function(a){var l,f;if(!a||typeof a!="string")return null;try{l=new t.DOMParser().parseFromString(a,"text/xml")}catch{}return f=l&&l.getElementsByTagName("parsererror")[0],(!l||f)&&h.error("Invalid XML: "+(f?h.map(f.childNodes,function(d){return d.textContent}).join(` + */(function(e){(function(t,n){e.exports=t.document?n(t,!0):function(r){if(!r.document)throw new Error("jQuery requires a window with a document");return n(r)}})(typeof window<"u"?window:iy,function(t,n){var r=[],i=Object.getPrototypeOf,s=r.slice,o=r.flat?function(a){return r.flat.call(a)}:function(a){return r.concat.apply([],a)},u=r.push,c=r.indexOf,p={},m=p.toString,w=p.hasOwnProperty,x=w.toString,O=x.call(Object),I={},D=function(l){return typeof l=="function"&&typeof l.nodeType!="number"&&typeof l.item!="function"},Z=function(l){return l!=null&&l===l.window},z=t.document,U={type:!0,src:!0,nonce:!0,noModule:!0};function F(a,l,f){f=f||z;var d,g,v=f.createElement("script");if(v.text=a,l)for(d in U)g=l[d]||l.getAttribute&&l.getAttribute(d),g&&v.setAttribute(d,g);f.head.appendChild(v).parentNode.removeChild(v)}function J(a){return a==null?a+"":typeof a=="object"||typeof a=="function"?p[m.call(a)]||"object":typeof a}var ke="3.6.1",h=function(a,l){return new h.fn.init(a,l)};h.fn=h.prototype={jquery:ke,constructor:h,length:0,toArray:function(){return s.call(this)},get:function(a){return a==null?s.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var l=h.merge(this.constructor(),a);return l.prevObject=this,l},each:function(a){return h.each(this,a)},map:function(a){return this.pushStack(h.map(this,function(l,f){return a.call(l,f,l)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(h.grep(this,function(a,l){return(l+1)%2}))},odd:function(){return this.pushStack(h.grep(this,function(a,l){return l%2}))},eq:function(a){var l=this.length,f=+a+(a<0?l:0);return this.pushStack(f>=0&&f0&&l-1 in a}var st=function(a){var l,f,d,g,v,b,A,C,P,M,Y,N,q,de,xe,he,_t,vt,jt,We="sizzle"+1*new Date,we=a.document,Mt=0,Le=0,ut=os(),pr=os(),rs=os(),Ut=os(),hi=function(_,T){return _===T&&(Y=!0),0},pi={}.hasOwnProperty,Dt=[],Un=Dt.pop,Gt=Dt.push,Wn=Dt.push,fu=Dt.slice,mi=function(_,T){for(var S=0,B=_.length;S+~]|"+He+")"+He+"*"),wp=new RegExp(He+"|>"),kp=new RegExp(Ia),xp=new RegExp("^"+gi+"$"),as={ID:new RegExp("^#("+gi+")"),CLASS:new RegExp("^\\.("+gi+")"),TAG:new RegExp("^("+gi+"|[*])"),ATTR:new RegExp("^"+du),PSEUDO:new RegExp("^"+Ia),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+He+"*(even|odd|(([+-]|)(\\d*)n|)"+He+"*(?:([+-]|)"+He+"*(\\d+)|))"+He+"*\\)|)","i"),bool:new RegExp("^(?:"+Na+")$","i"),needsContext:new RegExp("^"+He+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+He+"*((?:-\\d)?\\d*)"+He+"*\\)|)(?=[^-]|$)","i")},Cp=/HTML$/i,$p=/^(?:input|select|textarea|button)$/i,Tp=/^h\d$/i,mr=/^[^{]+\{\s*\[native \w/,Ap=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Ma=/[+~]/,zn=new RegExp("\\\\[\\da-fA-F]{1,6}"+He+"?|\\\\([^\\r\\n\\f])","g"),Rn=function(_,T){var S="0x"+_.slice(1)-65536;return T||(S<0?String.fromCharCode(S+65536):String.fromCharCode(S>>10|55296,S&1023|56320))},pu=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,mu=function(_,T){return T?_==="\0"?"\uFFFD":_.slice(0,-1)+"\\"+_.charCodeAt(_.length-1).toString(16)+" ":"\\"+_},gu=function(){N()},Ep=us(function(_){return _.disabled===!0&&_.nodeName.toLowerCase()==="fieldset"},{dir:"parentNode",next:"legend"});try{Wn.apply(Dt=fu.call(we.childNodes),we.childNodes),Dt[we.childNodes.length].nodeType}catch{Wn={apply:Dt.length?function(T,S){Gt.apply(T,fu.call(S))}:function(T,S){for(var B=T.length,R=0;T[B++]=S[R++];);T.length=B-1}}}function Ve(_,T,S,B){var R,W,K,ee,ie,ve,me,be=T&&T.ownerDocument,ze=T?T.nodeType:9;if(S=S||[],typeof _!="string"||!_||ze!==1&&ze!==9&&ze!==11)return S;if(!B&&(N(T),T=T||q,xe)){if(ze!==11&&(ie=Ap.exec(_)))if(R=ie[1]){if(ze===9)if(K=T.getElementById(R)){if(K.id===R)return S.push(K),S}else return S;else if(be&&(K=be.getElementById(R))&&jt(T,K)&&K.id===R)return S.push(K),S}else{if(ie[2])return Wn.apply(S,T.getElementsByTagName(_)),S;if((R=ie[3])&&f.getElementsByClassName&&T.getElementsByClassName)return Wn.apply(S,T.getElementsByClassName(R)),S}if(f.qsa&&!Ut[_+" "]&&(!he||!he.test(_))&&(ze!==1||T.nodeName.toLowerCase()!=="object")){if(me=_,be=T,ze===1&&(wp.test(_)||hu.test(_))){for(be=Ma.test(_)&&Ha(T.parentNode)||T,(be!==T||!f.scope)&&((ee=T.getAttribute("id"))?ee=ee.replace(pu,mu):T.setAttribute("id",ee=We)),ve=b(_),W=ve.length;W--;)ve[W]=(ee?"#"+ee:":scope")+" "+ls(ve[W]);me=ve.join(",")}try{return Wn.apply(S,be.querySelectorAll(me)),S}catch{Ut(_,!0)}finally{ee===We&&T.removeAttribute("id")}}}return C(_.replace(ss,"$1"),T,S,B)}function os(){var _=[];function T(S,B){return _.push(S+" ")>d.cacheLength&&delete T[_.shift()],T[S+" "]=B}return T}function sn(_){return _[We]=!0,_}function an(_){var T=q.createElement("fieldset");try{return!!_(T)}catch{return!1}finally{T.parentNode&&T.parentNode.removeChild(T),T=null}}function Da(_,T){for(var S=_.split("|"),B=S.length;B--;)d.attrHandle[S[B]]=T}function vu(_,T){var S=T&&_,B=S&&_.nodeType===1&&T.nodeType===1&&_.sourceIndex-T.sourceIndex;if(B)return B;if(S){for(;S=S.nextSibling;)if(S===T)return-1}return _?1:-1}function Sp(_){return function(T){var S=T.nodeName.toLowerCase();return S==="input"&&T.type===_}}function Op(_){return function(T){var S=T.nodeName.toLowerCase();return(S==="input"||S==="button")&&T.type===_}}function yu(_){return function(T){return"form"in T?T.parentNode&&T.disabled===!1?"label"in T?"label"in T.parentNode?T.parentNode.disabled===_:T.disabled===_:T.isDisabled===_||T.isDisabled!==!_&&Ep(T)===_:T.disabled===_:"label"in T?T.disabled===_:!1}}function vi(_){return sn(function(T){return T=+T,sn(function(S,B){for(var R,W=_([],S.length,T),K=W.length;K--;)S[R=W[K]]&&(S[R]=!(B[R]=S[R]))})})}function Ha(_){return _&&typeof _.getElementsByTagName<"u"&&_}f=Ve.support={},v=Ve.isXML=function(_){var T=_&&_.namespaceURI,S=_&&(_.ownerDocument||_).documentElement;return!Cp.test(T||S&&S.nodeName||"HTML")},N=Ve.setDocument=function(_){var T,S,B=_?_.ownerDocument||_:we;return B==q||B.nodeType!==9||!B.documentElement||(q=B,de=q.documentElement,xe=!v(q),we!=q&&(S=q.defaultView)&&S.top!==S&&(S.addEventListener?S.addEventListener("unload",gu,!1):S.attachEvent&&S.attachEvent("onunload",gu)),f.scope=an(function(R){return de.appendChild(R).appendChild(q.createElement("div")),typeof R.querySelectorAll<"u"&&!R.querySelectorAll(":scope fieldset div").length}),f.attributes=an(function(R){return R.className="i",!R.getAttribute("className")}),f.getElementsByTagName=an(function(R){return R.appendChild(q.createComment("")),!R.getElementsByTagName("*").length}),f.getElementsByClassName=mr.test(q.getElementsByClassName),f.getById=an(function(R){return de.appendChild(R).id=We,!q.getElementsByName||!q.getElementsByName(We).length}),f.getById?(d.filter.ID=function(R){var W=R.replace(zn,Rn);return function(K){return K.getAttribute("id")===W}},d.find.ID=function(R,W){if(typeof W.getElementById<"u"&&xe){var K=W.getElementById(R);return K?[K]:[]}}):(d.filter.ID=function(R){var W=R.replace(zn,Rn);return function(K){var ee=typeof K.getAttributeNode<"u"&&K.getAttributeNode("id");return ee&&ee.value===W}},d.find.ID=function(R,W){if(typeof W.getElementById<"u"&&xe){var K,ee,ie,ve=W.getElementById(R);if(ve){if(K=ve.getAttributeNode("id"),K&&K.value===R)return[ve];for(ie=W.getElementsByName(R),ee=0;ve=ie[ee++];)if(K=ve.getAttributeNode("id"),K&&K.value===R)return[ve]}return[]}}),d.find.TAG=f.getElementsByTagName?function(R,W){if(typeof W.getElementsByTagName<"u")return W.getElementsByTagName(R);if(f.qsa)return W.querySelectorAll(R)}:function(R,W){var K,ee=[],ie=0,ve=W.getElementsByTagName(R);if(R==="*"){for(;K=ve[ie++];)K.nodeType===1&&ee.push(K);return ee}return ve},d.find.CLASS=f.getElementsByClassName&&function(R,W){if(typeof W.getElementsByClassName<"u"&&xe)return W.getElementsByClassName(R)},_t=[],he=[],(f.qsa=mr.test(q.querySelectorAll))&&(an(function(R){var W;de.appendChild(R).innerHTML="",R.querySelectorAll("[msallowcapture^='']").length&&he.push("[*^$]="+He+`*(?:''|"")`),R.querySelectorAll("[selected]").length||he.push("\\["+He+"*(?:value|"+Na+")"),R.querySelectorAll("[id~="+We+"-]").length||he.push("~="),W=q.createElement("input"),W.setAttribute("name",""),R.appendChild(W),R.querySelectorAll("[name='']").length||he.push("\\["+He+"*name"+He+"*="+He+`*(?:''|"")`),R.querySelectorAll(":checked").length||he.push(":checked"),R.querySelectorAll("a#"+We+"+*").length||he.push(".#.+[+~]"),R.querySelectorAll("\\\f"),he.push("[\\r\\n\\f]")}),an(function(R){R.innerHTML="";var W=q.createElement("input");W.setAttribute("type","hidden"),R.appendChild(W).setAttribute("name","D"),R.querySelectorAll("[name=d]").length&&he.push("name"+He+"*[*^$|!~]?="),R.querySelectorAll(":enabled").length!==2&&he.push(":enabled",":disabled"),de.appendChild(R).disabled=!0,R.querySelectorAll(":disabled").length!==2&&he.push(":enabled",":disabled"),R.querySelectorAll("*,:x"),he.push(",.*:")})),(f.matchesSelector=mr.test(vt=de.matches||de.webkitMatchesSelector||de.mozMatchesSelector||de.oMatchesSelector||de.msMatchesSelector))&&an(function(R){f.disconnectedMatch=vt.call(R,"*"),vt.call(R,"[s!='']:x"),_t.push("!=",Ia)}),he=he.length&&new RegExp(he.join("|")),_t=_t.length&&new RegExp(_t.join("|")),T=mr.test(de.compareDocumentPosition),jt=T||mr.test(de.contains)?function(R,W){var K=R.nodeType===9?R.documentElement:R,ee=W&&W.parentNode;return R===ee||!!(ee&&ee.nodeType===1&&(K.contains?K.contains(ee):R.compareDocumentPosition&&R.compareDocumentPosition(ee)&16))}:function(R,W){if(W){for(;W=W.parentNode;)if(W===R)return!0}return!1},hi=T?function(R,W){if(R===W)return Y=!0,0;var K=!R.compareDocumentPosition-!W.compareDocumentPosition;return K||(K=(R.ownerDocument||R)==(W.ownerDocument||W)?R.compareDocumentPosition(W):1,K&1||!f.sortDetached&&W.compareDocumentPosition(R)===K?R==q||R.ownerDocument==we&&jt(we,R)?-1:W==q||W.ownerDocument==we&&jt(we,W)?1:M?mi(M,R)-mi(M,W):0:K&4?-1:1)}:function(R,W){if(R===W)return Y=!0,0;var K,ee=0,ie=R.parentNode,ve=W.parentNode,me=[R],be=[W];if(!ie||!ve)return R==q?-1:W==q?1:ie?-1:ve?1:M?mi(M,R)-mi(M,W):0;if(ie===ve)return vu(R,W);for(K=R;K=K.parentNode;)me.unshift(K);for(K=W;K=K.parentNode;)be.unshift(K);for(;me[ee]===be[ee];)ee++;return ee?vu(me[ee],be[ee]):me[ee]==we?-1:be[ee]==we?1:0}),q},Ve.matches=function(_,T){return Ve(_,null,null,T)},Ve.matchesSelector=function(_,T){if(N(_),f.matchesSelector&&xe&&!Ut[T+" "]&&(!_t||!_t.test(T))&&(!he||!he.test(T)))try{var S=vt.call(_,T);if(S||f.disconnectedMatch||_.document&&_.document.nodeType!==11)return S}catch{Ut(T,!0)}return Ve(T,q,null,[_]).length>0},Ve.contains=function(_,T){return(_.ownerDocument||_)!=q&&N(_),jt(_,T)},Ve.attr=function(_,T){(_.ownerDocument||_)!=q&&N(_);var S=d.attrHandle[T.toLowerCase()],B=S&&pi.call(d.attrHandle,T.toLowerCase())?S(_,T,!xe):void 0;return B!==void 0?B:f.attributes||!xe?_.getAttribute(T):(B=_.getAttributeNode(T))&&B.specified?B.value:null},Ve.escape=function(_){return(_+"").replace(pu,mu)},Ve.error=function(_){throw new Error("Syntax error, unrecognized expression: "+_)},Ve.uniqueSort=function(_){var T,S=[],B=0,R=0;if(Y=!f.detectDuplicates,M=!f.sortStable&&_.slice(0),_.sort(hi),Y){for(;T=_[R++];)T===_[R]&&(B=S.push(R));for(;B--;)_.splice(S[B],1)}return M=null,_},g=Ve.getText=function(_){var T,S="",B=0,R=_.nodeType;if(R){if(R===1||R===9||R===11){if(typeof _.textContent=="string")return _.textContent;for(_=_.firstChild;_;_=_.nextSibling)S+=g(_)}else if(R===3||R===4)return _.nodeValue}else for(;T=_[B++];)S+=g(T);return S},d=Ve.selectors={cacheLength:50,createPseudo:sn,match:as,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(_){return _[1]=_[1].replace(zn,Rn),_[3]=(_[3]||_[4]||_[5]||"").replace(zn,Rn),_[2]==="~="&&(_[3]=" "+_[3]+" "),_.slice(0,4)},CHILD:function(_){return _[1]=_[1].toLowerCase(),_[1].slice(0,3)==="nth"?(_[3]||Ve.error(_[0]),_[4]=+(_[4]?_[5]+(_[6]||1):2*(_[3]==="even"||_[3]==="odd")),_[5]=+(_[7]+_[8]||_[3]==="odd")):_[3]&&Ve.error(_[0]),_},PSEUDO:function(_){var T,S=!_[6]&&_[2];return as.CHILD.test(_[0])?null:(_[3]?_[2]=_[4]||_[5]||"":S&&kp.test(S)&&(T=b(S,!0))&&(T=S.indexOf(")",S.length-T)-S.length)&&(_[0]=_[0].slice(0,T),_[2]=S.slice(0,T)),_.slice(0,3))}},filter:{TAG:function(_){var T=_.replace(zn,Rn).toLowerCase();return _==="*"?function(){return!0}:function(S){return S.nodeName&&S.nodeName.toLowerCase()===T}},CLASS:function(_){var T=ut[_+" "];return T||(T=new RegExp("(^|"+He+")"+_+"("+He+"|$)"))&&ut(_,function(S){return T.test(typeof S.className=="string"&&S.className||typeof S.getAttribute<"u"&&S.getAttribute("class")||"")})},ATTR:function(_,T,S){return function(B){var R=Ve.attr(B,_);return R==null?T==="!=":T?(R+="",T==="="?R===S:T==="!="?R!==S:T==="^="?S&&R.indexOf(S)===0:T==="*="?S&&R.indexOf(S)>-1:T==="$="?S&&R.slice(-S.length)===S:T==="~="?(" "+R.replace(bp," ")+" ").indexOf(S)>-1:T==="|="?R===S||R.slice(0,S.length+1)===S+"-":!1):!0}},CHILD:function(_,T,S,B,R){var W=_.slice(0,3)!=="nth",K=_.slice(-4)!=="last",ee=T==="of-type";return B===1&&R===0?function(ie){return!!ie.parentNode}:function(ie,ve,me){var be,ze,Ye,ye,wt,Et,Wt=W!==K?"nextSibling":"previousSibling",et=ie.parentNode,gr=ee&&ie.nodeName.toLowerCase(),vr=!me&&!ee,Vt=!1;if(et){if(W){for(;Wt;){for(ye=ie;ye=ye[Wt];)if(ee?ye.nodeName.toLowerCase()===gr:ye.nodeType===1)return!1;Et=Wt=_==="only"&&!Et&&"nextSibling"}return!0}if(Et=[K?et.firstChild:et.lastChild],K&&vr){for(ye=et,Ye=ye[We]||(ye[We]={}),ze=Ye[ye.uniqueID]||(Ye[ye.uniqueID]={}),be=ze[_]||[],wt=be[0]===Mt&&be[1],Vt=wt&&be[2],ye=wt&&et.childNodes[wt];ye=++wt&&ye&&ye[Wt]||(Vt=wt=0)||Et.pop();)if(ye.nodeType===1&&++Vt&&ye===ie){ze[_]=[Mt,wt,Vt];break}}else if(vr&&(ye=ie,Ye=ye[We]||(ye[We]={}),ze=Ye[ye.uniqueID]||(Ye[ye.uniqueID]={}),be=ze[_]||[],wt=be[0]===Mt&&be[1],Vt=wt),Vt===!1)for(;(ye=++wt&&ye&&ye[Wt]||(Vt=wt=0)||Et.pop())&&!((ee?ye.nodeName.toLowerCase()===gr:ye.nodeType===1)&&++Vt&&(vr&&(Ye=ye[We]||(ye[We]={}),ze=Ye[ye.uniqueID]||(Ye[ye.uniqueID]={}),ze[_]=[Mt,Vt]),ye===ie)););return Vt-=R,Vt===B||Vt%B===0&&Vt/B>=0}}},PSEUDO:function(_,T){var S,B=d.pseudos[_]||d.setFilters[_.toLowerCase()]||Ve.error("unsupported pseudo: "+_);return B[We]?B(T):B.length>1?(S=[_,_,"",T],d.setFilters.hasOwnProperty(_.toLowerCase())?sn(function(R,W){for(var K,ee=B(R,T),ie=ee.length;ie--;)K=mi(R,ee[ie]),R[K]=!(W[K]=ee[ie])}):function(R){return B(R,0,S)}):B}},pseudos:{not:sn(function(_){var T=[],S=[],B=A(_.replace(ss,"$1"));return B[We]?sn(function(R,W,K,ee){for(var ie,ve=B(R,null,ee,[]),me=R.length;me--;)(ie=ve[me])&&(R[me]=!(W[me]=ie))}):function(R,W,K){return T[0]=R,B(T,null,K,S),T[0]=null,!S.pop()}}),has:sn(function(_){return function(T){return Ve(_,T).length>0}}),contains:sn(function(_){return _=_.replace(zn,Rn),function(T){return(T.textContent||g(T)).indexOf(_)>-1}}),lang:sn(function(_){return xp.test(_||"")||Ve.error("unsupported lang: "+_),_=_.replace(zn,Rn).toLowerCase(),function(T){var S;do if(S=xe?T.lang:T.getAttribute("xml:lang")||T.getAttribute("lang"))return S=S.toLowerCase(),S===_||S.indexOf(_+"-")===0;while((T=T.parentNode)&&T.nodeType===1);return!1}}),target:function(_){var T=a.location&&a.location.hash;return T&&T.slice(1)===_.id},root:function(_){return _===de},focus:function(_){return _===q.activeElement&&(!q.hasFocus||q.hasFocus())&&!!(_.type||_.href||~_.tabIndex)},enabled:yu(!1),disabled:yu(!0),checked:function(_){var T=_.nodeName.toLowerCase();return T==="input"&&!!_.checked||T==="option"&&!!_.selected},selected:function(_){return _.parentNode&&_.parentNode.selectedIndex,_.selected===!0},empty:function(_){for(_=_.firstChild;_;_=_.nextSibling)if(_.nodeType<6)return!1;return!0},parent:function(_){return!d.pseudos.empty(_)},header:function(_){return Tp.test(_.nodeName)},input:function(_){return $p.test(_.nodeName)},button:function(_){var T=_.nodeName.toLowerCase();return T==="input"&&_.type==="button"||T==="button"},text:function(_){var T;return _.nodeName.toLowerCase()==="input"&&_.type==="text"&&((T=_.getAttribute("type"))==null||T.toLowerCase()==="text")},first:vi(function(){return[0]}),last:vi(function(_,T){return[T-1]}),eq:vi(function(_,T,S){return[S<0?S+T:S]}),even:vi(function(_,T){for(var S=0;ST?T:S;--B>=0;)_.push(B);return _}),gt:vi(function(_,T,S){for(var B=S<0?S+T:S;++B1?function(T,S,B){for(var R=_.length;R--;)if(!_[R](T,S,B))return!1;return!0}:_[0]}function zp(_,T,S){for(var B=0,R=T.length;B-1&&(K[me]=!(ee[me]=ze))}}else et=cs(et===ee?et.splice(wt,et.length):et),R?R(null,ee,et,ve):Wn.apply(ee,et)})}function Ba(_){for(var T,S,B,R=_.length,W=d.relative[_[0].type],K=W||d.relative[" "],ee=W?1:0,ie=us(function(be){return be===T},K,!0),ve=us(function(be){return mi(T,be)>-1},K,!0),me=[function(be,ze,Ye){var ye=!W&&(Ye||ze!==P)||((T=ze).nodeType?ie(be,ze,Ye):ve(be,ze,Ye));return T=null,ye}];ee1&&Fa(me),ee>1&&ls(_.slice(0,ee-1).concat({value:_[ee-2].type===" "?"*":""})).replace(ss,"$1"),S,ee0,B=_.length>0,R=function(W,K,ee,ie,ve){var me,be,ze,Ye=0,ye="0",wt=W&&[],Et=[],Wt=P,et=W||B&&d.find.TAG("*",ve),gr=Mt+=Wt==null?1:Math.random()||.1,vr=et.length;for(ve&&(P=K==q||K||ve);ye!==vr&&(me=et[ye])!=null;ye++){if(B&&me){for(be=0,!K&&me.ownerDocument!=q&&(N(me),ee=!xe);ze=_[be++];)if(ze(me,K||q,ee)){ie.push(me);break}ve&&(Mt=gr)}S&&((me=!ze&&me)&&Ye--,W&&wt.push(me))}if(Ye+=ye,S&&ye!==Ye){for(be=0;ze=T[be++];)ze(wt,Et,K,ee);if(W){if(Ye>0)for(;ye--;)wt[ye]||Et[ye]||(Et[ye]=Un.call(ie));Et=cs(Et)}Wn.apply(ie,Et),ve&&!W&&Et.length>0&&Ye+T.length>1&&Ve.uniqueSort(ie)}return ve&&(Mt=gr,P=Wt),wt};return S?sn(R):R}return A=Ve.compile=function(_,T){var S,B=[],R=[],W=rs[_+" "];if(!W){for(T||(T=b(_)),S=T.length;S--;)W=Ba(T[S]),W[We]?B.push(W):R.push(W);W=rs(_,Rp(R,B)),W.selector=_}return W},C=Ve.select=function(_,T,S,B){var R,W,K,ee,ie,ve=typeof _=="function"&&_,me=!B&&b(_=ve.selector||_);if(S=S||[],me.length===1){if(W=me[0]=me[0].slice(0),W.length>2&&(K=W[0]).type==="ID"&&T.nodeType===9&&xe&&d.relative[W[1].type]){if(T=(d.find.ID(K.matches[0].replace(zn,Rn),T)||[])[0],T)ve&&(T=T.parentNode);else return S;_=_.slice(W.shift().value.length)}for(R=as.needsContext.test(_)?0:W.length;R--&&(K=W[R],!d.relative[ee=K.type]);)if((ie=d.find[ee])&&(B=ie(K.matches[0].replace(zn,Rn),Ma.test(W[0].type)&&Ha(T.parentNode)||T))){if(W.splice(R,1),_=B.length&&ls(W),!_)return Wn.apply(S,B),S;break}}return(ve||A(_,me))(B,T,!xe,S,!T||Ma.test(_)&&Ha(T.parentNode)||T),S},f.sortStable=We.split("").sort(hi).join("")===We,f.detectDuplicates=!!Y,N(),f.sortDetached=an(function(_){return _.compareDocumentPosition(q.createElement("fieldset"))&1}),an(function(_){return _.innerHTML="",_.firstChild.getAttribute("href")==="#"})||Da("type|href|height|width",function(_,T,S){if(!S)return _.getAttribute(T,T.toLowerCase()==="type"?1:2)}),(!f.attributes||!an(function(_){return _.innerHTML="",_.firstChild.setAttribute("value",""),_.firstChild.getAttribute("value")===""}))&&Da("value",function(_,T,S){if(!S&&_.nodeName.toLowerCase()==="input")return _.defaultValue}),an(function(_){return _.getAttribute("disabled")==null})||Da(Na,function(_,T,S){var B;if(!S)return _[T]===!0?T.toLowerCase():(B=_.getAttributeNode(T))&&B.specified?B.value:null}),Ve}(t);h.find=st,h.expr=st.selectors,h.expr[":"]=h.expr.pseudos,h.uniqueSort=h.unique=st.uniqueSort,h.text=st.getText,h.isXMLDoc=st.isXML,h.contains=st.contains,h.escapeSelector=st.escape;var ct=function(a,l,f){for(var d=[],g=f!==void 0;(a=a[l])&&a.nodeType!==9;)if(a.nodeType===1){if(g&&h(a).is(f))break;d.push(a)}return d},zt=function(a,l){for(var f=[];a;a=a.nextSibling)a.nodeType===1&&a!==l&&f.push(a);return f},en=h.expr.match.needsContext;function at(a,l){return a.nodeName&&a.nodeName.toLowerCase()===l.toLowerCase()}var En=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function tn(a,l,f){return D(l)?h.grep(a,function(d,g){return!!l.call(d,g,d)!==f}):l.nodeType?h.grep(a,function(d){return d===l!==f}):typeof l!="string"?h.grep(a,function(d){return c.call(l,d)>-1!==f}):h.filter(l,a,f)}h.filter=function(a,l,f){var d=l[0];return f&&(a=":not("+a+")"),l.length===1&&d.nodeType===1?h.find.matchesSelector(d,a)?[d]:[]:h.find.matches(a,h.grep(l,function(g){return g.nodeType===1}))},h.fn.extend({find:function(a){var l,f,d=this.length,g=this;if(typeof a!="string")return this.pushStack(h(a).filter(function(){for(l=0;l1?h.uniqueSort(f):f},filter:function(a){return this.pushStack(tn(this,a||[],!1))},not:function(a){return this.pushStack(tn(this,a||[],!0))},is:function(a){return!!tn(this,typeof a=="string"&&en.test(a)?h(a):a||[],!1).length}});var Bn,ft=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,je=h.fn.init=function(a,l,f){var d,g;if(!a)return this;if(f=f||Bn,typeof a=="string")if(a[0]==="<"&&a[a.length-1]===">"&&a.length>=3?d=[null,a,null]:d=ft.exec(a),d&&(d[1]||!l))if(d[1]){if(l=l instanceof h?l[0]:l,h.merge(this,h.parseHTML(d[1],l&&l.nodeType?l.ownerDocument||l:z,!0)),En.test(d[1])&&h.isPlainObject(l))for(d in l)D(this[d])?this[d](l[d]):this.attr(d,l[d]);return this}else return g=z.getElementById(d[2]),g&&(this[0]=g,this.length=1),this;else return!l||l.jquery?(l||f).find(a):this.constructor(l).find(a);else{if(a.nodeType)return this[0]=a,this.length=1,this;if(D(a))return f.ready!==void 0?f.ready(a):a(h)}return h.makeArray(a,this)};je.prototype=h.fn,Bn=h(z);var De=/^(?:parents|prev(?:Until|All))/,qt={children:!0,contents:!0,next:!0,prev:!0};h.fn.extend({has:function(a){var l=h(a,this),f=l.length;return this.filter(function(){for(var d=0;d-1:f.nodeType===1&&h.find.matchesSelector(f,a))){v.push(f);break}}return this.pushStack(v.length>1?h.uniqueSort(v):v)},index:function(a){return a?typeof a=="string"?c.call(h(a),this[0]):c.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,l){return this.pushStack(h.uniqueSort(h.merge(this.get(),h(a,l))))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}});function vn(a,l){for(;(a=a[l])&&a.nodeType!==1;);return a}h.each({parent:function(a){var l=a.parentNode;return l&&l.nodeType!==11?l:null},parents:function(a){return ct(a,"parentNode")},parentsUntil:function(a,l,f){return ct(a,"parentNode",f)},next:function(a){return vn(a,"nextSibling")},prev:function(a){return vn(a,"previousSibling")},nextAll:function(a){return ct(a,"nextSibling")},prevAll:function(a){return ct(a,"previousSibling")},nextUntil:function(a,l,f){return ct(a,"nextSibling",f)},prevUntil:function(a,l,f){return ct(a,"previousSibling",f)},siblings:function(a){return zt((a.parentNode||{}).firstChild,a)},children:function(a){return zt(a.firstChild)},contents:function(a){return a.contentDocument!=null&&i(a.contentDocument)?a.contentDocument:(at(a,"template")&&(a=a.content||a),h.merge([],a.childNodes))}},function(a,l){h.fn[a]=function(f,d){var g=h.map(this,l,f);return a.slice(-5)!=="Until"&&(d=f),d&&typeof d=="string"&&(g=h.filter(d,g)),this.length>1&&(qt[a]||h.uniqueSort(g),De.test(a)&&g.reverse()),this.pushStack(g)}});var dt=/[^\x20\t\r\n\f]+/g;function Tt(a){var l={};return h.each(a.match(dt)||[],function(f,d){l[d]=!0}),l}h.Callbacks=function(a){a=typeof a=="string"?Tt(a):h.extend({},a);var l,f,d,g,v=[],b=[],A=-1,C=function(){for(g=g||a.once,d=l=!0;b.length;A=-1)for(f=b.shift();++A-1;)v.splice(N,1),N<=A&&A--}),this},has:function(M){return M?h.inArray(M,v)>-1:v.length>0},empty:function(){return v&&(v=[]),this},disable:function(){return g=b=[],v=f="",this},disabled:function(){return!v},lock:function(){return g=b=[],!f&&!l&&(v=f=""),this},locked:function(){return!!g},fireWith:function(M,Y){return g||(Y=Y||[],Y=[M,Y.slice?Y.slice():Y],b.push(Y),l||C()),this},fire:function(){return P.fireWith(this,arguments),this},fired:function(){return!!d}};return P};function Bt(a){return a}function Sn(a){throw a}function V(a,l,f,d){var g;try{a&&D(g=a.promise)?g.call(a).done(l).fail(f):a&&D(g=a.then)?g.call(a,l,f):l.apply(void 0,[a].slice(d))}catch(v){f.apply(void 0,[v])}}h.extend({Deferred:function(a){var l=[["notify","progress",h.Callbacks("memory"),h.Callbacks("memory"),2],["resolve","done",h.Callbacks("once memory"),h.Callbacks("once memory"),0,"resolved"],["reject","fail",h.Callbacks("once memory"),h.Callbacks("once memory"),1,"rejected"]],f="pending",d={state:function(){return f},always:function(){return g.done(arguments).fail(arguments),this},catch:function(v){return d.then(null,v)},pipe:function(){var v=arguments;return h.Deferred(function(b){h.each(l,function(A,C){var P=D(v[C[4]])&&v[C[4]];g[C[1]](function(){var M=P&&P.apply(this,arguments);M&&D(M.promise)?M.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[C[0]+"With"](this,P?[M]:arguments)})}),v=null}).promise()},then:function(v,b,A){var C=0;function P(M,Y,N,q){return function(){var de=this,xe=arguments,he=function(){var vt,jt;if(!(M=C&&(N!==Sn&&(de=void 0,xe=[vt]),Y.rejectWith(de,xe))}};M?_t():(h.Deferred.getStackHook&&(_t.stackTrace=h.Deferred.getStackHook()),t.setTimeout(_t))}}return h.Deferred(function(M){l[0][3].add(P(0,M,D(A)?A:Bt,M.notifyWith)),l[1][3].add(P(0,M,D(v)?v:Bt)),l[2][3].add(P(0,M,D(b)?b:Sn))}).promise()},promise:function(v){return v!=null?h.extend(v,d):d}},g={};return h.each(l,function(v,b){var A=b[2],C=b[5];d[b[1]]=A.add,C&&A.add(function(){f=C},l[3-v][2].disable,l[3-v][3].disable,l[0][2].lock,l[0][3].lock),A.add(b[3].fire),g[b[0]]=function(){return g[b[0]+"With"](this===g?void 0:this,arguments),this},g[b[0]+"With"]=A.fireWith}),d.promise(g),a&&a.call(g,g),g},when:function(a){var l=arguments.length,f=l,d=Array(f),g=s.call(arguments),v=h.Deferred(),b=function(A){return function(C){d[A]=this,g[A]=arguments.length>1?s.call(arguments):C,--l||v.resolveWith(d,g)}};if(l<=1&&(V(a,v.done(b(f)).resolve,v.reject,!l),v.state()==="pending"||D(g[f]&&g[f].then)))return v.then();for(;f--;)V(g[f],b(f),v.reject);return v.promise()}});var se=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;h.Deferred.exceptionHook=function(a,l){t.console&&t.console.warn&&a&&se.test(a.name)&&t.console.warn("jQuery.Deferred exception: "+a.message,a.stack,l)},h.readyException=function(a){t.setTimeout(function(){throw a})};var ne=h.Deferred();h.fn.ready=function(a){return ne.then(a).catch(function(l){h.readyException(l)}),this},h.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--h.readyWait:h.isReady)||(h.isReady=!0,!(a!==!0&&--h.readyWait>0)&&ne.resolveWith(z,[h]))}}),h.ready.then=ne.then;function fe(){z.removeEventListener("DOMContentLoaded",fe),t.removeEventListener("load",fe),h.ready()}z.readyState==="complete"||z.readyState!=="loading"&&!z.documentElement.doScroll?t.setTimeout(h.ready):(z.addEventListener("DOMContentLoaded",fe),t.addEventListener("load",fe));var Ce=function(a,l,f,d,g,v,b){var A=0,C=a.length,P=f==null;if(J(f)==="object"){g=!0;for(A in f)Ce(a,l,A,f[A],!0,v,b)}else if(d!==void 0&&(g=!0,D(d)||(b=!0),P&&(b?(l.call(a,d),l=null):(P=l,l=function(M,Y,N){return P.call(h(M),N)})),l))for(;A1,null,!0)},removeData:function(a){return this.each(function(){G.remove(this,a)})}}),h.extend({queue:function(a,l,f){var d;if(a)return l=(l||"fx")+"queue",d=L.get(a,l),f&&(!d||Array.isArray(f)?d=L.access(a,l,h.makeArray(f)):d.push(f)),d||[]},dequeue:function(a,l){l=l||"fx";var f=h.queue(a,l),d=f.length,g=f.shift(),v=h._queueHooks(a,l),b=function(){h.dequeue(a,l)};g==="inprogress"&&(g=f.shift(),d--),g&&(l==="fx"&&f.unshift("inprogress"),delete v.stop,g.call(a,b,v)),!d&&v&&v.empty.fire()},_queueHooks:function(a,l){var f=l+"queueHooks";return L.get(a,f)||L.access(a,f,{empty:h.Callbacks("once memory").add(function(){L.remove(a,[l+"queue",f])})})}}),h.fn.extend({queue:function(a,l){var f=2;return typeof a!="string"&&(l=a,a="fx",f--),arguments.length\x20\t\r\n\f]*)/i,At=/^$|^module$|\/(?:java|ecma)script/i;(function(){var a=z.createDocumentFragment(),l=a.appendChild(z.createElement("div")),f=z.createElement("input");f.setAttribute("type","radio"),f.setAttribute("checked","checked"),f.setAttribute("name","t"),l.appendChild(f),I.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,l.innerHTML="",I.noCloneChecked=!!l.cloneNode(!0).lastChild.defaultValue,l.innerHTML="",I.option=!!l.lastChild})();var lt={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};lt.tbody=lt.tfoot=lt.colgroup=lt.caption=lt.thead,lt.th=lt.td,I.option||(lt.optgroup=lt.option=[1,""]);function Ct(a,l){var f;return typeof a.getElementsByTagName<"u"?f=a.getElementsByTagName(l||"*"):typeof a.querySelectorAll<"u"?f=a.querySelectorAll(l||"*"):f=[],l===void 0||l&&at(a,l)?h.merge([a],f):f}function wa(a,l){for(var f=0,d=a.length;f-1){g&&g.push(v);continue}if(P=$e(v),b=Ct(Y.appendChild(v),"script"),P&&wa(b),f)for(M=0;v=b[M++];)At.test(v.type||"")&&f.push(v)}return Y}var Fl=/^([^.]*)(?:\.(.+)|)/;function Ni(){return!0}function Ii(){return!1}function Mh(a,l){return a===Dh()==(l==="focus")}function Dh(){try{return z.activeElement}catch{}}function ka(a,l,f,d,g,v){var b,A;if(typeof l=="object"){typeof f!="string"&&(d=d||f,f=void 0);for(A in l)ka(a,A,f,d,l[A],v);return a}if(d==null&&g==null?(g=f,d=f=void 0):g==null&&(typeof f=="string"?(g=d,d=void 0):(g=d,d=f,f=void 0)),g===!1)g=Ii;else if(!g)return a;return v===1&&(b=g,g=function(C){return h().off(C),b.apply(this,arguments)},g.guid=b.guid||(b.guid=h.guid++)),a.each(function(){h.event.add(this,l,g,d,f)})}h.event={global:{},add:function(a,l,f,d,g){var v,b,A,C,P,M,Y,N,q,de,xe,he=L.get(a);if(!!H(a))for(f.handler&&(v=f,f=v.handler,g=v.selector),g&&h.find.matchesSelector(ge,g),f.guid||(f.guid=h.guid++),(C=he.events)||(C=he.events=Object.create(null)),(b=he.handle)||(b=he.handle=function(_t){return typeof h<"u"&&h.event.triggered!==_t.type?h.event.dispatch.apply(a,arguments):void 0}),l=(l||"").match(dt)||[""],P=l.length;P--;)A=Fl.exec(l[P])||[],q=xe=A[1],de=(A[2]||"").split(".").sort(),q&&(Y=h.event.special[q]||{},q=(g?Y.delegateType:Y.bindType)||q,Y=h.event.special[q]||{},M=h.extend({type:q,origType:xe,data:d,handler:f,guid:f.guid,selector:g,needsContext:g&&h.expr.match.needsContext.test(g),namespace:de.join(".")},v),(N=C[q])||(N=C[q]=[],N.delegateCount=0,(!Y.setup||Y.setup.call(a,d,de,b)===!1)&&a.addEventListener&&a.addEventListener(q,b)),Y.add&&(Y.add.call(a,M),M.handler.guid||(M.handler.guid=f.guid)),g?N.splice(N.delegateCount++,0,M):N.push(M),h.event.global[q]=!0)},remove:function(a,l,f,d,g){var v,b,A,C,P,M,Y,N,q,de,xe,he=L.hasData(a)&&L.get(a);if(!(!he||!(C=he.events))){for(l=(l||"").match(dt)||[""],P=l.length;P--;){if(A=Fl.exec(l[P])||[],q=xe=A[1],de=(A[2]||"").split(".").sort(),!q){for(q in C)h.event.remove(a,q+l[P],f,d,!0);continue}for(Y=h.event.special[q]||{},q=(d?Y.delegateType:Y.bindType)||q,N=C[q]||[],A=A[2]&&new RegExp("(^|\\.)"+de.join("\\.(?:.*\\.|)")+"(\\.|$)"),b=v=N.length;v--;)M=N[v],(g||xe===M.origType)&&(!f||f.guid===M.guid)&&(!A||A.test(M.namespace))&&(!d||d===M.selector||d==="**"&&M.selector)&&(N.splice(v,1),M.selector&&N.delegateCount--,Y.remove&&Y.remove.call(a,M));b&&!N.length&&((!Y.teardown||Y.teardown.call(a,de,he.handle)===!1)&&h.removeEvent(a,q,he.handle),delete C[q])}h.isEmptyObject(C)&&L.remove(a,"handle events")}},dispatch:function(a){var l,f,d,g,v,b,A=new Array(arguments.length),C=h.event.fix(a),P=(L.get(this,"events")||Object.create(null))[C.type]||[],M=h.event.special[C.type]||{};for(A[0]=C,l=1;l=1)){for(;P!==this;P=P.parentNode||this)if(P.nodeType===1&&!(a.type==="click"&&P.disabled===!0)){for(v=[],b={},f=0;f-1:h.find(g,this,null,[P]).length),b[g]&&v.push(d);v.length&&A.push({elem:P,handlers:v})}}return P=this,C\s*$/g;function ql(a,l){return at(a,"table")&&at(l.nodeType!==11?l:l.firstChild,"tr")&&h(a).children("tbody")[0]||a}function Bh(a){return a.type=(a.getAttribute("type")!==null)+"/"+a.type,a}function jh(a){return(a.type||"").slice(0,5)==="true/"?a.type=a.type.slice(5):a.removeAttribute("type"),a}function Bl(a,l){var f,d,g,v,b,A,C;if(l.nodeType===1){if(L.hasData(a)&&(v=L.get(a),C=v.events,C)){L.remove(l,"handle events");for(g in C)for(f=0,d=C[g].length;f1&&typeof q=="string"&&!I.checkClone&&Fh.test(q))return a.each(function(xe){var he=a.eq(xe);de&&(l[0]=q.call(this,xe,he.html())),Mi(he,l,f,d)});if(Y&&(g=Hl(l,a[0].ownerDocument,!1,a,d),v=g.firstChild,g.childNodes.length===1&&(g=v),v||d)){for(b=h.map(Ct(g,"script"),Bh),A=b.length;M0&&wa(b,!C&&Ct(a,"script")),A},cleanData:function(a){for(var l,f,d,g=h.event.special,v=0;(f=a[v])!==void 0;v++)if(H(f)){if(l=f[L.expando]){if(l.events)for(d in l.events)g[d]?h.event.remove(f,d):h.removeEvent(f,d,l.handle);f[L.expando]=void 0}f[G.expando]&&(f[G.expando]=void 0)}}}),h.fn.extend({detach:function(a){return jl(this,a,!0)},remove:function(a){return jl(this,a)},text:function(a){return Ce(this,function(l){return l===void 0?h.text(this):this.empty().each(function(){(this.nodeType===1||this.nodeType===11||this.nodeType===9)&&(this.textContent=l)})},null,a,arguments.length)},append:function(){return Mi(this,arguments,function(a){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var l=ql(this,a);l.appendChild(a)}})},prepend:function(){return Mi(this,arguments,function(a){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var l=ql(this,a);l.insertBefore(a,l.firstChild)}})},before:function(){return Mi(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Mi(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,l=0;(a=this[l])!=null;l++)a.nodeType===1&&(h.cleanData(Ct(a,!1)),a.textContent="");return this},clone:function(a,l){return a=a==null?!1:a,l=l==null?a:l,this.map(function(){return h.clone(this,a,l)})},html:function(a){return Ce(this,function(l){var f=this[0]||{},d=0,g=this.length;if(l===void 0&&f.nodeType===1)return f.innerHTML;if(typeof l=="string"&&!Hh.test(l)&&!lt[(ur.exec(l)||["",""])[1].toLowerCase()]){l=h.htmlPrefilter(l);try{for(;d=0&&(C+=Math.max(0,Math.ceil(a["offset"+l[0].toUpperCase()+l.slice(1)]-v-C-A-.5))||0),C}function Jl(a,l,f){var d=ts(a),g=!I.boxSizingReliable()||f,v=g&&h.css(a,"boxSizing",!1,d)==="border-box",b=v,A=cr(a,l,d),C="offset"+l[0].toUpperCase()+l.slice(1);if(xa.test(A)){if(!f)return A;A="auto"}return(!I.boxSizingReliable()&&v||!I.reliableTrDimensions()&&at(a,"tr")||A==="auto"||!parseFloat(A)&&h.css(a,"display",!1,d)==="inline")&&a.getClientRects().length&&(v=h.css(a,"boxSizing",!1,d)==="border-box",b=C in a,b&&(A=a[C])),A=parseFloat(A)||0,A+Ta(a,l,f||(v?"border":"content"),b,d,A)+"px"}h.extend({cssHooks:{opacity:{get:function(a,l){if(l){var f=cr(a,"opacity");return f===""?"1":f}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(a,l,f,d){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var g,v,b,A=E(l),C=Ca.test(l),P=a.style;if(C||(l=$a(A)),b=h.cssHooks[l]||h.cssHooks[A],f!==void 0){if(v=typeof f,v==="string"&&(g=oe.exec(f))&&g[1]&&(f=ot(a,l,g),v="number"),f==null||f!==f)return;v==="number"&&!C&&(f+=g&&g[3]||(h.cssNumber[A]?"":"px")),!I.clearCloneStyle&&f===""&&l.indexOf("background")===0&&(P[l]="inherit"),(!b||!("set"in b)||(f=b.set(a,f,d))!==void 0)&&(C?P.setProperty(l,f):P[l]=f)}else return b&&"get"in b&&(g=b.get(a,!1,d))!==void 0?g:P[l]}},css:function(a,l,f,d){var g,v,b,A=E(l),C=Ca.test(l);return C||(l=$a(A)),b=h.cssHooks[l]||h.cssHooks[A],b&&"get"in b&&(g=b.get(a,!0,f)),g===void 0&&(g=cr(a,l,d)),g==="normal"&&l in Ql&&(g=Ql[l]),f===""||f?(v=parseFloat(g),f===!0||isFinite(v)?v||0:g):g}}),h.each(["height","width"],function(a,l){h.cssHooks[l]={get:function(f,d,g){if(d)return Kh.test(h.css(f,"display"))&&(!f.getClientRects().length||!f.getBoundingClientRect().width)?Ul(f,Gh,function(){return Jl(f,l,g)}):Jl(f,l,g)},set:function(f,d,g){var v,b=ts(f),A=!I.scrollboxSize()&&b.position==="absolute",C=A||g,P=C&&h.css(f,"boxSizing",!1,b)==="border-box",M=g?Ta(f,l,g,P,b):0;return P&&A&&(M-=Math.ceil(f["offset"+l[0].toUpperCase()+l.slice(1)]-parseFloat(b[l])-Ta(f,l,"border",!1,b)-.5)),M&&(v=oe.exec(d))&&(v[3]||"px")!=="px"&&(f.style[l]=d,d=h.css(f,l)),Xl(f,d,M)}}}),h.cssHooks.marginLeft=Vl(I.reliableMarginLeft,function(a,l){if(l)return(parseFloat(cr(a,"marginLeft"))||a.getBoundingClientRect().left-Ul(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),h.each({margin:"",padding:"",border:"Width"},function(a,l){h.cssHooks[a+l]={expand:function(f){for(var d=0,g={},v=typeof f=="string"?f.split(" "):[f];d<4;d++)g[a+ue[d]+l]=v[d]||v[d-2]||v[0];return g}},a!=="margin"&&(h.cssHooks[a+l].set=Xl)}),h.fn.extend({css:function(a,l){return Ce(this,function(f,d,g){var v,b,A={},C=0;if(Array.isArray(d)){for(v=ts(f),b=d.length;C1)}});function It(a,l,f,d,g){return new It.prototype.init(a,l,f,d,g)}h.Tween=It,It.prototype={constructor:It,init:function(a,l,f,d,g,v){this.elem=a,this.prop=f,this.easing=g||h.easing._default,this.options=l,this.start=this.now=this.cur(),this.end=d,this.unit=v||(h.cssNumber[f]?"":"px")},cur:function(){var a=It.propHooks[this.prop];return a&&a.get?a.get(this):It.propHooks._default.get(this)},run:function(a){var l,f=It.propHooks[this.prop];return this.options.duration?this.pos=l=h.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=l=a,this.now=(this.end-this.start)*l+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),f&&f.set?f.set(this):It.propHooks._default.set(this),this}},It.prototype.init.prototype=It.prototype,It.propHooks={_default:{get:function(a){var l;return a.elem.nodeType!==1||a.elem[a.prop]!=null&&a.elem.style[a.prop]==null?a.elem[a.prop]:(l=h.css(a.elem,a.prop,""),!l||l==="auto"?0:l)},set:function(a){h.fx.step[a.prop]?h.fx.step[a.prop](a):a.elem.nodeType===1&&(h.cssHooks[a.prop]||a.elem.style[$a(a.prop)]!=null)?h.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},It.propHooks.scrollTop=It.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},h.easing={linear:function(a){return a},swing:function(a){return .5-Math.cos(a*Math.PI)/2},_default:"swing"},h.fx=It.prototype.init,h.fx.step={};var Di,ns,Qh=/^(?:toggle|show|hide)$/,Xh=/queueHooks$/;function Aa(){ns&&(z.hidden===!1&&t.requestAnimationFrame?t.requestAnimationFrame(Aa):t.setTimeout(Aa,h.fx.interval),h.fx.tick())}function Zl(){return t.setTimeout(function(){Di=void 0}),Di=Date.now()}function is(a,l){var f,d=0,g={height:a};for(l=l?1:0;d<4;d+=2-l)f=ue[d],g["margin"+f]=g["padding"+f]=a;return l&&(g.opacity=g.width=a),g}function eu(a,l,f){for(var d,g=(rn.tweeners[l]||[]).concat(rn.tweeners["*"]),v=0,b=g.length;v1)},removeAttr:function(a){return this.each(function(){h.removeAttr(this,a)})}}),h.extend({attr:function(a,l,f){var d,g,v=a.nodeType;if(!(v===3||v===8||v===2)){if(typeof a.getAttribute>"u")return h.prop(a,l,f);if((v!==1||!h.isXMLDoc(a))&&(g=h.attrHooks[l.toLowerCase()]||(h.expr.match.bool.test(l)?tu:void 0)),f!==void 0){if(f===null){h.removeAttr(a,l);return}return g&&"set"in g&&(d=g.set(a,f,l))!==void 0?d:(a.setAttribute(l,f+""),f)}return g&&"get"in g&&(d=g.get(a,l))!==null?d:(d=h.find.attr(a,l),d==null?void 0:d)}},attrHooks:{type:{set:function(a,l){if(!I.radioValue&&l==="radio"&&at(a,"input")){var f=a.value;return a.setAttribute("type",l),f&&(a.value=f),l}}}},removeAttr:function(a,l){var f,d=0,g=l&&l.match(dt);if(g&&a.nodeType===1)for(;f=g[d++];)a.removeAttribute(f)}}),tu={set:function(a,l,f){return l===!1?h.removeAttr(a,f):a.setAttribute(f,f),f}},h.each(h.expr.match.bool.source.match(/\w+/g),function(a,l){var f=fr[l]||h.find.attr;fr[l]=function(d,g,v){var b,A,C=g.toLowerCase();return v||(A=fr[C],fr[C]=b,b=f(d,g,v)!=null?C:null,fr[C]=A),b}});var ep=/^(?:input|select|textarea|button)$/i,tp=/^(?:a|area)$/i;h.fn.extend({prop:function(a,l){return Ce(this,h.prop,a,l,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[h.propFix[a]||a]})}}),h.extend({prop:function(a,l,f){var d,g,v=a.nodeType;if(!(v===3||v===8||v===2))return(v!==1||!h.isXMLDoc(a))&&(l=h.propFix[l]||l,g=h.propHooks[l]),f!==void 0?g&&"set"in g&&(d=g.set(a,f,l))!==void 0?d:a[l]=f:g&&"get"in g&&(d=g.get(a,l))!==null?d:a[l]},propHooks:{tabIndex:{get:function(a){var l=h.find.attr(a,"tabindex");return l?parseInt(l,10):ep.test(a.nodeName)||tp.test(a.nodeName)&&a.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),I.optSelected||(h.propHooks.selected={get:function(a){var l=a.parentNode;return l&&l.parentNode&&l.parentNode.selectedIndex,null},set:function(a){var l=a.parentNode;l&&(l.selectedIndex,l.parentNode&&l.parentNode.selectedIndex)}}),h.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){h.propFix[this.toLowerCase()]=this});function fi(a){var l=a.match(dt)||[];return l.join(" ")}function di(a){return a.getAttribute&&a.getAttribute("class")||""}function Ea(a){return Array.isArray(a)?a:typeof a=="string"?a.match(dt)||[]:[]}h.fn.extend({addClass:function(a){var l,f,d,g,v,b;return D(a)?this.each(function(A){h(this).addClass(a.call(this,A,di(this)))}):(l=Ea(a),l.length?this.each(function(){if(d=di(this),f=this.nodeType===1&&" "+fi(d)+" ",f){for(v=0;v-1;)f=f.replace(" "+g+" "," ");b=fi(f),d!==b&&this.setAttribute("class",b)}}):this):this.attr("class","")},toggleClass:function(a,l){var f,d,g,v,b=typeof a,A=b==="string"||Array.isArray(a);return D(a)?this.each(function(C){h(this).toggleClass(a.call(this,C,di(this),l),l)}):typeof l=="boolean"&&A?l?this.addClass(a):this.removeClass(a):(f=Ea(a),this.each(function(){if(A)for(v=h(this),g=0;g-1)return!0;return!1}});var np=/\r/g;h.fn.extend({val:function(a){var l,f,d,g=this[0];return arguments.length?(d=D(a),this.each(function(v){var b;this.nodeType===1&&(d?b=a.call(this,v,h(this).val()):b=a,b==null?b="":typeof b=="number"?b+="":Array.isArray(b)&&(b=h.map(b,function(A){return A==null?"":A+""})),l=h.valHooks[this.type]||h.valHooks[this.nodeName.toLowerCase()],(!l||!("set"in l)||l.set(this,b,"value")===void 0)&&(this.value=b))})):g?(l=h.valHooks[g.type]||h.valHooks[g.nodeName.toLowerCase()],l&&"get"in l&&(f=l.get(g,"value"))!==void 0?f:(f=g.value,typeof f=="string"?f.replace(np,""):f==null?"":f)):void 0}}),h.extend({valHooks:{option:{get:function(a){var l=h.find.attr(a,"value");return l!=null?l:fi(h.text(a))}},select:{get:function(a){var l,f,d,g=a.options,v=a.selectedIndex,b=a.type==="select-one",A=b?null:[],C=b?v+1:g.length;for(v<0?d=C:d=b?v:0;d-1)&&(f=!0);return f||(a.selectedIndex=-1),v}}}}),h.each(["radio","checkbox"],function(){h.valHooks[this]={set:function(a,l){if(Array.isArray(l))return a.checked=h.inArray(h(a).val(),l)>-1}},I.checkOn||(h.valHooks[this].get=function(a){return a.getAttribute("value")===null?"on":a.value})}),I.focusin="onfocusin"in t;var nu=/^(?:focusinfocus|focusoutblur)$/,iu=function(a){a.stopPropagation()};h.extend(h.event,{trigger:function(a,l,f,d){var g,v,b,A,C,P,M,Y,N=[f||z],q=w.call(a,"type")?a.type:a,de=w.call(a,"namespace")?a.namespace.split("."):[];if(v=Y=b=f=f||z,!(f.nodeType===3||f.nodeType===8)&&!nu.test(q+h.event.triggered)&&(q.indexOf(".")>-1&&(de=q.split("."),q=de.shift(),de.sort()),C=q.indexOf(":")<0&&"on"+q,a=a[h.expando]?a:new h.Event(q,typeof a=="object"&&a),a.isTrigger=d?2:3,a.namespace=de.join("."),a.rnamespace=a.namespace?new RegExp("(^|\\.)"+de.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,a.result=void 0,a.target||(a.target=f),l=l==null?[a]:h.makeArray(l,[a]),M=h.event.special[q]||{},!(!d&&M.trigger&&M.trigger.apply(f,l)===!1))){if(!d&&!M.noBubble&&!Z(f)){for(A=M.delegateType||q,nu.test(A+q)||(v=v.parentNode);v;v=v.parentNode)N.push(v),b=v;b===(f.ownerDocument||z)&&N.push(b.defaultView||b.parentWindow||t)}for(g=0;(v=N[g++])&&!a.isPropagationStopped();)Y=v,a.type=g>1?A:M.bindType||q,P=(L.get(v,"events")||Object.create(null))[a.type]&&L.get(v,"handle"),P&&P.apply(v,l),P=C&&v[C],P&&P.apply&&H(v)&&(a.result=P.apply(v,l),a.result===!1&&a.preventDefault());return a.type=q,!d&&!a.isDefaultPrevented()&&(!M._default||M._default.apply(N.pop(),l)===!1)&&H(f)&&C&&D(f[q])&&!Z(f)&&(b=f[C],b&&(f[C]=null),h.event.triggered=q,a.isPropagationStopped()&&Y.addEventListener(q,iu),f[q](),a.isPropagationStopped()&&Y.removeEventListener(q,iu),h.event.triggered=void 0,b&&(f[C]=b)),a.result}},simulate:function(a,l,f){var d=h.extend(new h.Event,f,{type:a,isSimulated:!0});h.event.trigger(d,null,l)}}),h.fn.extend({trigger:function(a,l){return this.each(function(){h.event.trigger(a,l,this)})},triggerHandler:function(a,l){var f=this[0];if(f)return h.event.trigger(a,l,f,!0)}}),I.focusin||h.each({focus:"focusin",blur:"focusout"},function(a,l){var f=function(d){h.event.simulate(l,d.target,h.event.fix(d))};h.event.special[l]={setup:function(){var d=this.ownerDocument||this.document||this,g=L.access(d,l);g||d.addEventListener(a,f,!0),L.access(d,l,(g||0)+1)},teardown:function(){var d=this.ownerDocument||this.document||this,g=L.access(d,l)-1;g?L.access(d,l,g):(d.removeEventListener(a,f,!0),L.remove(d,l))}}});var dr=t.location,ru={guid:Date.now()},Sa=/\?/;h.parseXML=function(a){var l,f;if(!a||typeof a!="string")return null;try{l=new t.DOMParser().parseFromString(a,"text/xml")}catch{}return f=l&&l.getElementsByTagName("parsererror")[0],(!l||f)&&h.error("Invalid XML: "+(f?h.map(f.childNodes,function(d){return d.textContent}).join(` `):a)),l};var ip=/\[\]$/,su=/\r?\n/g,rp=/^(?:submit|button|image|reset|file)$/i,sp=/^(?:input|select|textarea|keygen)/i;function Oa(a,l,f,d){var g;if(Array.isArray(l))h.each(l,function(v,b){f||ip.test(a)?d(a,b):Oa(a+"["+(typeof b=="object"&&b!=null?v:"")+"]",b,f,d)});else if(!f&&J(l)==="object")for(g in l)Oa(a+"["+g+"]",l[g],f,d);else d(a,l)}h.param=function(a,l){var f,d=[],g=function(v,b){var A=D(b)?b():b;d[d.length]=encodeURIComponent(v)+"="+encodeURIComponent(A==null?"":A)};if(a==null)return"";if(Array.isArray(a)||a.jquery&&!h.isPlainObject(a))h.each(a,function(){g(this.name,this.value)});else for(f in a)Oa(f,a[f],l,g);return d.join("&")},h.fn.extend({serialize:function(){return h.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=h.prop(this,"elements");return a?h.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!h(this).is(":disabled")&&sp.test(this.nodeName)&&!rp.test(a)&&(this.checked||!nn.test(a))}).map(function(a,l){var f=h(this).val();return f==null?null:Array.isArray(f)?h.map(f,function(d){return{name:l.name,value:d.replace(su,`\r `)}}):{name:l.name,value:f.replace(su,`\r -`)}}).get()}});var ap=/%20/g,op=/#.*$/,lp=/([?&])_=[^&]*/,up=/^(.*?):[ \t]*([^\r\n]*)$/mg,cp=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,fp=/^(?:GET|HEAD)$/,dp=/^\/\//,au={},za={},ou="*/".concat("*"),Ra=O.createElement("a");Ra.href=dr.href;function lu(a){return function(l,f){typeof l!="string"&&(f=l,l="*");var d,g=0,v=l.toLowerCase().match(dt)||[];if(D(f))for(;d=v[g++];)d[0]==="+"?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(f)):(a[d]=a[d]||[]).push(f)}}function uu(a,l,f,d){var g={},v=a===za;function b(A){var C;return g[A]=!0,h.each(a[A]||[],function(P,M){var Y=M(l,f,d);if(typeof Y=="string"&&!v&&!g[Y])return l.dataTypes.unshift(Y),b(Y),!1;if(v)return!(C=Y)}),C}return b(l.dataTypes[0])||!g["*"]&&b("*")}function Pa(a,l){var f,d,g=h.ajaxSettings.flatOptions||{};for(f in l)l[f]!==void 0&&((g[f]?a:d||(d={}))[f]=l[f]);return d&&h.extend(!0,a,d),a}function hp(a,l,f){for(var d,g,v,b,A=a.contents,C=a.dataTypes;C[0]==="*";)C.shift(),d===void 0&&(d=a.mimeType||l.getResponseHeader("Content-Type"));if(d){for(g in A)if(A[g]&&A[g].test(d)){C.unshift(g);break}}if(C[0]in f)v=C[0];else{for(g in f){if(!C[0]||a.converters[g+" "+C[0]]){v=g;break}b||(b=g)}v=v||b}if(v)return v!==C[0]&&C.unshift(v),f[v]}function pp(a,l,f,d){var g,v,b,A,C,P={},M=a.dataTypes.slice();if(M[1])for(b in a.converters)P[b.toLowerCase()]=a.converters[b];for(v=M.shift();v;)if(a.responseFields[v]&&(f[a.responseFields[v]]=l),!C&&d&&a.dataFilter&&(l=a.dataFilter(l,a.dataType)),C=v,v=M.shift(),v){if(v==="*")v=C;else if(C!=="*"&&C!==v){if(b=P[C+" "+v]||P["* "+v],!b){for(g in P)if(A=g.split(" "),A[1]===v&&(b=P[C+" "+A[0]]||P["* "+A[0]],b)){b===!0?b=P[g]:P[g]!==!0&&(v=A[0],M.unshift(A[1]));break}}if(b!==!0)if(b&&a.throws)l=b(l);else try{l=b(l)}catch(Y){return{state:"parsererror",error:b?Y:"No conversion from "+C+" to "+v}}}}return{state:"success",data:l}}h.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:dr.href,type:"GET",isLocal:cp.test(dr.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":ou,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":h.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,l){return l?Pa(Pa(a,h.ajaxSettings),l):Pa(h.ajaxSettings,a)},ajaxPrefilter:lu(au),ajaxTransport:lu(za),ajax:function(a,l){typeof a=="object"&&(l=a,a=void 0),l=l||{};var f,d,g,v,b,A,C,P,M,Y,N=h.ajaxSetup({},l),q=N.context||N,de=N.context&&(q.nodeType||q.jquery)?h(q):h.event,xe=h.Deferred(),he=h.Callbacks("once memory"),_t=N.statusCode||{},vt={},jt={},We="canceled",we={readyState:0,getResponseHeader:function(Le){var ut;if(C){if(!v)for(v={};ut=up.exec(g);)v[ut[1].toLowerCase()+" "]=(v[ut[1].toLowerCase()+" "]||[]).concat(ut[2]);ut=v[Le.toLowerCase()+" "]}return ut==null?null:ut.join(", ")},getAllResponseHeaders:function(){return C?g:null},setRequestHeader:function(Le,ut){return C==null&&(Le=jt[Le.toLowerCase()]=jt[Le.toLowerCase()]||Le,vt[Le]=ut),this},overrideMimeType:function(Le){return C==null&&(N.mimeType=Le),this},statusCode:function(Le){var ut;if(Le)if(C)we.always(Le[we.status]);else for(ut in Le)_t[ut]=[_t[ut],Le[ut]];return this},abort:function(Le){var ut=Le||We;return f&&f.abort(ut),Mt(0,ut),this}};if(xe.promise(we),N.url=((a||N.url||dr.href)+"").replace(dp,dr.protocol+"//"),N.type=l.method||l.type||N.method||N.type,N.dataTypes=(N.dataType||"*").toLowerCase().match(dt)||[""],N.crossDomain==null){A=O.createElement("a");try{A.href=N.url,A.href=A.href,N.crossDomain=Ra.protocol+"//"+Ra.host!=A.protocol+"//"+A.host}catch{N.crossDomain=!0}}if(N.data&&N.processData&&typeof N.data!="string"&&(N.data=h.param(N.data,N.traditional)),uu(au,N,l,we),C)return we;P=h.event&&N.global,P&&h.active++===0&&h.event.trigger("ajaxStart"),N.type=N.type.toUpperCase(),N.hasContent=!fp.test(N.type),d=N.url.replace(op,""),N.hasContent?N.data&&N.processData&&(N.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&(N.data=N.data.replace(ap,"+")):(Y=N.url.slice(d.length),N.data&&(N.processData||typeof N.data=="string")&&(d+=(Sa.test(d)?"&":"?")+N.data,delete N.data),N.cache===!1&&(d=d.replace(lp,"$1"),Y=(Sa.test(d)?"&":"?")+"_="+ru.guid+++Y),N.url=d+Y),N.ifModified&&(h.lastModified[d]&&we.setRequestHeader("If-Modified-Since",h.lastModified[d]),h.etag[d]&&we.setRequestHeader("If-None-Match",h.etag[d])),(N.data&&N.hasContent&&N.contentType!==!1||l.contentType)&&we.setRequestHeader("Content-Type",N.contentType),we.setRequestHeader("Accept",N.dataTypes[0]&&N.accepts[N.dataTypes[0]]?N.accepts[N.dataTypes[0]]+(N.dataTypes[0]!=="*"?", "+ou+"; q=0.01":""):N.accepts["*"]);for(M in N.headers)we.setRequestHeader(M,N.headers[M]);if(N.beforeSend&&(N.beforeSend.call(q,we,N)===!1||C))return we.abort();if(We="abort",he.add(N.complete),we.done(N.success),we.fail(N.error),f=uu(za,N,l,we),!f)Mt(-1,"No Transport");else{if(we.readyState=1,P&&de.trigger("ajaxSend",[we,N]),C)return we;N.async&&N.timeout>0&&(b=t.setTimeout(function(){we.abort("timeout")},N.timeout));try{C=!1,f.send(vt,Mt)}catch(Le){if(C)throw Le;Mt(-1,Le)}}function Mt(Le,ut,pr,rs){var Ut,hi,pi,Dt,Un,Gt=ut;C||(C=!0,b&&t.clearTimeout(b),f=void 0,g=rs||"",we.readyState=Le>0?4:0,Ut=Le>=200&&Le<300||Le===304,pr&&(Dt=hp(N,we,pr)),!Ut&&h.inArray("script",N.dataTypes)>-1&&h.inArray("json",N.dataTypes)<0&&(N.converters["text script"]=function(){}),Dt=pp(N,Dt,we,Ut),Ut?(N.ifModified&&(Un=we.getResponseHeader("Last-Modified"),Un&&(h.lastModified[d]=Un),Un=we.getResponseHeader("etag"),Un&&(h.etag[d]=Un)),Le===204||N.type==="HEAD"?Gt="nocontent":Le===304?Gt="notmodified":(Gt=Dt.state,hi=Dt.data,pi=Dt.error,Ut=!pi)):(pi=Gt,(Le||!Gt)&&(Gt="error",Le<0&&(Le=0))),we.status=Le,we.statusText=(ut||Gt)+"",Ut?xe.resolveWith(q,[hi,Gt,we]):xe.rejectWith(q,[we,Gt,pi]),we.statusCode(_t),_t=void 0,P&&de.trigger(Ut?"ajaxSuccess":"ajaxError",[we,N,Ut?hi:pi]),he.fireWith(q,[we,Gt]),P&&(de.trigger("ajaxComplete",[we,N]),--h.active||h.event.trigger("ajaxStop")))}return we},getJSON:function(a,l,f){return h.get(a,l,f,"json")},getScript:function(a,l){return h.get(a,void 0,l,"script")}}),h.each(["get","post"],function(a,l){h[l]=function(f,d,g,v){return D(d)&&(v=v||g,g=d,d=void 0),h.ajax(h.extend({url:f,type:l,dataType:v,data:d,success:g},h.isPlainObject(f)&&f))}}),h.ajaxPrefilter(function(a){var l;for(l in a.headers)l.toLowerCase()==="content-type"&&(a.contentType=a.headers[l]||"")}),h._evalUrl=function(a,l,f){return h.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(d){h.globalEval(d,l,f)}})},h.fn.extend({wrapAll:function(a){var l;return this[0]&&(D(a)&&(a=a.call(this[0])),l=h(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&l.insertBefore(this[0]),l.map(function(){for(var f=this;f.firstElementChild;)f=f.firstElementChild;return f}).append(this)),this},wrapInner:function(a){return D(a)?this.each(function(l){h(this).wrapInner(a.call(this,l))}):this.each(function(){var l=h(this),f=l.contents();f.length?f.wrapAll(a):l.append(a)})},wrap:function(a){var l=D(a);return this.each(function(f){h(this).wrapAll(l?a.call(this,f):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){h(this).replaceWith(this.childNodes)}),this}}),h.expr.pseudos.hidden=function(a){return!h.expr.pseudos.visible(a)},h.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},h.ajaxSettings.xhr=function(){try{return new t.XMLHttpRequest}catch{}};var mp={0:200,1223:204},hr=h.ajaxSettings.xhr();I.cors=!!hr&&"withCredentials"in hr,I.ajax=hr=!!hr,h.ajaxTransport(function(a){var l,f;if(I.cors||hr&&!a.crossDomain)return{send:function(d,g){var v,b=a.xhr();if(b.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(v in a.xhrFields)b[v]=a.xhrFields[v];a.mimeType&&b.overrideMimeType&&b.overrideMimeType(a.mimeType),!a.crossDomain&&!d["X-Requested-With"]&&(d["X-Requested-With"]="XMLHttpRequest");for(v in d)b.setRequestHeader(v,d[v]);l=function(A){return function(){l&&(l=f=b.onload=b.onerror=b.onabort=b.ontimeout=b.onreadystatechange=null,A==="abort"?b.abort():A==="error"?typeof b.status!="number"?g(0,"error"):g(b.status,b.statusText):g(mp[b.status]||b.status,b.statusText,(b.responseType||"text")!=="text"||typeof b.responseText!="string"?{binary:b.response}:{text:b.responseText},b.getAllResponseHeaders()))}},b.onload=l(),f=b.onerror=b.ontimeout=l("error"),b.onabort!==void 0?b.onabort=f:b.onreadystatechange=function(){b.readyState===4&&t.setTimeout(function(){l&&f()})},l=l("abort");try{b.send(a.hasContent&&a.data||null)}catch(A){if(l)throw A}},abort:function(){l&&l()}}}),h.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),h.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return h.globalEval(a),a}}}),h.ajaxPrefilter("script",function(a){a.cache===void 0&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),h.ajaxTransport("script",function(a){if(a.crossDomain||a.scriptAttrs){var l,f;return{send:function(d,g){l=h(" - + +
diff --git a/syng/webclientmockup.py b/syng/webclientmockup.py index ecbc26f..f508c9c 100644 --- a/syng/webclientmockup.py +++ b/syng/webclientmockup.py @@ -1,3 +1,6 @@ +# pylint: disable=missing-function-docstring +# pylint: disable=missing-module-docstring +# pylint: disable=missing-class-docstring import asyncio from typing import Any @@ -16,7 +19,7 @@ async def handle_search_results(data: dict[str, Any]) -> None: for raw_item in data["results"]: item = Result(**raw_item) print(f"{item.artist} - {item.title} [{item.album}]") - print(f"{item.source}: {item.id}") + print(f"{item.source}: {item.ident}") @sio.on("state") @@ -57,7 +60,8 @@ class SyngShell(aiocmd.PromptToolkitCmd): { "performer": "Hammy", "source": "youtube", - "id": "https://www.youtube.com/watch?v=rqZqHXJm-UA", # https://youtube.com/watch?v=x5bM5Bdizi4", + # https://youtube.com/watch?v=x5bM5Bdizi4", + "ident": "https://www.youtube.com/watch?v=rqZqHXJm-UA", }, ) @@ -65,7 +69,9 @@ class SyngShell(aiocmd.PromptToolkitCmd): await sio.emit("search", {"query": query}) async def do_append(self, source: str, ident: str) -> None: - await sio.emit("append", {"performer": "Hammy", "source": source, "id": ident}) + await sio.emit( + "append", {"performer": "Hammy", "source": source, "ident": ident} + ) async def do_admin(self, data: str) -> None: await sio.emit("register-admin", {"secret": data})